diff --git a/lib/types.ts b/lib/types.ts index b5d9ac4663..db806fa3aa 100644 --- a/lib/types.ts +++ b/lib/types.ts @@ -1,4 +1,4 @@ -import { AppStoreLocationType, DefaultLocationType } from "@calcom/app-store/locations"; +import { AppStoreLocationType, DefaultEventLocationType } from "@calcom/app-store/locations"; import { User, Team, @@ -9,7 +9,6 @@ import { Availability, BookingReference, Booking, - DailyEventReference, Webhook, DestinationCalendar, Membership, @@ -93,14 +92,6 @@ export type CredentialsResponse = BaseResponse & { credentials?: Partial[]; }; -// DailyEventReference -export type DailyEventReferenceResponse = BaseResponse & { - daily_event_reference?: Partial; -}; -export type DailyEventReferencesResponse = BaseResponse & { - daily_event_references?: Partial[]; -}; - // DestinationCalendar export type DestinationCalendarResponse = BaseResponse & { destination_calendar?: Partial; @@ -148,9 +139,11 @@ interface EventTypeExtended extends Omit -) { - const safeQuery = schemaQueryIdParseInt.safeParse(query); - const safeBody = schemaDailyEventReferenceEditBodyParams.safeParse(body); - if (!safeQuery.success) { - res.status(400).json({ message: "Your query was invalid" }); - return; - } - const userBookings = await prisma.booking.findMany({ where: { userId } }); - const userBookingIds: number[] = userBookings.map((booking) => booking.id); - const userBookingDailyEventReferences = await prisma.dailyEventReference.findMany({ - where: { bookingId: { in: userBookingIds } }, - }); - const userBookingDailyEventReferenceIds = userBookingDailyEventReferences.map( - (dailyEventReference) => dailyEventReference.id - ); - if (!userBookingDailyEventReferenceIds.includes(safeQuery.data.id)) - res.status(401).json({ message: "Unauthorized" }); - else { - switch (method) { - /** - * @swagger - * /event-references/{id}: - * get: - * summary: Find a event reference - * operationId: getEventReferenceById - * parameters: - * - in: path - * name: id - * schema: - * type: integer - * required: true - * description: ID of the event reference to get - * tags: - * - event-references - * responses: - * 200: - * description: OK - * 401: - * description: Authorization information is missing or invalid. - * 404: - * description: EventReference was not found - */ - case "GET": - await prisma.dailyEventReference - .findUnique({ where: { id: safeQuery.data.id } }) - .then((data) => schemaDailyEventReferenceReadPublic.parse(data)) - .then((daily_event_reference) => res.status(200).json({ daily_event_reference })) - .catch((error: Error) => - res.status(404).json({ - message: `DailyEventReference with id: ${safeQuery.data.id} not found`, - error, - }) - ); - break; - - /** - * @swagger - * /event-references/{id}: - * patch: - * summary: Edit an existing event reference - * operationId: editEventReferenceById - * parameters: - * - in: path - * name: id - * schema: - * type: integer - * required: true - * description: ID of the event reference to edit - * tags: - * - event-references - * responses: - * 201: - * description: OK, EventReference edited successfuly - * 400: - * description: Bad request. EventReference body is invalid. - * 401: - * description: Authorization information is missing or invalid. - */ - case "PATCH": - if (!safeBody.success) { - { - res.status(400).json({ message: "Invalid request body" }); - return; - } - } - await prisma.dailyEventReference - .update({ where: { id: safeQuery.data.id }, data: safeBody.data }) - .then((data) => schemaDailyEventReferenceReadPublic.parse(data)) - .then((daily_event_reference) => res.status(200).json({ daily_event_reference })) - .catch((error: Error) => - res.status(404).json({ - message: `DailyEventReference with id: ${safeQuery.data.id} not found`, - error, - }) - ); - break; - - /** - * @swagger - * /event-references/{id}: - * delete: - * summary: Remove an existing event reference - * operationId: removeEventReferenceById - * parameters: - * - in: path - * name: id - * schema: - * type: integer - * required: true - * description: ID of the event reference to delete - * tags: - * - event-references - * responses: - * 201: - * description: OK, EventReference removed successfuly - * 400: - * description: Bad request. EventReference id is invalid. - * 401: - * description: Authorization information is missing or invalid. - */ - case "DELETE": - await prisma.dailyEventReference - .delete({ - where: { id: safeQuery.data.id }, - }) - .then(() => - res.status(200).json({ - message: `DailyEventReference with id: ${safeQuery.data.id} deleted`, - }) - ) - .catch((error: Error) => - res.status(404).json({ - message: `DailyEventReference with id: ${safeQuery.data.id} not found`, - error, - }) - ); - break; - - default: - res.status(405).json({ message: "Method not allowed" }); - break; - } - } -} - -export default withMiddleware("HTTP_GET_DELETE_PATCH")( - withValidQueryIdTransformParseInt(dailyEventReferenceById) -); diff --git a/pages/api/event-references/index.ts b/pages/api/event-references/index.ts deleted file mode 100644 index 449737cd06..0000000000 --- a/pages/api/event-references/index.ts +++ /dev/null @@ -1,84 +0,0 @@ -import type { NextApiRequest, NextApiResponse } from "next"; - -import { withMiddleware } from "@lib/helpers/withMiddleware"; -import { DailyEventReferenceResponse, DailyEventReferencesResponse } from "@lib/types"; -import { - schemaDailyEventReferenceCreateBodyParams, - schemaDailyEventReferenceReadPublic, -} from "@lib/validations/event-reference"; - -async function createOrlistAllDailyEventReferences( - { method, body, userId, prisma }: NextApiRequest, - res: NextApiResponse -) { - const userBookings = await prisma.booking.findMany({ where: { userId } }); - const userBookingIds = userBookings.map((booking) => booking.id); - - if (method === "GET") { - /** - * @swagger - * /event-references: - * get: - * summary: Find all event reference - * operationId: listEventReferences - * tags: - * - event-references - * responses: - * 200: - * description: OK - * 401: - * description: Authorization information is missing or invalid. - * 404: - * description: No event references were found - */ - const data = await prisma.dailyEventReference.findMany({ - where: { bookingId: { in: userBookingIds } }, - }); - const daily_event_references = data.map((dailyEventReference) => - schemaDailyEventReferenceReadPublic.parse(dailyEventReference) - ); - if (daily_event_references) res.status(200).json({ daily_event_references }); - else - (error: Error) => - res.status(404).json({ - message: "No DailyEventReferences were found", - error, - }); - } else if (method === "POST") { - /** - * @swagger - * /event-references: - * post: - * summary: Creates a new event reference - * operationId: addEventReference - * tags: - * - event-references - * responses: - * 201: - * description: OK, event reference created - * 400: - * description: Bad request. DailyEventReference body is invalid. - * 401: - * description: Authorization information is missing or invalid. - */ - const safe = schemaDailyEventReferenceCreateBodyParams.safeParse(body); - if (!safe.success) { - res.status(400).json({ message: "Invalid request body" }); - return; - } - - const data = await prisma.dailyEventReference.create({ data: safe.data }); - const daily_event_reference = schemaDailyEventReferenceReadPublic.parse(data); - - if (daily_event_reference) - res.status(201).json({ daily_event_reference, message: "DailyEventReference created successfully" }); - else - (error: Error) => - res.status(400).json({ - message: "Could not create new event reference", - error, - }); - } else res.status(405).json({ message: `Method ${method} not allowed` }); -} - -export default withMiddleware("HTTP_GET_OR_POST")(createOrlistAllDailyEventReferences);