Files
speckle-server/packages/server/modules/accessrequests/events/emitter.ts
T
2022-09-06 11:10:38 +03:00

32 lines
945 B
TypeScript

import { ServerAccessRequestRecord } from '@/modules/accessrequests/repositories'
import { StreamRoles } from '@/modules/core/helpers/mainConstants'
import { initializeModuleEventEmitter } from '@/modules/shared/services/moduleEventEmitterSetup'
export enum AccessRequestsEvents {
Created = 'created',
Finalized = 'finalized'
}
export type AccessRequestsEventsPayloads = {
[AccessRequestsEvents.Created]: { request: ServerAccessRequestRecord }
[AccessRequestsEvents.Finalized]: {
request: ServerAccessRequestRecord
/**
* ID of the user that finalized this request
*/
finalizedBy: string
/**
* If this object is set, request was approved
*/
approved?: {
role: StreamRoles
}
}
}
const { emit, listen } = initializeModuleEventEmitter<AccessRequestsEventsPayloads>({
moduleName: 'accessrequests'
})
export const AccessRequestsEmitter = { emit, listen, events: AccessRequestsEvents }