Files
speckle-server/packages/server/modules/serverinvites/index.ts
T

39 lines
1.3 KiB
TypeScript

import { registerOrUpdateScopeFactory } from '@/modules/shared/repositories/scopes'
import { moduleLogger } from '@/logging/logging'
import db from '@/db/knex'
import { Scopes } from '@speckle/shared'
import { SpeckleModule } from '@/modules/shared/helpers/typeHelper'
import { getEventBus } from '@/modules/shared/services/eventBus'
import { publish } from '@/modules/shared/utils/subscriptions'
import { getStreamFactory } from '@/modules/core/repositories/streams'
import { getProjectInviteProjectFactory } from '@/modules/serverinvites/services/projectInviteManagement'
import { reportSubscriptionEventsFactory } from '@/modules/serverinvites/events/subscriptionListeners'
const scopes = [
{
name: Scopes.Users.Invite,
description: 'Invite others to join this server.',
public: false
}
]
export const init: SpeckleModule['init'] = async (_app, isInitial) => {
moduleLogger.info('💌 Init invites module')
const registerFunc = registerOrUpdateScopeFactory({ db })
for (const scope of scopes) {
await registerFunc({ scope })
}
if (isInitial) {
// Setup GQL sub emits
reportSubscriptionEventsFactory({
eventListen: getEventBus().listen,
publish,
getProjectInviteProject: getProjectInviteProjectFactory({
getStream: getStreamFactory({ db })
})
})()
}
}