|
|
@@ -2,31 +2,31 @@ class LiveQuotaStore { |
|
|
|
|
|
|
|
private static instance: LiveQuotaStore |
|
|
|
|
|
|
|
private readonly livesPerUser = new Map<number, { liveId: number, size: number }[]>() |
|
|
|
private readonly livesPerUser = new Map<number, { sessionId: string, size: number }[]>() |
|
|
|
|
|
|
|
private constructor () { |
|
|
|
} |
|
|
|
|
|
|
|
addNewLive (userId: number, liveId: number) { |
|
|
|
addNewLive (userId: number, sessionId: string) { |
|
|
|
if (!this.livesPerUser.has(userId)) { |
|
|
|
this.livesPerUser.set(userId, []) |
|
|
|
} |
|
|
|
|
|
|
|
const currentUserLive = { liveId, size: 0 } |
|
|
|
const currentUserLive = { sessionId, size: 0 } |
|
|
|
const livesOfUser = this.livesPerUser.get(userId) |
|
|
|
livesOfUser.push(currentUserLive) |
|
|
|
} |
|
|
|
|
|
|
|
removeLive (userId: number, liveId: number) { |
|
|
|
removeLive (userId: number, sessionId: string) { |
|
|
|
const newLivesPerUser = this.livesPerUser.get(userId) |
|
|
|
.filter(o => o.liveId !== liveId) |
|
|
|
.filter(o => o.sessionId !== sessionId) |
|
|
|
|
|
|
|
this.livesPerUser.set(userId, newLivesPerUser) |
|
|
|
} |
|
|
|
|
|
|
|
addQuotaTo (userId: number, liveId: number, size: number) { |
|
|
|
addQuotaTo (userId: number, sessionId: string, size: number) { |
|
|
|
const lives = this.livesPerUser.get(userId) |
|
|
|
const live = lives.find(l => l.liveId === liveId) |
|
|
|
const live = lives.find(l => l.sessionId === sessionId) |
|
|
|
|
|
|
|
live.size += size |
|
|
|
} |
|
|
|