浏览代码

refactro(server): job dto (#3057)

Jason Rasmussen 2 年之前
父节点
当前提交
2feac54382

+ 0 - 2
server/src/domain/job/dto/index.ts

@@ -1,2 +0,0 @@
-export * from './job-command.dto';
-export * from './job-id.dto';

+ 0 - 14
server/src/domain/job/dto/job-command.dto.ts

@@ -1,14 +0,0 @@
-import { ApiProperty } from '@nestjs/swagger';
-import { IsBoolean, IsEnum, IsNotEmpty, IsOptional } from 'class-validator';
-import { JobCommand } from '../job.constants';
-
-export class JobCommandDto {
-  @IsNotEmpty()
-  @IsEnum(JobCommand)
-  @ApiProperty({ type: 'string', enum: JobCommand, enumName: 'JobCommand' })
-  command!: JobCommand;
-
-  @IsOptional()
-  @IsBoolean()
-  force!: boolean;
-}

+ 0 - 10
server/src/domain/job/dto/job-id.dto.ts

@@ -1,10 +0,0 @@
-import { ApiProperty } from '@nestjs/swagger';
-import { IsEnum, IsNotEmpty } from 'class-validator';
-import { QueueName } from '../job.constants';
-
-export class JobIdDto {
-  @IsNotEmpty()
-  @IsEnum(QueueName)
-  @ApiProperty({ type: String, enum: QueueName, enumName: 'JobName' })
-  id!: QueueName;
-}

+ 1 - 2
server/src/domain/job/index.ts

@@ -1,6 +1,5 @@
-export * from './dto';
 export * from './job.constants';
+export * from './job.dto';
 export * from './job.interface';
 export * from './job.repository';
 export * from './job.service';
-export * from './response-dto';

+ 20 - 1
server/src/domain/job/response-dto/all-job-status-response.dto.ts → server/src/domain/job/job.dto.ts

@@ -1,5 +1,24 @@
 import { ApiProperty } from '@nestjs/swagger';
-import { QueueName } from '../job.constants';
+import { IsBoolean, IsEnum, IsNotEmpty, IsOptional } from 'class-validator';
+import { JobCommand, QueueName } from './job.constants';
+
+export class JobIdParamDto {
+  @IsNotEmpty()
+  @IsEnum(QueueName)
+  @ApiProperty({ type: String, enum: QueueName, enumName: 'JobName' })
+  id!: QueueName;
+}
+
+export class JobCommandDto {
+  @IsNotEmpty()
+  @IsEnum(JobCommand)
+  @ApiProperty({ type: 'string', enum: JobCommand, enumName: 'JobCommand' })
+  command!: JobCommand;
+
+  @IsOptional()
+  @IsBoolean()
+  force!: boolean;
+}
 
 export class JobCountsDto {
   @ApiProperty({ type: 'integer' })

+ 3 - 1
server/src/domain/job/job.service.spec.ts

@@ -7,11 +7,13 @@ import {
   newJobRepositoryMock,
   newSystemConfigRepositoryMock,
 } from '@test';
-import { IJobRepository, JobCommand, JobHandler, JobItem, JobName, JobService, QueueName } from '.';
 import { IAssetRepository } from '../asset';
 import { ICommunicationRepository } from '../communication';
 import { ISystemConfigRepository } from '../system-config';
 import { SystemConfigCore } from '../system-config/system-config.core';
+import { JobCommand, JobName, QueueName } from './job.constants';
+import { IJobRepository, JobHandler, JobItem } from './job.repository';
+import { JobService } from './job.service';
 
 const makeMockHandlers = (success: boolean) => {
   const mock = jest.fn().mockResolvedValue(success);

+ 1 - 2
server/src/domain/job/job.service.ts

@@ -4,10 +4,9 @@ import { CommunicationEvent, ICommunicationRepository } from '../communication';
 import { assertMachineLearningEnabled } from '../domain.constant';
 import { ISystemConfigRepository } from '../system-config';
 import { SystemConfigCore } from '../system-config/system-config.core';
-import { JobCommandDto } from './dto';
 import { JobCommand, JobName, QueueName } from './job.constants';
+import { AllJobStatusResponseDto, JobCommandDto, JobStatusDto } from './job.dto';
 import { IJobRepository, JobHandler, JobItem } from './job.repository';
-import { AllJobStatusResponseDto, JobStatusDto } from './response-dto';
 
 @Injectable()
 export class JobService {

+ 0 - 1
server/src/domain/job/response-dto/index.ts

@@ -1 +0,0 @@
-export * from './all-job-status-response.dto';

+ 2 - 2
server/src/immich/controllers/job.controller.ts

@@ -1,4 +1,4 @@
-import { AllJobStatusResponseDto, JobCommandDto, JobIdDto, JobService, JobStatusDto } from '@app/domain';
+import { AllJobStatusResponseDto, JobCommandDto, JobIdParamDto, JobService, JobStatusDto } from '@app/domain';
 import { Body, Controller, Get, Param, Put } from '@nestjs/common';
 import { ApiTags } from '@nestjs/swagger';
 import { Authenticated } from '../decorators/authenticated.decorator';
@@ -17,7 +17,7 @@ export class JobController {
   }
 
   @Put(':id')
-  sendJobCommand(@Param() { id }: JobIdDto, @Body() dto: JobCommandDto): Promise<JobStatusDto> {
+  sendJobCommand(@Param() { id }: JobIdParamDto, @Body() dto: JobCommandDto): Promise<JobStatusDto> {
     return this.service.handleCommand(id, dto);
   }
 }