131 lines
3.6 KiB
TypeScript
131 lines
3.6 KiB
TypeScript
import got from "got";
|
|
|
|
import {
|
|
CheckService,
|
|
InviteService,
|
|
MaintenanceService,
|
|
MonitorStatsService,
|
|
NotificationChannelService,
|
|
UserService,
|
|
DiscordService,
|
|
EmailService,
|
|
SlackService,
|
|
WebhookService,
|
|
NetworkService,
|
|
StatusService,
|
|
NotificationService,
|
|
JobQueue,
|
|
JobGenerator,
|
|
AuthService,
|
|
MonitorService,
|
|
QueueService,
|
|
TeamService,
|
|
RoleService,
|
|
TeamMemberService,
|
|
StatusPageService,
|
|
DiagnosticService,
|
|
RecoveryService,
|
|
IncidentService,
|
|
SettingsService,
|
|
StripeService,
|
|
BillingService,
|
|
StatsAggregationService,
|
|
} from "@/services/index.js";
|
|
import { EntitlementsFactory } from "@/services/system/EntitlementsService.js";
|
|
import { MeService } from "@/services/index.js";
|
|
import {
|
|
MongoMonitorRepository,
|
|
MongoChecksRepository,
|
|
} from "@/repositories/index.js";
|
|
|
|
export const initServices = async () => {
|
|
const monitorRepository = new MongoMonitorRepository();
|
|
const checksRepository = new MongoChecksRepository();
|
|
|
|
const checkService = new CheckService();
|
|
const inviteService = new InviteService();
|
|
const maintenanceService = new MaintenanceService();
|
|
const monitorStatsService = new MonitorStatsService();
|
|
const notificationChannelService = new NotificationChannelService();
|
|
const userService = new UserService();
|
|
const discordService = new DiscordService();
|
|
const slackService = new SlackService();
|
|
const webhookService = new WebhookService();
|
|
const networkService = new NetworkService(got);
|
|
const statusService = new StatusService(monitorRepository);
|
|
const settingsService = new SettingsService();
|
|
const stripeService = new StripeService();
|
|
const billingService = new BillingService();
|
|
const emailService = new EmailService(userService, settingsService);
|
|
settingsService.setEmailService(emailService);
|
|
const notificationService = new NotificationService(
|
|
userService,
|
|
settingsService
|
|
);
|
|
const incidentService = new IncidentService();
|
|
const statsAggregationService = new StatsAggregationService();
|
|
const jobGenerator = new JobGenerator(
|
|
networkService,
|
|
checkService,
|
|
monitorStatsService,
|
|
statusService,
|
|
notificationService,
|
|
incidentService,
|
|
maintenanceService,
|
|
statsAggregationService
|
|
);
|
|
const jobQueue = await JobQueue.create(jobGenerator, monitorRepository);
|
|
const entitlementsProvider = EntitlementsFactory.create();
|
|
const authService = new AuthService(
|
|
jobQueue,
|
|
entitlementsProvider,
|
|
monitorRepository
|
|
);
|
|
const meService = new MeService(entitlementsProvider);
|
|
const monitorService = new MonitorService(
|
|
jobQueue,
|
|
monitorRepository,
|
|
checksRepository
|
|
);
|
|
const queueService = new QueueService(jobQueue);
|
|
const teamService = new TeamService(jobQueue);
|
|
const roleService = new RoleService();
|
|
const teamMemberService = new TeamMemberService();
|
|
const statusPageService = new StatusPageService();
|
|
const diagnosticService = new DiagnosticService(jobQueue);
|
|
const recoveryService = new RecoveryService();
|
|
const services = {
|
|
checkService,
|
|
inviteService,
|
|
maintenanceService,
|
|
monitorStatsService,
|
|
notificationChannelService,
|
|
userService,
|
|
discordService,
|
|
emailService,
|
|
slackService,
|
|
webhookService,
|
|
networkService,
|
|
statusService,
|
|
notificationService,
|
|
jobGenerator,
|
|
jobQueue,
|
|
authService,
|
|
meService,
|
|
monitorService,
|
|
queueService,
|
|
teamService,
|
|
roleService,
|
|
teamMemberService,
|
|
statusPageService,
|
|
diagnosticService,
|
|
recoveryService,
|
|
incidentService,
|
|
settingsService,
|
|
billingService,
|
|
stripeService,
|
|
};
|
|
|
|
return services;
|
|
};
|