From 8dcc724f59dc4939addd901393386c5fbb875583 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Peveri?= Date: Mon, 29 Jan 2024 22:09:40 +0100 Subject: [PATCH] Move term view things --- src/languages/_dependencyInjection/repositories.ts | 2 +- ...eleteExpressionOnTermCreatedFailedEventHandler.ts | 2 +- .../deleteWordOnTermCreatedFailedEventHandler.ts | 2 +- .../projection/create/createTermProjectionHandler.ts | 8 ++++---- .../term/projection/termViewRepository.ts | 12 ------------ .../term/query/search/searchTermQueryHandler.ts | 6 +++--- .../term/query/search/searchTermResponse.ts | 2 +- .../suggestion/findSuggestionsTermQueryResponse.ts | 2 +- .../query/suggestion/findSuggestionsTermReadLayer.ts | 2 +- .../term/{projection => query}/termView.ts | 0 .../termViewCreatedFailedEvent.ts | 0 .../term/{projection => query}/termViewCriteria.ts | 0 .../application/term/query/termViewReadLayer.ts | 12 ++++++++++++ .../readLayer/mongoFindSuggestionsTermReadLayer.ts | 8 ++++---- .../mongo/repositories/mongoTermViewRepository.ts | 8 ++++---- .../term/query/search/searchTermQueryHandler.test.ts | 2 +- .../suggestion/findSuggestionsTermReadLayerMock.ts | 2 +- test/languages/domain/term/termViewMother.ts | 2 +- test/languages/domain/term/termViewRepositoryMock.ts | 8 ++++---- 19 files changed, 40 insertions(+), 40 deletions(-) delete mode 100644 src/languages/application/term/projection/termViewRepository.ts rename src/languages/application/term/{projection => query}/termView.ts (100%) rename src/languages/application/term/{projection => query}/termViewCreatedFailedEvent.ts (100%) rename src/languages/application/term/{projection => query}/termViewCriteria.ts (100%) create mode 100644 src/languages/application/term/query/termViewReadLayer.ts diff --git a/src/languages/_dependencyInjection/repositories.ts b/src/languages/_dependencyInjection/repositories.ts index 38e2ed32..ebdf2d6e 100644 --- a/src/languages/_dependencyInjection/repositories.ts +++ b/src/languages/_dependencyInjection/repositories.ts @@ -3,7 +3,7 @@ import TypeOrmAuthSessionRepository from '../infrastructure/persistence/typeOrm/ import { COUNTRY_REPOSITORY } from '@src/languages/domain/country/countryRepository'; import TypeOrmCountryRepository from '../infrastructure/persistence/typeOrm/repositories/typeOrmCountryRepository'; import TypeOrmUserRepository from '../infrastructure/persistence/typeOrm/repositories/typeOrmUserRepository'; -import { TERM_REPOSITORY as READ_LAYER_TERM_REPOSITORY } from '@src/languages/application/term/projection/termViewRepository'; +import { TERM_VIEW_READ_LAYER as READ_LAYER_TERM_REPOSITORY } from '@src/languages/application/term/query/termViewReadLayer'; import MongoTermViewRepository from '../infrastructure/persistence/mongo/repositories/mongoTermViewRepository'; import { USER_REPOSITORY } from '@src/languages/domain/user/userRepository'; import { TERM_REPOSITORY } from '@src/languages/domain/term/termRepository'; diff --git a/src/languages/application/term/event/delete/deleteExpressionOnTermCreatedFailedEventHandler.ts b/src/languages/application/term/event/delete/deleteExpressionOnTermCreatedFailedEventHandler.ts index c635195c..637d3885 100644 --- a/src/languages/application/term/event/delete/deleteExpressionOnTermCreatedFailedEventHandler.ts +++ b/src/languages/application/term/event/delete/deleteExpressionOnTermCreatedFailedEventHandler.ts @@ -2,7 +2,7 @@ import { COMMAND_BUS, CommandBus } from '@src/shared/domain/bus/commandBus/comma import { Inject } from '@src/shared/domain/injector/inject.decorator'; import { EventsHandler, IEventHandler } from '@src/shared/domain/bus/eventBus/eventsHandler'; import TermType from '@src/languages/domain/term/termType'; -import TermViewCreatedFailedEvent from '@src/languages/application/term/projection/termViewCreatedFailedEvent'; +import TermViewCreatedFailedEvent from '@src/languages/application/term/query/termViewCreatedFailedEvent'; import DeleteExpressionCommand from '@src/languages/application/term/command/delete/deleteExpressionCommand'; @EventsHandler(TermViewCreatedFailedEvent) diff --git a/src/languages/application/term/event/delete/deleteWordOnTermCreatedFailedEventHandler.ts b/src/languages/application/term/event/delete/deleteWordOnTermCreatedFailedEventHandler.ts index 3d0b91bd..249f28fe 100644 --- a/src/languages/application/term/event/delete/deleteWordOnTermCreatedFailedEventHandler.ts +++ b/src/languages/application/term/event/delete/deleteWordOnTermCreatedFailedEventHandler.ts @@ -2,7 +2,7 @@ import { COMMAND_BUS, CommandBus } from '@src/shared/domain/bus/commandBus/comma import { Inject } from '@src/shared/domain/injector/inject.decorator'; import { EventsHandler, IEventHandler } from '@src/shared/domain/bus/eventBus/eventsHandler'; import TermType from '@src/languages/domain/term/termType'; -import TermViewCreatedFailedEvent from '@src/languages/application/term/projection/termViewCreatedFailedEvent'; +import TermViewCreatedFailedEvent from '@src/languages/application/term/query/termViewCreatedFailedEvent'; import DeleteWordCommand from '../../command/delete/deleteWordCommand'; @EventsHandler(TermViewCreatedFailedEvent) diff --git a/src/languages/application/term/projection/create/createTermProjectionHandler.ts b/src/languages/application/term/projection/create/createTermProjectionHandler.ts index 7d55e0a7..0b0f540c 100644 --- a/src/languages/application/term/projection/create/createTermProjectionHandler.ts +++ b/src/languages/application/term/projection/create/createTermProjectionHandler.ts @@ -1,16 +1,16 @@ -import TermViewRepository, { TERM_REPOSITORY } from '@src/languages/application/term/projection/termViewRepository'; +import TermViewReadLayer, { TERM_VIEW_READ_LAYER } from '@src/languages/application/term/query/termViewReadLayer'; import CreateTermProjection from './createTermProjection'; -import TermView from '@src/languages/application/term/projection/termView'; +import TermView from '@src/languages/application/term/query/termView'; import { Inject } from '@src/shared/domain/injector/inject.decorator'; import TermType from '@src/languages/domain/term/termType'; import { EVENT_BUS, EventBus } from '@src/shared/domain/bus/eventBus/eventBus'; -import TermViewCreatedFailedEvent from '@src/languages/application/term/projection/termViewCreatedFailedEvent'; +import TermViewCreatedFailedEvent from '@src/languages/application/term/query/termViewCreatedFailedEvent'; import { IProjectionHandler, ProjectionHandler } from '@src/shared/domain/bus/projectionBus/projectionHandler'; @ProjectionHandler(CreateTermProjection) export default class CreateTermProjectionHandler implements IProjectionHandler { constructor( - @Inject(TERM_REPOSITORY) private readonly termRepository: TermViewRepository, + @Inject(TERM_VIEW_READ_LAYER) private readonly termRepository: TermViewReadLayer, @Inject(EVENT_BUS) private readonly eventBus: EventBus, ) {} diff --git a/src/languages/application/term/projection/termViewRepository.ts b/src/languages/application/term/projection/termViewRepository.ts deleted file mode 100644 index 127480ec..00000000 --- a/src/languages/application/term/projection/termViewRepository.ts +++ /dev/null @@ -1,12 +0,0 @@ -import TermView from './termView'; -import TermViewCriteria from '@src/languages/application/term/projection/termViewCriteria'; - -interface TermViewRepository { - search(criteria: TermViewCriteria): Promise; - - save(term: TermView): Promise; -} - -export default TermViewRepository; - -export const TERM_REPOSITORY = Symbol('TermViewRepository'); diff --git a/src/languages/application/term/query/search/searchTermQueryHandler.ts b/src/languages/application/term/query/search/searchTermQueryHandler.ts index d841df1e..e93ade8a 100644 --- a/src/languages/application/term/query/search/searchTermQueryHandler.ts +++ b/src/languages/application/term/query/search/searchTermQueryHandler.ts @@ -1,14 +1,14 @@ import QueryResponse from '@src/shared/domain/bus/queryBus/queryResponse'; import SearchTermQuery from './searchTermQuery'; -import TermViewRepository, { TERM_REPOSITORY } from '@src/languages/application/term/projection/termViewRepository'; +import TermViewReadLayer, { TERM_VIEW_READ_LAYER } from '@src/languages/application/term/query/termViewReadLayer'; import SearchTermResponse from './searchTermResponse'; import { Inject } from '@src/shared/domain/injector/inject.decorator'; import { IQueryHandler, QueryHandler } from '@src/shared/domain/bus/queryBus/queryHandler'; -import TermViewCriteria, { TermCriteriaParams } from '@src/languages/application/term/projection/termViewCriteria'; +import TermViewCriteria, { TermCriteriaParams } from '@src/languages/application/term/query/termViewCriteria'; @QueryHandler(SearchTermQuery) export default class SearchTermQueryHandler implements IQueryHandler { - constructor(@Inject(TERM_REPOSITORY) private readonly termRepository: TermViewRepository) {} + constructor(@Inject(TERM_VIEW_READ_LAYER) private readonly termRepository: TermViewReadLayer) {} async execute(query: SearchTermQuery): Promise { const criteria: TermCriteriaParams = { term: query.term, size: query.size, page: query.page }; diff --git a/src/languages/application/term/query/search/searchTermResponse.ts b/src/languages/application/term/query/search/searchTermResponse.ts index ce8e99a9..4e9426fa 100644 --- a/src/languages/application/term/query/search/searchTermResponse.ts +++ b/src/languages/application/term/query/search/searchTermResponse.ts @@ -1,4 +1,4 @@ -import TermView from '@src/languages/application/term/projection/termView'; +import TermView from '@src/languages/application/term/query/termView'; import QueryResponse from '@src/shared/domain/bus/queryBus/queryResponse'; export default class SearchTermResponse extends QueryResponse { diff --git a/src/languages/application/term/query/suggestion/findSuggestionsTermQueryResponse.ts b/src/languages/application/term/query/suggestion/findSuggestionsTermQueryResponse.ts index ebbbcbb6..43a09025 100644 --- a/src/languages/application/term/query/suggestion/findSuggestionsTermQueryResponse.ts +++ b/src/languages/application/term/query/suggestion/findSuggestionsTermQueryResponse.ts @@ -1,4 +1,4 @@ -import TermView from '@src/languages/application/term/projection/termView'; +import TermView from '@src/languages/application/term/query/termView'; import QueryResponse from '@src/shared/domain/bus/queryBus/queryResponse'; export default class FindSuggestionsTermQueryResponse extends QueryResponse { diff --git a/src/languages/application/term/query/suggestion/findSuggestionsTermReadLayer.ts b/src/languages/application/term/query/suggestion/findSuggestionsTermReadLayer.ts index 2b2812fa..0ea27223 100644 --- a/src/languages/application/term/query/suggestion/findSuggestionsTermReadLayer.ts +++ b/src/languages/application/term/query/suggestion/findSuggestionsTermReadLayer.ts @@ -1,4 +1,4 @@ -import TermView from '@src/languages/application/term/projection/termView'; +import TermView from '@src/languages/application/term/query/termView'; import UserId from '@src/languages/domain/user/valueObjects/userId'; interface FindSuggestionsTermReadLayer { diff --git a/src/languages/application/term/projection/termView.ts b/src/languages/application/term/query/termView.ts similarity index 100% rename from src/languages/application/term/projection/termView.ts rename to src/languages/application/term/query/termView.ts diff --git a/src/languages/application/term/projection/termViewCreatedFailedEvent.ts b/src/languages/application/term/query/termViewCreatedFailedEvent.ts similarity index 100% rename from src/languages/application/term/projection/termViewCreatedFailedEvent.ts rename to src/languages/application/term/query/termViewCreatedFailedEvent.ts diff --git a/src/languages/application/term/projection/termViewCriteria.ts b/src/languages/application/term/query/termViewCriteria.ts similarity index 100% rename from src/languages/application/term/projection/termViewCriteria.ts rename to src/languages/application/term/query/termViewCriteria.ts diff --git a/src/languages/application/term/query/termViewReadLayer.ts b/src/languages/application/term/query/termViewReadLayer.ts new file mode 100644 index 00000000..ebab6ba5 --- /dev/null +++ b/src/languages/application/term/query/termViewReadLayer.ts @@ -0,0 +1,12 @@ +import TermView from './termView'; +import TermViewCriteria from '@src/languages/application/term/query/termViewCriteria'; + +interface TermViewReadLayer { + search(criteria: TermViewCriteria): Promise; + + save(term: TermView): Promise; +} + +export default TermViewReadLayer; + +export const TERM_VIEW_READ_LAYER = Symbol('TermViewReadLayer'); diff --git a/src/languages/infrastructure/persistence/mongo/readLayer/mongoFindSuggestionsTermReadLayer.ts b/src/languages/infrastructure/persistence/mongo/readLayer/mongoFindSuggestionsTermReadLayer.ts index 107b391f..25ccf093 100644 --- a/src/languages/infrastructure/persistence/mongo/readLayer/mongoFindSuggestionsTermReadLayer.ts +++ b/src/languages/infrastructure/persistence/mongo/readLayer/mongoFindSuggestionsTermReadLayer.ts @@ -1,17 +1,17 @@ import FindSuggestionsTermReadLayer from '@src/languages/application/term/query/suggestion/findSuggestionsTermReadLayer'; import UserId from '@src/languages/domain/user/valueObjects/userId'; -import TermView from '@src/languages/application/term/projection/termView'; +import TermView from '@src/languages/application/term/query/termView'; import UserRepository, { USER_REPOSITORY } from '@src/languages/domain/user/userRepository'; import { Inject } from '@src/shared/domain/injector/inject.decorator'; -import TermViewRepository, { TERM_REPOSITORY } from '@src/languages/application/term/projection/termViewRepository'; +import TermViewReadLayer, { TERM_VIEW_READ_LAYER } from '@src/languages/application/term/query/termViewReadLayer'; import UserFinder from '@src/languages/domain/user/services/userFinder'; -import TermViewCriteria from '@src/languages/application/term/projection/termViewCriteria'; +import TermViewCriteria from '@src/languages/application/term/query/termViewCriteria'; export default class MongoFindSuggestionsTermReadLayer implements FindSuggestionsTermReadLayer { private readonly userFinder: UserFinder; constructor( - @Inject(TERM_REPOSITORY) private readonly termRepository: TermViewRepository, + @Inject(TERM_VIEW_READ_LAYER) private readonly termRepository: TermViewReadLayer, @Inject(USER_REPOSITORY) userRepository: UserRepository, ) { this.userFinder = new UserFinder(userRepository); diff --git a/src/languages/infrastructure/persistence/mongo/repositories/mongoTermViewRepository.ts b/src/languages/infrastructure/persistence/mongo/repositories/mongoTermViewRepository.ts index e1116411..b137e2a7 100644 --- a/src/languages/infrastructure/persistence/mongo/repositories/mongoTermViewRepository.ts +++ b/src/languages/infrastructure/persistence/mongo/repositories/mongoTermViewRepository.ts @@ -1,13 +1,13 @@ import { Injectable } from '@nestjs/common'; -import TermView from '@src/languages/application/term/projection/termView'; -import TermViewRepository from '@src/languages/application/term/projection/termViewRepository'; +import TermView from '@src/languages/application/term/query/termView'; +import TermViewReadLayer from '@src/languages/application/term/query/termViewReadLayer'; import MongoRepository from '@src/shared/infrastructure/persistence/mongo/mongoRepository'; import { Document } from 'mongodb'; -import TermViewCriteria from '@src/languages/application/term/projection/termViewCriteria'; +import TermViewCriteria from '@src/languages/application/term/query/termViewCriteria'; import { SortDirection } from 'typeorm'; @Injectable() -export default class MongoTermViewRepository extends MongoRepository implements TermViewRepository { +export default class MongoTermViewRepository extends MongoRepository implements TermViewReadLayer { constructor() { super('terms'); } diff --git a/test/languages/application/term/query/search/searchTermQueryHandler.test.ts b/test/languages/application/term/query/search/searchTermQueryHandler.test.ts index 7849c5d8..6579ecf0 100644 --- a/test/languages/application/term/query/search/searchTermQueryHandler.test.ts +++ b/test/languages/application/term/query/search/searchTermQueryHandler.test.ts @@ -2,7 +2,7 @@ import { beforeEach, describe, expect, it } from '@jest/globals'; import { SearchTermQueryMother } from './searchTermQueryMother'; import SearchTermQueryHandler from '@src/languages/application/term/query/search/searchTermQueryHandler'; import { TermViewMother } from '@test/languages/domain/term/termViewMother'; -import TermView from '@src/languages/application/term/projection/termView'; +import TermView from '@src/languages/application/term/query/termView'; import { TermViewRepositoryMock } from '@test/languages/domain/term/termViewRepositoryMock'; describe('SearchTermQueryHandler', () => { diff --git a/test/languages/application/term/query/suggestion/findSuggestionsTermReadLayerMock.ts b/test/languages/application/term/query/suggestion/findSuggestionsTermReadLayerMock.ts index 30000881..ce77adf7 100644 --- a/test/languages/application/term/query/suggestion/findSuggestionsTermReadLayerMock.ts +++ b/test/languages/application/term/query/suggestion/findSuggestionsTermReadLayerMock.ts @@ -1,5 +1,5 @@ import { jest } from '@jest/globals'; -import TermView from '@src/languages/application/term/projection/termView'; +import TermView from '@src/languages/application/term/query/termView'; import UserId from '@src/languages/domain/user/valueObjects/userId'; import FindSuggestionsTermReadLayer from '@src/languages/application/term/query/suggestion/findSuggestionsTermReadLayer'; diff --git a/test/languages/domain/term/termViewMother.ts b/test/languages/domain/term/termViewMother.ts index 1c389652..bf7cee18 100644 --- a/test/languages/domain/term/termViewMother.ts +++ b/test/languages/domain/term/termViewMother.ts @@ -1,4 +1,4 @@ -import TermView from '@src/languages/application/term/projection/termView'; +import TermView from '@src/languages/application/term/query/termView'; import faker from 'faker'; import TermTypeMother from './termTypeMother'; diff --git a/test/languages/domain/term/termViewRepositoryMock.ts b/test/languages/domain/term/termViewRepositoryMock.ts index bbfaacde..8a4b7572 100644 --- a/test/languages/domain/term/termViewRepositoryMock.ts +++ b/test/languages/domain/term/termViewRepositoryMock.ts @@ -1,9 +1,9 @@ import { jest } from '@jest/globals'; -import TermView from '@src/languages/application/term/projection/termView'; -import TermViewRepository from '@src/languages/application/term/projection/termViewRepository'; -import TermViewCriteria from '@src/languages/application/term/projection/termViewCriteria'; +import TermView from '@src/languages/application/term/query/termView'; +import TermViewReadLayer from '@src/languages/application/term/query/termViewReadLayer'; +import TermViewCriteria from '@src/languages/application/term/query/termViewCriteria'; -export class TermViewRepositoryMock implements TermViewRepository { +export class TermViewRepositoryMock implements TermViewReadLayer { private searchMock: jest.Mock; private saveMock: jest.Mock; private terms: TermView[];