From 48861b085e75225d9ea6aede38d9f2b438ee3d1e Mon Sep 17 00:00:00 2001 From: Timon Date: Thu, 18 Jun 2026 14:44:28 +0200 Subject: [PATCH] chore(server): organize integrity dtos (#29191) --- .../src/controllers/integrity-admin.controller.ts | 3 ++- server/src/dtos/integrity.dto.ts | 13 +++++++------ server/src/validation.ts | 5 ----- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/server/src/controllers/integrity-admin.controller.ts b/server/src/controllers/integrity-admin.controller.ts index 07a074ac58..a0ef6c1072 100644 --- a/server/src/controllers/integrity-admin.controller.ts +++ b/server/src/controllers/integrity-admin.controller.ts @@ -7,13 +7,14 @@ import { IntegrityGetReportDto, IntegrityReportResponseDto, IntegrityReportSummaryResponseDto, + IntegrityReportTypeParamDto, } from 'src/dtos/integrity.dto'; import { ApiTag, Permission } from 'src/enum'; import { Auth, Authenticated, FileResponse } from 'src/middleware/auth.guard'; import { LoggingRepository } from 'src/repositories/logging.repository'; import { IntegrityService } from 'src/services/integrity.service'; import { sendFile } from 'src/utils/file'; -import { IntegrityReportTypeParamDto, UUIDv7ParamDto } from 'src/validation'; +import { UUIDv7ParamDto } from 'src/validation'; @ApiTags(ApiTag.Maintenance) @Controller('admin/integrity') diff --git a/server/src/dtos/integrity.dto.ts b/server/src/dtos/integrity.dto.ts index 3b89b117ea..52df5bf794 100644 --- a/server/src/dtos/integrity.dto.ts +++ b/server/src/dtos/integrity.dto.ts @@ -10,8 +10,6 @@ const IntegrityReportSummaryResponseSchema = z }) .meta({ id: 'IntegrityReportSummaryResponseDto' }); -export class IntegrityReportSummaryResponseDto extends createZodDto(IntegrityReportSummaryResponseSchema) {} - const IntegrityGetReportSchema = z .object({ type: IntegrityReportSchema, @@ -20,17 +18,14 @@ const IntegrityGetReportSchema = z }) .meta({ id: 'IntegrityGetReportDto' }); -export class IntegrityGetReportDto extends createZodDto(IntegrityGetReportSchema) {} - const IntegrityDeleteReportSchema = z.object({ type: IntegrityReport }).meta({ id: 'IntegrityDeleteReportDto' }); -export class IntegrityDeleteReportDto extends createZodDto(IntegrityDeleteReportSchema) {} - const IntegrityReportResponseItemSchema = z.object({ id: z.uuidv4().describe('Integrity report item id'), type: IntegrityReportSchema, path: z.string().describe('Integrity report item path'), }); + const IntegrityReportResponseSchema = z .object({ items: z.array(IntegrityReportResponseItemSchema), @@ -38,4 +33,10 @@ const IntegrityReportResponseSchema = z }) .meta({ id: 'IntegrityReportResponseDto' }); +const IntegrityReportParamSchema = z.object({ type: IntegrityReportSchema }).meta({ id: 'IntegrityReportDto' }); + +export class IntegrityReportSummaryResponseDto extends createZodDto(IntegrityReportSummaryResponseSchema) {} +export class IntegrityGetReportDto extends createZodDto(IntegrityGetReportSchema) {} +export class IntegrityDeleteReportDto extends createZodDto(IntegrityDeleteReportSchema) {} export class IntegrityReportResponseDto extends createZodDto(IntegrityReportResponseSchema) {} +export class IntegrityReportTypeParamDto extends createZodDto(IntegrityReportParamSchema) {} diff --git a/server/src/validation.ts b/server/src/validation.ts index 60cb0fa802..220d89e4a0 100644 --- a/server/src/validation.ts +++ b/server/src/validation.ts @@ -1,7 +1,6 @@ import { ArgumentMetadata, FileValidator, Injectable, ParseUUIDPipe } from '@nestjs/common'; import { createZodDto } from 'nestjs-zod'; import sanitize from 'sanitize-filename'; -import { IntegrityReportSchema } from 'src/enum'; import { isIP, isIPRange } from 'validator'; import z from 'zod'; @@ -132,10 +131,6 @@ const FilenameParamSchema = z.object({ export class FilenameParamDto extends createZodDto(FilenameParamSchema) {} -const IntegrityReportParamSchema = z.object({ type: IntegrityReportSchema }).meta({ id: 'IntegrityReportDto' }); - -export class IntegrityReportTypeParamDto extends createZodDto(IntegrityReportParamSchema) {} - /** * Unified email validation * Converts email strings to lowercase and validates against HTML5 email regex