Skip to content

Commit 0fef06d

Browse files
authoredApr 2, 2022
Merge pull request #17 from calcom/fix/update-validations-new-format
2 parents 837247f + e8b9ec7 commit 0fef06d

16 files changed

+90
-42
lines changed
 

‎.github/workflows/type-check.yml

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
name: Check types
32
on:
43
pull_request:
@@ -24,4 +23,4 @@ jobs:
2423
with:
2524
node-version: ${{ matrix.node }}
2625
- run: yarn
27-
- run: yarn type-check
26+
- run: yarn type-check

‎.prettierignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
.next/
22
coverage/
3-
node_modules/
3+
node_modules/
4+
tests/

‎lib/validations/api-key.ts

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { withValidation } from "next-validations";
2+
import { z } from "zod";
3+
4+
import { _ApiKeyModel as ApiKey } from "@calcom/prisma/zod";
5+
6+
export const schemaApiKeyBaseBodyParams = ApiKey.omit({ id: true, userId: true, createdAt: true }).partial();
7+
8+
const schemaApiKeyRequiredParams = z.object({
9+
email: z.string().email(),
10+
});
11+
12+
export const schemaApiKeyBodyParams = schemaApiKeyBaseBodyParams.merge(schemaApiKeyRequiredParams);
13+
14+
export const schemaApiKeyPublic = ApiKey.omit({
15+
id: true,
16+
userId: true,
17+
});
18+
19+
export const withValidApiKey = withValidation({
20+
schema: schemaApiKeyBodyParams,
21+
type: "Zod",
22+
mode: "body",
23+
});

‎lib/validations/apiKey.ts

-16
This file was deleted.

‎lib/validations/daily-event-reference.ts

+10-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,17 @@
11
import { withValidation } from "next-validations";
2+
import { z } from "zod";
23

34
import { _DailyEventReferenceModel as DailyEventReference } from "@calcom/prisma/zod";
45

5-
export const schemaDailyEventReferenceBodyParams = DailyEventReference.omit({ id: true });
6+
export const schemaDailyEventReferenceBaseBodyParams = DailyEventReference.omit({ id: true });
7+
8+
const schemaDailyEventReferenceRequiredParams = z.object({
9+
email: z.string().email(),
10+
});
11+
12+
export const schemaDailyEventReferenceBodyParams = schemaDailyEventReferenceBaseBodyParams.merge(
13+
schemaDailyEventReferenceRequiredParams
14+
);
615

716
export const schemaDailyEventReferencePublic = DailyEventReference.omit({});
817

‎lib/validations/destination-calendar.ts

+11-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,18 @@
11
import { withValidation } from "next-validations";
2+
import { z } from "zod";
23

34
import { _DestinationCalendarModel as DestinationCalendar } from "@calcom/prisma/zod";
45

5-
export const schemaDestinationCalendarBodyParams = DestinationCalendar.omit({ id: true });
6+
export const schemaDestinationCalendarBaseBodyParams = DestinationCalendar.omit({ id: true }).partial();
7+
8+
const schemaDestinationCalendarRequiredParams = z.object({
9+
integration: z.string(),
10+
externalId: z.string(),
11+
});
12+
13+
export const schemaDestinationCalendarBodyParams = schemaDestinationCalendarBaseBodyParams.merge(
14+
schemaDestinationCalendarRequiredParams
15+
);
616

717
export const schemaDestinationCalendarPublic = DestinationCalendar.omit({});
818

‎lib/validations/event-type.ts

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { withValidation } from "next-validations";
2+
import { z } from "zod";
3+
4+
import { _EventTypeModel as EventType } from "@calcom/prisma/zod";
5+
6+
export const schemaEventTypeBaseBodyParams = EventType.omit({ id: true }).partial();
7+
8+
const schemaEventTypeRequiredParams = z.object({
9+
title: z.string(),
10+
slug: z.string(),
11+
length: z.number(),
12+
});
13+
14+
export const schemaEventTypeBodyParams = schemaEventTypeBaseBodyParams.merge(schemaEventTypeRequiredParams);
15+
16+
export const schemaEventTypePublic = EventType.omit({});
17+
18+
export const withValidEventType = withValidation({
19+
schema: schemaEventTypeBodyParams,
20+
type: "Zod",
21+
mode: "body",
22+
});

