- Added access fields definition in access-fields.ts - Created access form values handling in access-form-values.ts - Developed access form component for creating and editing access items - Implemented access history dialog to view changes made to access items - Introduced access labels for better representation of access items - Built access row component for displaying access items in a table - Created access workspace page for managing access items with search functionality - Added internationalization support for Spanish and English languages - Implemented tests for access components to ensure functionality
39 lines
1.9 KiB
TypeScript
39 lines
1.9 KiB
TypeScript
import type { RequestHandler } from "express";
|
|
import type { Sequelize } from "sequelize";
|
|
|
|
import { AccessUseCases } from "./application/access.use-cases";
|
|
import { CompanyUseCases } from "./application/company.use-cases";
|
|
import { CompanyInputMapper } from "./application/company-input.mapper";
|
|
import { registerAccessRoutes } from "./infrastructure/http/access.routes";
|
|
import { registerCompanyRoutes } from "./infrastructure/http/company.routes";
|
|
import {
|
|
AccessPersistenceMapper,
|
|
SequelizeAccessRepository,
|
|
migrateAccess,
|
|
} from "./infrastructure/persistence/access-persistence";
|
|
import { initializeCompanyModels } from "./infrastructure/persistence/company.model";
|
|
import { CompanyPersistenceMapper } from "./infrastructure/persistence/company-persistence.mapper";
|
|
import { migrateCompanies } from "./infrastructure/persistence/migrate-companies";
|
|
import { migratePeople } from "./infrastructure/persistence/migrate-people";
|
|
import { initializePeopleModels } from "./infrastructure/persistence/people.model";
|
|
import { SequelizeCompanyRepository } from "./infrastructure/persistence/sequelize-company.repository";
|
|
|
|
export async function createCompanyModule(database: Sequelize, authenticate: RequestHandler) {
|
|
await migrateCompanies(database);
|
|
await migratePeople(database);
|
|
initializeCompanyModels(database);
|
|
initializePeopleModels(database);
|
|
const repository = new SequelizeCompanyRepository(database, new CompanyPersistenceMapper());
|
|
await migrateAccess(database);
|
|
const access = new AccessUseCases(
|
|
new SequelizeAccessRepository(database, repository, new AccessPersistenceMapper())
|
|
);
|
|
const useCases = new CompanyUseCases(repository, new CompanyInputMapper());
|
|
return {
|
|
register: (app: Parameters<typeof registerCompanyRoutes>[0]) => {
|
|
registerCompanyRoutes(app, useCases, authenticate);
|
|
registerAccessRoutes(app, access, authenticate);
|
|
},
|
|
};
|
|
}
|