diff --git a/frontend/src/lib/container.ts b/frontend/src/lib/container.ts index 1d2822f..5b61dc4 100644 --- a/frontend/src/lib/container.ts +++ b/frontend/src/lib/container.ts @@ -7,11 +7,13 @@ import { AuthApiServiceImpl } from '$lib/auth/framework/api/authApiServiceImpl'; import type { LabelApiService } from '$lib/label/adapter/gateway/labelApiService'; import { LabelRepositoryImpl } from '$lib/label/adapter/gateway/labelRepositoryImpl'; import { LabelCreatedStore } from '$lib/label/adapter/presenter/labelCreatedStore'; +import { LabelUpdatedStore } from '$lib/label/adapter/presenter/labelUpdatedStore'; import type { LabelViewModel } from '$lib/label/adapter/presenter/labelViewModel'; import { LabelsListedStore } from '$lib/label/adapter/presenter/labelsListedStore'; import type { LabelRepository } from '$lib/label/application/gateway/labelRepository'; import { CreateLabelUseCase } from '$lib/label/application/useCase/createLabelUseCase'; import { GetAllLabelsUseCase } from '$lib/label/application/useCase/getAllLabelsUseCase'; +import { UpdateLabelUseCase } from '$lib/label/application/useCase/updateLabelUseCase'; import { LabelApiServiceImpl } from '$lib/label/framework/api/labelApiServiceImpl'; import type { ImageApiService } from '$lib/image/adapter/gateway/imageApiService'; import { ImageRepositoryImpl } from '$lib/image/adapter/gateway/imageRepositoryImpl'; @@ -74,6 +76,10 @@ export class Container { createLabelCreatedStore(): LabelCreatedStore { return new LabelCreatedStore(this.useCases.createLabelUseCase); } + + createLabelUpdatedStore(): LabelUpdatedStore { + return new LabelUpdatedStore(this.useCases.updateLabelUseCase); + } } class ApiServices { @@ -153,6 +159,7 @@ class UseCases { private _getAllLabelsUseCase?: GetAllLabelsUseCase; private _getLabelUseCase?: GetLabelUseCase; private _createLabelUseCase?: CreateLabelUseCase; + private _updateLabelUseCase?: UpdateLabelUseCase; constructor(repositories: Repositories) { this.repositories = repositories; @@ -197,4 +204,9 @@ class UseCases { this._createLabelUseCase ??= new CreateLabelUseCase(this.repositories.labelRepository); return this._createLabelUseCase; } + + get updateLabelUseCase(): UpdateLabelUseCase { + this._updateLabelUseCase ??= new UpdateLabelUseCase(this.repositories.labelRepository); + return this._updateLabelUseCase; + } } diff --git a/frontend/src/lib/label/adapter/gateway/labelApiService.ts b/frontend/src/lib/label/adapter/gateway/labelApiService.ts index 68d79e5..2ddc196 100644 --- a/frontend/src/lib/label/adapter/gateway/labelApiService.ts +++ b/frontend/src/lib/label/adapter/gateway/labelApiService.ts @@ -1,8 +1,10 @@ import type { CreateLabelRequestDto } from '$lib/label/adapter/gateway/createLabelRequestDto'; import type { LabelResponseDto } from '$lib/label/adapter/gateway/labelResponseDto'; +import type { UpdateLabelRequestDto } from '$lib/label/adapter/gateway/updateLabelRequestDto'; export interface LabelApiService { getAllLabels(): Promise; getLabelById(id: number): Promise; createLabel(payload: CreateLabelRequestDto): Promise; + updateLabel(id: number, payload: UpdateLabelRequestDto): Promise; } diff --git a/frontend/src/lib/label/adapter/gateway/labelRepositoryImpl.ts b/frontend/src/lib/label/adapter/gateway/labelRepositoryImpl.ts index 8ff3642..31c4447 100644 --- a/frontend/src/lib/label/adapter/gateway/labelRepositoryImpl.ts +++ b/frontend/src/lib/label/adapter/gateway/labelRepositoryImpl.ts @@ -1,8 +1,10 @@ import { CreateLabelRequestDto } from '$lib/label/adapter/gateway/createLabelRequestDto'; import type { LabelApiService } from '$lib/label/adapter/gateway/labelApiService'; +import { UpdateLabelRequestDto } from '$lib/label/adapter/gateway/updateLabelRequestDto'; import type { CreateLabelParams, LabelRepository, + UpdateLabelParams, } from '$lib/label/application/gateway/labelRepository'; import type { Label } from '$lib/label/domain/entity/label'; @@ -24,4 +26,10 @@ export class LabelRepositoryImpl implements LabelRepository { const responseDto = await this.labelApiService.createLabel(requestDto); return responseDto.toEntity(); } + + async updateLabel(id: number, params: UpdateLabelParams): Promise