Skip to content

Commit

Permalink
refactor(api): Add a symbol for SurveyDataRepository provider
Browse files Browse the repository at this point in the history
  • Loading branch information
alepefe committed Oct 24, 2024
1 parent 6837370 commit 4a8a2c7
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 6 deletions.
3 changes: 3 additions & 0 deletions api/src/infrastructure/survey-data-repository.interface.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ import {
import { BaseWidgetWithData } from '@shared/dto/widgets/base-widget-data.interface';
import { BaseWidget } from '@shared/dto/widgets/base-widget.entity';
import { WidgetDataFilter } from '@shared/dto/widgets/widget-data-filter';

export const SurveyDataRepository = Symbol('ISurveyDataRepository');

export interface ISurveyDataRepository {
addSurveyDataToSections(
sections: Partial<Section>[],
Expand Down
3 changes: 2 additions & 1 deletion api/src/modules/sections/sections.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@ import { TypeOrmModule } from '@nestjs/typeorm';
import { AuthModule } from '@api/modules/auth/auth.module';
import { PostgresSurveyDataRepository } from '@api/infrastructure/postgres-survey-data.repository';
import { SQLAdapter } from '@api/infrastructure/sql-adapter';
import { SurveyDataRepository } from '@api/infrastructure/survey-data-repository.interface';

@Module({
imports: [TypeOrmModule.forFeature([Section]), forwardRef(() => AuthModule)],
providers: [
SQLAdapter,
{ provide: 'SurveyDataRepository', useClass: PostgresSurveyDataRepository },
{ provide: SurveyDataRepository, useClass: PostgresSurveyDataRepository },
SectionsService,
],
controllers: [SectionsController],
Expand Down
7 changes: 5 additions & 2 deletions api/src/modules/sections/sections.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@ import {
SectionWithDataWidget,
} from '@shared/dto/sections/section.entity';
import { FetchSpecification } from 'nestjs-base-service';
import { ISurveyDataRepository } from '@api/infrastructure/survey-data-repository.interface';
import {
ISurveyDataRepository,
SurveyDataRepository,
} from '@api/infrastructure/survey-data-repository.interface';
import { WidgetDataFiltersSchema } from '@shared/schemas/widget-data-filters.schema';

@Injectable()
Expand All @@ -21,7 +24,7 @@ export class SectionsService extends AppBaseService<
public constructor(
@InjectRepository(Section)
private readonly sectionsRepository: Repository<SectionWithDataWidget>,
@Inject('SurveyDataRepository')
@Inject(SurveyDataRepository)
private readonly surveyDataRepository: ISurveyDataRepository,
) {
super(sectionsRepository, 'section', 'sections');
Expand Down
3 changes: 2 additions & 1 deletion api/src/modules/widgets/widgets.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { WidgetsController } from '@api/modules/widgets/widgets.controller';
import { WidgetsService } from '@api/modules/widgets/widgets.service';
import { PostgresSurveyDataRepository } from '@api/infrastructure/postgres-survey-data.repository';
import { SQLAdapter } from '@api/infrastructure/sql-adapter';
import { SurveyDataRepository } from '@api/infrastructure/survey-data-repository.interface';

@Module({
imports: [
Expand All @@ -20,7 +21,7 @@ import { SQLAdapter } from '@api/infrastructure/sql-adapter';
],
providers: [
SQLAdapter,
{ provide: 'SurveyDataRepository', useClass: PostgresSurveyDataRepository },
{ provide: SurveyDataRepository, useClass: PostgresSurveyDataRepository },
CustomWidgetService,
PageFiltersService,
WidgetsService,
Expand Down
7 changes: 5 additions & 2 deletions api/src/modules/widgets/widgets.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@ import { FetchSpecification } from 'nestjs-base-service';
import { WidgetVisualisationFilters } from '@shared/schemas/widget-visualisation-filters.schema';
import { BaseWidgetWithData } from '@shared/dto/widgets/base-widget-data.interface';
import { WidgetDataFiltersSchema } from '@shared/schemas/widget-data-filters.schema';
import { ISurveyDataRepository } from '@api/infrastructure/survey-data-repository.interface';
import {
ISurveyDataRepository,
SurveyDataRepository,
} from '@api/infrastructure/survey-data-repository.interface';

@Injectable()
export class WidgetsService extends AppBaseService<
Expand All @@ -22,7 +25,7 @@ export class WidgetsService extends AppBaseService<
protected readonly logger: Logger,
@InjectRepository(BaseWidget)
private baseWidgetRepository: Repository<BaseWidget>,
@Inject('SurveyDataRepository')
@Inject(SurveyDataRepository)
private readonly surveyDataRepository: ISurveyDataRepository,
) {
super(baseWidgetRepository, 'baseWidget', 'baseWidgets');
Expand Down

0 comments on commit 4a8a2c7

Please sign in to comment.