From 40fe6f68b2aa24ed3da3e7e3e06e0d91cec5b6c5 Mon Sep 17 00:00:00 2001 From: chidii Date: Fri, 26 Jun 2026 10:50:44 -0700 Subject: [PATCH] fix: add @Type(() => Date) and @IsISO8601 to audit log query DTO - Create AuditLogQueryDto with proper date validation - Prevents 500 errors on malformed date strings - Uses class-transformer @Type(() => Date) Closes #687 --- src/transactions/dto/audit-log-query.dto.ts | 31 +++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/transactions/dto/audit-log-query.dto.ts diff --git a/src/transactions/dto/audit-log-query.dto.ts b/src/transactions/dto/audit-log-query.dto.ts new file mode 100644 index 0000000..0d9403a --- /dev/null +++ b/src/transactions/dto/audit-log-query.dto.ts @@ -0,0 +1,31 @@ +import { Type } from 'class-transformer'; +import { IsISO8601, IsOptional, IsString, IsInt, Min, Max } from 'class-validator'; + +export class AuditLogQueryDto { + @IsOptional() + @IsString() + actorId?: string; + + @IsOptional() + @IsISO8601() + @Type(() => Date) + dateFrom?: Date; + + @IsOptional() + @IsISO8601() + @Type(() => Date) + dateTo?: Date; + + @IsOptional() + @Type(() => Number) + @IsInt() + @Min(1) + page?: number = 1; + + @IsOptional() + @Type(() => Number) + @IsInt() + @Min(1) + @Max(100) + limit?: number = 20; +}