1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-25 00:07:47 +01:00

refactor: composition root for personal dashboard service (#8280)

This commit is contained in:
Mateusz Kwasniewski 2024-09-27 10:44:27 +02:00 committed by GitHub
parent 6655b2d961
commit 829fda77fd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 36 additions and 17 deletions

View File

@ -11,3 +11,4 @@ export * from './events/createEventsService';
export * from './instance-stats/createInstanceStatsService';
export * from './feature-lifecycle/createFeatureLifecycle';
export * from './playground/createPlaygroundService';
export * from './personal-dashboard/createPersonalDashboardService';

View File

@ -0,0 +1,28 @@
import type { Db } from '../../db/db';
import type { IUnleashConfig } from '../../types';
import { PersonalDashboardService } from './personal-dashboard-service';
import { PersonalDashboardReadModel } from './personal-dashboard-read-model';
import { FakePersonalDashboardReadModel } from './fake-personal-dashboard-read-model';
import { ProjectOwnersReadModel } from '../project/project-owners-read-model';
import { FakeProjectOwnersReadModel } from '../project/fake-project-owners-read-model';
import { ProjectReadModel } from '../project/project-read-model';
import { FakeProjectReadModel } from '../project/fake-project-read-model';
export const createPersonalDashboardService = (
db: Db,
config: IUnleashConfig,
) => {
return new PersonalDashboardService(
new PersonalDashboardReadModel(db),
new ProjectOwnersReadModel(db),
new ProjectReadModel(db, config.eventBus, config.flagResolver),
);
};
export const createFakePersonalDashboardService = () => {
return new PersonalDashboardService(
new FakePersonalDashboardReadModel(),
new FakeProjectOwnersReadModel(),
new FakeProjectReadModel(),
);
};

View File

@ -147,12 +147,10 @@ import {
} from '../features/onboarding/createOnboardingService';
import { OnboardingService } from '../features/onboarding/onboarding-service';
import { PersonalDashboardService } from '../features/personal-dashboard/personal-dashboard-service';
import { PersonalDashboardReadModel } from '../features/personal-dashboard/personal-dashboard-read-model';
import { FakePersonalDashboardReadModel } from '../features/personal-dashboard/fake-personal-dashboard-read-model';
import { ProjectOwnersReadModel } from '../features/project/project-owners-read-model';
import { FakeProjectOwnersReadModel } from '../features/project/fake-project-owners-read-model';
import { FakeProjectReadModel } from '../features/project/fake-project-read-model';
import { ProjectReadModel } from '../features/project/project-read-model';
import {
createFakePersonalDashboardService,
createPersonalDashboardService,
} from '../features/personal-dashboard/createPersonalDashboardService';
export const createServices = (
stores: IUnleashStores,
@ -408,17 +406,9 @@ export const createServices = (
: createFakeOnboardingService(config).onboardingService;
onboardingService.listen();
// TODO: move to composition root
const personalDashboardService = new PersonalDashboardService(
db
? new PersonalDashboardReadModel(db)
: new FakePersonalDashboardReadModel(),
db ? new ProjectOwnersReadModel(db) : new FakeProjectOwnersReadModel(),
db
? new ProjectReadModel(db, config.eventBus, config.flagResolver)
: new FakeProjectReadModel(),
);
const personalDashboardService = db
? createPersonalDashboardService(db, config)
: createFakePersonalDashboardService();
return {
accessService,