Merge pull request #84 from calcom/fix-build

fix: build issues, extend event-type in types, use @calcom/types
pull/9078/head
Agusti Fernandez Pardo 2022-05-19 22:08:34 +02:00 committed by GitHub
commit 2e8f42c5d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 42 additions and 12 deletions

View File

@ -5,9 +5,13 @@ import { hashAPIKey } from "@calcom/ee/lib/api/apiKeys";
import prisma from "@calcom/prisma";
/** @todo figure how to use the one from `@calcom/types`fi */
/** @todo: remove once `@calcom/types` is updated with it.*/
declare module "next" {
export interface NextApiRequest extends IncomingMessage {
userId: number;
query: {
apiKey: string;
};
}
}

View File

@ -1,3 +1,4 @@
import { AppStoreLocationType, DefaultLocationType } from "@calcom/app-store/locations";
import {
User,
Team,
@ -15,10 +16,9 @@ import {
Payment,
Schedule,
ReminderMail,
EventType,
} from "@calcom/prisma/client";
import { schemaEventTypeReadPublic } from "@lib/validations/event-type";
// Base response, used for all responses
export type BaseResponse = {
message?: string;
@ -124,13 +124,38 @@ export type EventTypeCustomInputResponse = BaseResponse & {
export type EventTypeCustomInputsResponse = BaseResponse & {
event_type_custom_inputs?: Partial<EventTypeCustomInput>[];
};
// From rrule https://jakubroztocil.github.io/rrule freq
enum Frequency {
"YEARLY",
"MONTHLY",
"WEEKLY",
"DAILY",
"HOURLY",
"MINUTELY",
"SECONDLY",
}
interface EventTypeExtended extends Omit<EventType, "recurringEvent" | "locations"> {
recurringEvent: {
dtstart?: Date | undefined;
interval?: number | undefined;
count?: number | undefined;
freq?: Frequency | undefined;
until?: Date | undefined;
tzid?: string | undefined;
};
locations: {
link?: string | undefined;
address?: string | undefined;
hostPhoneNumber?: string | undefined;
type: DefaultLocationType | AppStoreLocationType;
}[];
}
// EventType
export type EventTypeResponse = BaseResponse & {
event_type?: Partial<typeof schemaEventTypeReadPublic>;
event_type?: Partial<EventTypeExtended>;
};
export type EventTypesResponse = BaseResponse & {
event_types?: Partial<typeof schemaEventTypeReadPublic>[];
event_types?: Partial<EventTypeExtended>[];
};
// Payment

View File

@ -38,9 +38,9 @@ const schemaEventTypeCreateParams = z
slug: z.string(),
description: z.string().optional().nullable(),
length: z.number().int(),
locations: jsonSchema.optional().nullable().or(z.null()),
metadata: z.any().optional().nullable().or(z.null()),
recurringEvent: jsonSchema.optional().nullable().or(z.null()),
locations: jsonSchema.optional(),
metadata: z.any().optional(),
recurringEvent: jsonSchema.optional(),
})
.strict();

View File

@ -5,5 +5,5 @@ type Literal = boolean | number | string;
type Json = Literal | { [key: string]: Json } | Json[];
const literalSchema = z.union([z.string(), z.number(), z.boolean()]);
export const jsonSchema: z.ZodSchema<Json> = z.lazy(() =>
z.union([literalSchema, z.array(jsonSchema), z.record(jsonSchema)]).or(z.null())
z.union([literalSchema, z.array(jsonSchema), z.record(jsonSchema)])
);

View File

@ -19,11 +19,12 @@
},
"devDependencies": {
"@calcom/tsconfig": "*",
"@typescript-eslint/eslint-plugin": "^5.22.0",
"babel-jest": "^28.0.3",
"@calcom/types": "*",
"@typescript-eslint/eslint-plugin": "^5.25.0",
"babel-jest": "^28.1.0",
"jest": "^28.0.3",
"node-mocks-http": "^1.11.0"
},
},
"dependencies": {
"@calcom/prisma": "*",
"@sentry/nextjs": "^6.19.7",