authenzify
Version:
server to manage authentication authorization of users and more
48 lines (40 loc) • 1.47 kB
JavaScript
import { initMongoDalServices } from './mongodb/index.js'
import { UsersService } from '../../services/users.service.js'
import { PermissionsService } from '../../services/permissions.service.js'
import { UsersManagement } from '../business-logic/users-management.js'
import { VerificationsService } from '../../services/verifications.service.js'
import { addEmailsNotificationsListeners } from '../factories/email-notifications/add-emails-notifications-listeners.js'
const SUPPORTED_STORAGES = {
mongodb: true,
}
export const factory = async (configService) => {
if (!SUPPORTED_STORAGES[configService.storage.type]) {
throw new Error(`${configService.storage.type} storage not supported yet`)
}
const {
iDalUsersService,
iDalPermissionsService,
iDalVerificationsService,
iDalPermissionsGroupsService,
} = await initMongoDalServices({
config: configService.storage,
})
const Users = new UsersService(iDalUsersService)
const Verifications = new VerificationsService(iDalVerificationsService)
const Permissions = new PermissionsService(
iDalPermissionsService,
iDalPermissionsGroupsService,
)
//const Permissions = new PermissionsService(configService,)
const services = {
Users,
Permissions,
Verifications,
}
const usersManagement = new UsersManagement({
services,
configService,
})
await addEmailsNotificationsListeners({ configService, usersManagement })
return usersManagement
}