1
0
mirror of https://github.com/ragestudio/comty.git synced 2025-06-28 11:54:16 +00:00

57 lines
1.5 KiB
JavaScript

import lodash from "lodash"
export default class SessionsManager {
constructor() {
this.sessions = {}
this.publicStreams = []
}
newSession = (id, session) => {
this.sessions[id] = session
}
getSession = (id) => {
return this.sessions[id]
}
removeSession = (id) => {
this.sessions[id].reject()
delete this.sessions[id]
}
publishStream = (payload) => {
if (typeof payload !== "object") {
throw new Error("Payload must be an object")
}
this.publicStreams.push(payload)
}
unpublishStream = (stream_key) => {
this.publicStreams = this.publicStreams.filter((stream) => stream.stream_key !== stream_key)
}
getPublicStreams = () => {
// return this.publicStreams but without stream_key property
return lodash.map(this.publicStreams, (stream) => {
return lodash.omit(stream, "stream_key")
})
}
getStreamsByUserId = (user_id) => {
const streams = lodash.filter(this.publicStreams, (stream) => stream.user_id === user_id)
return lodash.map(streams, (stream) => {
return lodash.omit(stream, "stream_key")
})
}
getStreamsByUsername = (username) => {
const streams = lodash.filter(this.publicStreams, (stream) => stream.username === username)
return lodash.map(streams, (stream) => {
return lodash.omit(stream, "stream_key")
})
}
}