‎lib/validations/eventType.ts

-13
This file was deleted.

‎lib/validations/membership.ts

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
11
import { withValidation } from "next-validations";
2+
import { z } from "zod";
23

34
import { _MembershipModel as Membership } from "@calcom/prisma/zod";
45

5-
export const schemaMembershipBodyParams = Membership.omit({});
6+
export const schemaMembershipBaseBodyParams = Membership.omit({});
7+
const schemaMembershipRequiredParams = z.object({
8+
teamId: z.number(),
9+
});
10+
11+
export const schemaMembershipBodyParams = schemaMembershipBaseBodyParams.merge(
12+
schemaMembershipRequiredParams
13+
);
614

715
export const schemaMembershipPublic = Membership.omit({});
816

‎lib/validations/team.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
import { withValidation } from "next-validations";
2+
import { z } from "zod";
23

34
import { _TeamModel as Team } from "@calcom/prisma/zod";
45

5-
export const schemaTeamBodyParams = Team.omit({ id: true }).partial();
6+
export const schemaTeamBaseBodyParams = Team.omit({ id: true }).partial();
7+
8+
const schemaTeamRequiredParams = z.object({});
9+
10+
export const schemaTeamBodyParams = schemaTeamBaseBodyParams.merge(schemaTeamRequiredParams);
611

712
export const schemaTeamPublic = Team.omit({});
813

‎pages/api/api-keys/[id]/edit.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import prisma from "@calcom/prisma";
44
import { ApiKey } from "@calcom/prisma/client";
55

66
import { withMiddleware } from "@lib/helpers/withMiddleware";
7-
import { schemaApiKeyBodyParams, withValidApiKey } from "@lib/validations/apiKey";
7+
import { schemaApiKeyBodyParams, withValidApiKey } from "@lib/validations/api-key";
88
import { schemaQueryIdAsString, withValidQueryIdString } from "@lib/validations/shared/queryIdString";
99

1010
type ResponseData = {

‎pages/api/api-keys/new.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import prisma from "@calcom/prisma";
44
import { ApiKey } from "@calcom/prisma/client";
55

66
import { withMiddleware } from "@lib/helpers/withMiddleware";
7-
import { schemaApiKeyBodyParams, withValidApiKey } from "@lib/validations/apiKey";
7+
import { schemaApiKeyBodyParams, withValidApiKey } from "@lib/validations/api-key";
88

99
type ResponseData = {
1010
data?: ApiKey;

‎pages/api/event-types/[id]/edit.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
schemaEventTypeBodyParams,
99
schemaEventTypePublic,
1010
withValidEventType,
11-
} from "@lib/validations/eventType";
11+
} from "@lib/validations/event-type";
1212
import {
1313
schemaQueryIdParseInt,
1414
withValidQueryIdTransformParseInt,

‎pages/api/event-types/[id]/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import prisma from "@calcom/prisma";
44

55
import { withMiddleware } from "@lib/helpers/withMiddleware";
66
import type { EventTypeResponse } from "@lib/types";
7-
import { schemaEventTypePublic } from "@lib/validations/eventType";
7+
import { schemaEventTypePublic } from "@lib/validations/event-type";
88
import {
99
schemaQueryIdParseInt,
1010
withValidQueryIdTransformParseInt,

‎pages/api/event-types/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import prisma from "@calcom/prisma";
44

55
import { withMiddleware } from "@lib/helpers/withMiddleware";
66
import { EventTypesResponse } from "@lib/types";
7-
import { schemaEventTypePublic } from "@lib/validations/eventType";
7+
import { schemaEventTypePublic } from "@lib/validations/event-type";
88

99
/**
1010
* @swagger

‎pages/api/event-types/new.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
schemaEventTypeBodyParams,
99
schemaEventTypePublic,
1010
withValidEventType,
11-
} from "@lib/validations/eventType";
11+
} from "@lib/validations/event-type";
1212

1313
/**
1414
* @swagger

0 commit comments

Comments
 (0)
Please sign in to comment.