mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-19 21:46:49 +00:00
8ede0dab9e
MaintenanceRepository was built with new over an injected EntityManager in the readiness probe and in UserCleanupService, outside the container. MaintenanceModule now provides it, as a factory over the same context-resolving EntityManager Nest injects everywhere, and both inject it. The class itself stays free of Nest decorators, like the rest of src/db, so tests keep building one over their own EntityManager. No behaviour changes: the probe still pings and the erasure still runs inside the account deletion's transaction.
26 lines
923 B
TypeScript
26 lines
923 B
TypeScript
import { Module } from '@nestjs/common';
|
|
import { EntityManager } from '@mikro-orm/core';
|
|
import { MaintenanceRepository } from '../../db/repositories/MaintenanceRepository';
|
|
|
|
/**
|
|
* Provides `MaintenanceRepository`, the home of the few whole-database
|
|
* statements no entity can express (the readiness ping, the WAL checkpoint,
|
|
* `VACUUM INTO`, the plugin-table erasure).
|
|
*
|
|
* A factory over the context-resolving global `EntityManager`, the same one
|
|
* Nest injects into every service, so the repository resolves the request or
|
|
* transaction fork that is active when a method runs. The class itself stays
|
|
* free of Nest, like every other file under `db/`.
|
|
*/
|
|
@Module({
|
|
providers: [
|
|
{
|
|
provide: MaintenanceRepository,
|
|
useFactory: (em: EntityManager) => new MaintenanceRepository(em),
|
|
inject: [EntityManager],
|
|
},
|
|
],
|
|
exports: [MaintenanceRepository],
|
|
})
|
|
export class MaintenanceModule {}
|