secajs/src/dependencies.js

61 lines
1.7 KiB
JavaScript
Raw Normal View History

2025-03-05 15:39:31 +01:00
const express = require('express');
2025-03-08 02:47:37 +01:00
async function buildDependencies() {
2025-03-05 15:39:31 +01:00
const dependencies = {};
2025-03-05 16:23:36 +01:00
const errors = require('./errors');
2025-03-06 01:09:45 +01:00
const constants = require('./constants');
2025-03-08 00:25:56 +01:00
2025-03-08 00:29:52 +01:00
const sequelize = require('./database');
const { DataTypes } = require('sequelize');
2025-03-08 00:25:56 +01:00
const ModelsProvider = require('./models');
2025-03-08 00:29:52 +01:00
const models = new ModelsProvider({ sequelize, DataTypes }).provide();
2025-03-06 01:09:45 +01:00
2025-03-08 02:47:37 +01:00
const AssociationsDefiner = require('./associations');
new AssociationsDefiner({ models, DataTypes }).define();
sequelize
.sync({ alter: true })
.then(() => {
console.log('Database synced');
})
.catch((err) => {
console.error('Error syncing the database:', err);
});
2025-03-06 01:09:45 +01:00
const ServicesProvider = require('./services');
2025-03-07 16:24:51 +01:00
const services = new ServicesProvider({
models,
constants,
errors,
}).provide();
2025-03-07 12:52:15 +01:00
dependencies.services = services;
2025-03-05 15:55:13 +01:00
2025-03-06 01:01:12 +01:00
const MiddlewaresProvider = require('./middlewares');
const middlewares = new MiddlewaresProvider({
constants,
sessionService: services.sessionService,
profileService: services.profileService,
}).provide();
dependencies.middlewares = middlewares;
2025-03-05 15:39:31 +01:00
const WebRoutesProvider = require('./routes/webRoutes');
2025-03-05 15:55:13 +01:00
const webRoutesProvider = new WebRoutesProvider({
express,
middlewares,
2025-03-05 16:21:37 +01:00
invitesService: services.invitesService,
2025-03-05 15:55:13 +01:00
});
2025-03-05 15:39:31 +01:00
dependencies.webRoutes = webRoutesProvider.provide();
2025-03-05 16:04:44 +01:00
const ApiRoutesProvider = require('./routes/apiRoutes');
2025-03-05 16:23:36 +01:00
const apiRoutesProvider = new ApiRoutesProvider({
2025-03-05 16:29:51 +01:00
express,
2025-03-05 16:23:36 +01:00
middlewares,
services,
errors,
});
2025-03-05 16:04:44 +01:00
dependencies.apiRoutes = apiRoutesProvider.provide();
2025-03-05 15:39:31 +01:00
return dependencies;
}
module.exports = { buildDependencies };