fix: routing form endpoints date filters validation (#20715)
This commit is contained in:
+4
-1
@@ -178,9 +178,12 @@ describe("OrganizationsRoutingFormsResponsesController", () => {
|
||||
});
|
||||
|
||||
it("should get routing form responses", async () => {
|
||||
const createdAt = new Date(routingFormResponse.createdAt);
|
||||
createdAt.setHours(createdAt.getHours() - 1);
|
||||
const isoStringCreatedAt = createdAt.toISOString();
|
||||
return request(app.getHttpServer())
|
||||
.get(
|
||||
`/v2/organizations/${org.id}/routing-forms/${routingForm.id}/responses?skip=0&take=2&sortUpdatedAt=asc&sortCreatedAt=desc`
|
||||
`/v2/organizations/${org.id}/routing-forms/${routingForm.id}/responses?skip=0&take=2&sortUpdatedAt=asc&sortCreatedAt=desc&afterCreatedAt=${isoStringCreatedAt}`
|
||||
)
|
||||
.set({ Authorization: `Bearer cal_test_${apiKeyString}` })
|
||||
.expect(200)
|
||||
|
||||
+5
-22
@@ -1,15 +1,6 @@
|
||||
import { ApiPropertyOptional } from "@nestjs/swagger";
|
||||
import { Transform } from "class-transformer";
|
||||
import {
|
||||
IsOptional,
|
||||
IsString,
|
||||
IsEnum,
|
||||
IsISO8601,
|
||||
IsDate,
|
||||
IsNumber,
|
||||
IsArray,
|
||||
ArrayMinSize,
|
||||
} from "class-validator";
|
||||
import { IsOptional, IsString, IsEnum, IsISO8601, IsNumber, IsArray, ArrayMinSize } from "class-validator";
|
||||
|
||||
enum SortOrder {
|
||||
ASC = "asc",
|
||||
@@ -44,9 +35,7 @@ export class GetRoutingFormResponsesParams {
|
||||
})
|
||||
@IsOptional()
|
||||
@IsISO8601()
|
||||
@Transform(({ value }) => value && new Date(value))
|
||||
@IsDate()
|
||||
afterCreatedAt?: Date;
|
||||
afterCreatedAt?: string;
|
||||
|
||||
@ApiPropertyOptional({
|
||||
type: String,
|
||||
@@ -55,9 +44,7 @@ export class GetRoutingFormResponsesParams {
|
||||
})
|
||||
@IsOptional()
|
||||
@IsISO8601()
|
||||
@Transform(({ value }) => value && new Date(value))
|
||||
@IsDate()
|
||||
beforeCreatedAt?: Date;
|
||||
beforeCreatedAt?: string;
|
||||
|
||||
@ApiPropertyOptional({
|
||||
type: String,
|
||||
@@ -66,9 +53,7 @@ export class GetRoutingFormResponsesParams {
|
||||
})
|
||||
@IsOptional()
|
||||
@IsISO8601()
|
||||
@Transform(({ value }) => value && new Date(value))
|
||||
@IsDate()
|
||||
afterUpdatedAt?: Date;
|
||||
afterUpdatedAt?: string;
|
||||
|
||||
@ApiPropertyOptional({
|
||||
type: String,
|
||||
@@ -77,9 +62,7 @@ export class GetRoutingFormResponsesParams {
|
||||
})
|
||||
@IsOptional()
|
||||
@IsISO8601()
|
||||
@Transform(({ value }) => value && new Date(value))
|
||||
@IsDate()
|
||||
beforeUpdatedAt?: Date;
|
||||
beforeUpdatedAt?: string;
|
||||
|
||||
@ApiPropertyOptional({ type: String, description: "Filter by responses routed to a specific booking" })
|
||||
@IsOptional()
|
||||
|
||||
+8
-8
@@ -15,10 +15,10 @@ export class OrganizationsRoutingFormsRepository {
|
||||
name?: string;
|
||||
sortCreatedAt?: "asc" | "desc";
|
||||
sortUpdatedAt?: "asc" | "desc";
|
||||
afterCreatedAt?: Date;
|
||||
beforeCreatedAt?: Date;
|
||||
afterUpdatedAt?: Date;
|
||||
beforeUpdatedAt?: Date;
|
||||
afterCreatedAt?: string;
|
||||
beforeCreatedAt?: string;
|
||||
afterUpdatedAt?: string;
|
||||
beforeUpdatedAt?: string;
|
||||
teamIds?: number[];
|
||||
}
|
||||
) {
|
||||
@@ -61,10 +61,10 @@ export class OrganizationsRoutingFormsRepository {
|
||||
options?: {
|
||||
sortCreatedAt?: "asc" | "desc";
|
||||
sortUpdatedAt?: "asc" | "desc";
|
||||
afterCreatedAt?: Date;
|
||||
beforeCreatedAt?: Date;
|
||||
afterUpdatedAt?: Date;
|
||||
beforeUpdatedAt?: Date;
|
||||
afterCreatedAt?: string;
|
||||
beforeCreatedAt?: string;
|
||||
afterUpdatedAt?: string;
|
||||
beforeUpdatedAt?: string;
|
||||
routedToBookingUid?: string;
|
||||
}
|
||||
) {
|
||||
|
||||
+4
-4
@@ -17,10 +17,10 @@ export class OrganizationsRoutingFormsResponsesService {
|
||||
options?: {
|
||||
sortCreatedAt?: "asc" | "desc";
|
||||
sortUpdatedAt?: "asc" | "desc";
|
||||
afterCreatedAt?: Date;
|
||||
beforeCreatedAt?: Date;
|
||||
afterUpdatedAt?: Date;
|
||||
beforeUpdatedAt?: Date;
|
||||
afterCreatedAt?: string;
|
||||
beforeCreatedAt?: string;
|
||||
afterUpdatedAt?: string;
|
||||
beforeUpdatedAt?: string;
|
||||
routedToBookingUid?: string;
|
||||
}
|
||||
) {
|
||||
|
||||
+4
-4
@@ -14,10 +14,10 @@ export class OrganizationsRoutingFormsService {
|
||||
name?: string;
|
||||
sortCreatedAt?: "asc" | "desc";
|
||||
sortUpdatedAt?: "asc" | "desc";
|
||||
afterCreatedAt?: Date;
|
||||
beforeCreatedAt?: Date;
|
||||
afterUpdatedAt?: Date;
|
||||
beforeUpdatedAt?: Date;
|
||||
afterCreatedAt?: string;
|
||||
beforeCreatedAt?: string;
|
||||
afterUpdatedAt?: string;
|
||||
beforeUpdatedAt?: string;
|
||||
teamIds?: number[];
|
||||
}
|
||||
) {
|
||||
|
||||
-1
@@ -5,7 +5,6 @@ import { OrganizationsRoutingFormsResponsesService } from "@/modules/organizatio
|
||||
import { OrganizationsTeamsRepository } from "@/modules/organizations/teams/index/organizations-teams.repository";
|
||||
import { PrismaModule } from "@/modules/prisma/prisma.module";
|
||||
import { RedisModule } from "@/modules/redis/redis.module";
|
||||
import { RedisService } from "@/modules/redis/redis.service";
|
||||
import { RoutingFormsModule } from "@/modules/routing-forms/routing-forms.module";
|
||||
import { StripeModule } from "@/modules/stripe/stripe.module";
|
||||
import { Module } from "@nestjs/common";
|
||||
|
||||
+2
-2
@@ -13,8 +13,8 @@ export class OrganizationsTeamsRoutingFormsResponsesRepository {
|
||||
take: number,
|
||||
options?: {
|
||||
sortCreatedAt?: "asc" | "desc";
|
||||
afterCreatedAt?: Date;
|
||||
beforeCreatedAt?: Date;
|
||||
afterCreatedAt?: string;
|
||||
beforeCreatedAt?: string;
|
||||
routedToBookingUid?: string;
|
||||
}
|
||||
) {
|
||||
|
||||
+4
-4
@@ -15,10 +15,10 @@ export class OrganizationsTeamsRoutingFormsRepository {
|
||||
name?: string;
|
||||
sortCreatedAt?: "asc" | "desc";
|
||||
sortUpdatedAt?: "asc" | "desc";
|
||||
afterCreatedAt?: Date;
|
||||
beforeCreatedAt?: Date;
|
||||
afterUpdatedAt?: Date;
|
||||
beforeUpdatedAt?: Date;
|
||||
afterCreatedAt?: string;
|
||||
beforeCreatedAt?: string;
|
||||
afterUpdatedAt?: string;
|
||||
beforeUpdatedAt?: string;
|
||||
}
|
||||
) {
|
||||
const {
|
||||
|
||||
+4
-4
@@ -18,10 +18,10 @@ export class OrganizationsTeamsRoutingFormsResponsesService {
|
||||
options?: {
|
||||
sortCreatedAt?: "asc" | "desc";
|
||||
sortUpdatedAt?: "asc" | "desc";
|
||||
afterCreatedAt?: Date;
|
||||
beforeCreatedAt?: Date;
|
||||
afterUpdatedAt?: Date;
|
||||
beforeUpdatedAt?: Date;
|
||||
afterCreatedAt?: string;
|
||||
beforeCreatedAt?: string;
|
||||
afterUpdatedAt?: string;
|
||||
beforeUpdatedAt?: string;
|
||||
routedToBookingUid?: string;
|
||||
}
|
||||
) {
|
||||
|
||||
+4
-4
@@ -15,10 +15,10 @@ export class OrganizationsTeamsRoutingFormsService {
|
||||
name?: string;
|
||||
sortCreatedAt?: "asc" | "desc";
|
||||
sortUpdatedAt?: "asc" | "desc";
|
||||
afterCreatedAt?: Date;
|
||||
beforeCreatedAt?: Date;
|
||||
afterUpdatedAt?: Date;
|
||||
beforeUpdatedAt?: Date;
|
||||
afterCreatedAt?: string;
|
||||
beforeCreatedAt?: string;
|
||||
afterUpdatedAt?: string;
|
||||
beforeUpdatedAt?: string;
|
||||
}
|
||||
) {
|
||||
return this.routingFormsRepository.getTeamRoutingForms(teamId, skip, take, options);
|
||||
|
||||
Reference in New Issue
Block a user