fix: build issues, extend event-type in types, use @calcom/types

pull/9078/head
Agusti Fernandez Pardo 2022-05-19 22:00:22 +02:00
parent 7d8ed47268
commit fdc46fac7d
5 changed files with 38 additions and 20 deletions

View File

@ -1,16 +1,8 @@
import type { IncomingMessage } from "http";
import { NextMiddleware } from "next-api-middleware";
import { hashAPIKey } from "@calcom/ee/lib/api/apiKeys";
import prisma from "@calcom/prisma";
/** @todo figure how to use the one from `@calcom/types`fi */
declare module "next" {
export interface NextApiRequest extends IncomingMessage {
userId: number;
}
}
// Used to check if the apiKey is not expired, could be extracted if reused. but not for now.
export const dateNotInPast = function (date: Date) {
const now = new Date();

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,8 +19,9 @@
},
"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"
},