From 61819772bc94375f4b12b9d47545a321696b391d Mon Sep 17 00:00:00 2001 From: Agusti Fernandez Pardo Date: Sun, 3 Apr 2022 17:47:18 +0200 Subject: [PATCH] fix all swagger docs, dont build templates --- json-schema/json-schema.json | 1262 +++++++++++++++++ package.json | 4 +- pages/api/attendees/[id]/delete.ts | 2 +- pages/api/attendees/[id]/edit.ts | 2 +- pages/api/attendees/[id]/index.ts | 4 +- pages/api/attendees/new.ts | 7 - pages/api/availabilities/[id]/delete.ts | 2 +- pages/api/availabilities/[id]/edit.ts | 2 +- pages/api/availabilities/[id]/index.ts | 4 +- pages/api/availabilities/new.ts | 11 +- pages/api/booking-references/[id]/delete.ts | 4 +- pages/api/booking-references/[id]/edit.ts | 4 +- pages/api/booking-references/[id]/index.ts | 6 +- pages/api/booking-references/index.ts | 2 +- pages/api/booking-references/new.ts | 13 +- pages/api/bookings/[id]/delete.ts | 2 +- pages/api/bookings/[id]/edit.ts | 2 +- pages/api/bookings/[id]/index.ts | 4 +- pages/api/bookings/new.ts | 14 +- pages/api/credentials/[id]/delete.ts | 2 +- pages/api/credentials/[id]/edit.ts | 2 +- pages/api/credentials/[id]/index.ts | 4 +- pages/api/credentials/new.ts | 10 +- .../api/daily-event-references/[id]/delete.ts | 4 +- pages/api/daily-event-references/[id]/edit.ts | 4 +- .../api/daily-event-references/[id]/index.ts | 6 +- pages/api/daily-event-references/index.ts | 2 +- pages/api/daily-event-references/new.ts | 12 +- .../api/destination-calendars/[id]/delete.ts | 4 +- pages/api/destination-calendars/[id]/edit.ts | 4 +- pages/api/destination-calendars/[id]/index.ts | 6 +- pages/api/destination-calendars/index.ts | 2 +- pages/api/destination-calendars/new.ts | 12 +- pages/api/docs.ts | 6 +- .../event-type-custom-inputs/[id]/delete.ts | 4 +- .../api/event-type-custom-inputs/[id]/edit.ts | 4 +- .../event-type-custom-inputs/[id]/index.ts | 6 +- pages/api/event-type-custom-inputs/index.ts | 2 +- pages/api/event-type-custom-inputs/new.ts | 12 +- pages/api/event-types/[id]/delete.ts | 6 +- pages/api/event-types/[id]/edit.ts | 6 +- pages/api/event-types/[id]/index.ts | 6 +- pages/api/event-types/index.ts | 2 + pages/api/event-types/new.ts | 4 +- pages/api/memberships/[id]/delete.ts | 9 +- pages/api/memberships/[id]/index.ts | 2 +- pages/api/payments/[id]/delete.ts | 2 +- pages/api/payments/[id]/edit.ts | 2 +- pages/api/payments/[id]/index.ts | 4 +- pages/api/payments/new.ts | 10 +- pages/api/reminder-mails/[id]/delete.ts | 6 +- pages/api/reminder-mails/[id]/edit.ts | 6 +- pages/api/reminder-mails/[id]/index.ts | 6 +- pages/api/reminder-mails/index.ts | 4 +- pages/api/reminder-mails/new.ts | 14 +- pages/api/schedules/[id]/delete.ts | 2 +- pages/api/schedules/[id]/edit.ts | 2 +- pages/api/schedules/[id]/index.ts | 2 +- pages/api/selected-calendars/[id]/delete.ts | 21 +- pages/api/selected-calendars/[id]/edit.ts | 2 +- pages/api/selected-calendars/[id]/index.ts | 4 +- pages/api/selected-calendars/index.ts | 4 +- pages/api/selected-calendars/new.ts | 4 +- pages/api/teams/[id]/delete.ts | 9 +- pages/api/teams/[id]/edit.ts | 16 +- pages/api/teams/[id]/index.ts | 2 +- pages/api/users/[id]/delete.ts | 2 +- pages/api/users/[id]/edit.ts | 11 +- pages/api/users/[id]/index.ts | 16 +- pages/api/users/new.ts | 19 +- templates/zod-validation.ts | 34 +- tsconfig.json | 4 +- 72 files changed, 1501 insertions(+), 201 deletions(-) create mode 100644 json-schema/json-schema.json diff --git a/json-schema/json-schema.json b/json-schema/json-schema.json new file mode 100644 index 0000000000..220dbd101d --- /dev/null +++ b/json-schema/json-schema.json @@ -0,0 +1,1262 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "definitions": { + "EventType": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "title": { + "type": "string", + "description": "@zod.nonempty()" + }, + "slug": { + "type": "string", + "description": "@zod.custom(imports.eventTypeSlug)" + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "position": { + "type": "integer", + "default": 0 + }, + "locations": { + "type": [ + "number", + "string", + "boolean", + "object", + "array", + "null" + ], + "description": "@zod.custom(imports.eventTypeLocations)" + }, + "length": { + "type": "integer" + }, + "hidden": { + "type": "boolean", + "default": false + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/User" + } + }, + "userId": { + "type": [ + "integer", + "null" + ] + }, + "team": { + "anyOf": [ + { + "$ref": "#/definitions/Team" + }, + { + "type": "null" + } + ] + }, + "bookings": { + "type": "array", + "items": { + "$ref": "#/definitions/Booking" + } + }, + "availability": { + "type": "array", + "items": { + "$ref": "#/definitions/Availability" + } + }, + "webhooks": { + "type": "array", + "items": { + "$ref": "#/definitions/Webhook" + } + }, + "destinationCalendar": { + "anyOf": [ + { + "$ref": "#/definitions/DestinationCalendar" + }, + { + "type": "null" + } + ] + }, + "eventName": { + "type": [ + "string", + "null" + ] + }, + "customInputs": { + "type": "array", + "items": { + "$ref": "#/definitions/EventTypeCustomInput" + } + }, + "timeZone": { + "type": [ + "string", + "null" + ] + }, + "periodType": { + "type": "string", + "default": "UNLIMITED", + "enum": [ + "UNLIMITED", + "ROLLING", + "RANGE" + ] + }, + "periodStartDate": { + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "periodEndDate": { + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "periodDays": { + "type": [ + "integer", + "null" + ] + }, + "periodCountCalendarDays": { + "type": [ + "boolean", + "null" + ] + }, + "requiresConfirmation": { + "type": "boolean", + "default": false + }, + "disableGuests": { + "type": "boolean", + "default": false + }, + "minimumBookingNotice": { + "type": "integer", + "default": 120 + }, + "beforeEventBuffer": { + "type": "integer", + "default": 0 + }, + "afterEventBuffer": { + "type": "integer", + "default": 0 + }, + "schedulingType": { + "type": [ + "string", + "null" + ], + "enum": [ + "ROUND_ROBIN", + "COLLECTIVE" + ] + }, + "schedule": { + "anyOf": [ + { + "$ref": "#/definitions/Schedule" + }, + { + "type": "null" + } + ] + }, + "price": { + "type": "integer", + "default": 0 + }, + "currency": { + "type": "string", + "default": "usd" + }, + "slotInterval": { + "type": [ + "integer", + "null" + ] + }, + "metadata": { + "type": [ + "number", + "string", + "boolean", + "object", + "array", + "null" + ] + } + } + }, + "Credential": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "type": { + "type": "string" + }, + "key": { + "type": [ + "number", + "string", + "boolean", + "object", + "array", + "null" + ] + }, + "user": { + "anyOf": [ + { + "$ref": "#/definitions/User" + }, + { + "type": "null" + } + ] + } + } + }, + "DestinationCalendar": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "integration": { + "type": "string" + }, + "externalId": { + "type": "string" + }, + "user": { + "anyOf": [ + { + "$ref": "#/definitions/User" + }, + { + "type": "null" + } + ] + }, + "booking": { + "anyOf": [ + { + "$ref": "#/definitions/Booking" + }, + { + "type": "null" + } + ] + }, + "eventType": { + "anyOf": [ + { + "$ref": "#/definitions/EventType" + }, + { + "type": "null" + } + ] + } + } + }, + "User": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "username": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "email": { + "type": "string", + "description": "@zod.email()" + }, + "emailVerified": { + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "password": { + "type": [ + "string", + "null" + ] + }, + "bio": { + "type": [ + "string", + "null" + ] + }, + "avatar": { + "type": [ + "string", + "null" + ] + }, + "timeZone": { + "type": "string", + "default": "Europe/London" + }, + "weekStart": { + "type": "string", + "default": "Sunday" + }, + "startTime": { + "type": "integer", + "default": 0 + }, + "endTime": { + "type": "integer", + "default": 1440 + }, + "bufferTime": { + "type": "integer", + "default": 0 + }, + "hideBranding": { + "type": "boolean", + "default": false + }, + "theme": { + "type": [ + "string", + "null" + ] + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "trialEndsAt": { + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "eventTypes": { + "type": "array", + "items": { + "$ref": "#/definitions/EventType" + } + }, + "credentials": { + "type": "array", + "items": { + "$ref": "#/definitions/Credential" + } + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/definitions/Membership" + } + }, + "bookings": { + "type": "array", + "items": { + "$ref": "#/definitions/Booking" + } + }, + "schedules": { + "type": "array", + "items": { + "$ref": "#/definitions/Schedule" + } + }, + "defaultScheduleId": { + "type": [ + "integer", + "null" + ] + }, + "selectedCalendars": { + "type": "array", + "items": { + "$ref": "#/definitions/SelectedCalendar" + } + }, + "completedOnboarding": { + "type": "boolean", + "default": false + }, + "locale": { + "type": [ + "string", + "null" + ] + }, + "timeFormat": { + "type": [ + "integer", + "null" + ], + "default": 12 + }, + "twoFactorSecret": { + "type": [ + "string", + "null" + ] + }, + "twoFactorEnabled": { + "type": "boolean", + "default": false + }, + "identityProvider": { + "type": "string", + "default": "CAL", + "enum": [ + "CAL", + "GOOGLE", + "SAML" + ] + }, + "identityProviderId": { + "type": [ + "string", + "null" + ] + }, + "availability": { + "type": "array", + "items": { + "$ref": "#/definitions/Availability" + } + }, + "invitedTo": { + "type": [ + "integer", + "null" + ] + }, + "plan": { + "type": "string", + "default": "TRIAL", + "enum": [ + "FREE", + "TRIAL", + "PRO" + ] + }, + "webhooks": { + "type": "array", + "items": { + "$ref": "#/definitions/Webhook" + } + }, + "brandColor": { + "type": "string", + "default": "#292929" + }, + "darkBrandColor": { + "type": "string", + "default": "#fafafa" + }, + "destinationCalendar": { + "anyOf": [ + { + "$ref": "#/definitions/DestinationCalendar" + }, + { + "type": "null" + } + ] + }, + "away": { + "type": "boolean", + "default": false + }, + "metadata": { + "type": [ + "number", + "string", + "boolean", + "object", + "array", + "null" + ] + }, + "verified": { + "type": [ + "boolean", + "null" + ], + "default": false + }, + "apiKeys": { + "type": "array", + "items": { + "$ref": "#/definitions/ApiKey" + } + } + } + }, + "Team": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "slug": { + "type": [ + "string", + "null" + ] + }, + "logo": { + "type": [ + "string", + "null" + ] + }, + "bio": { + "type": [ + "string", + "null" + ] + }, + "hideBranding": { + "type": "boolean", + "default": false + }, + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/Membership" + } + }, + "eventTypes": { + "type": "array", + "items": { + "$ref": "#/definitions/EventType" + } + } + } + }, + "Membership": { + "type": "object", + "properties": { + "accepted": { + "type": "boolean", + "default": false + }, + "role": { + "type": "string", + "enum": [ + "MEMBER", + "ADMIN", + "OWNER" + ] + }, + "team": { + "$ref": "#/definitions/Team" + }, + "user": { + "$ref": "#/definitions/User" + } + } + }, + "VerificationRequest": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "identifier": { + "type": "string" + }, + "token": { + "type": "string" + }, + "expires": { + "type": "string", + "format": "date-time" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + }, + "BookingReference": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "type": { + "type": "string" + }, + "uid": { + "type": "string" + }, + "meetingId": { + "type": [ + "string", + "null" + ] + }, + "meetingPassword": { + "type": [ + "string", + "null" + ] + }, + "meetingUrl": { + "type": [ + "string", + "null" + ] + }, + "booking": { + "anyOf": [ + { + "$ref": "#/definitions/Booking" + }, + { + "type": "null" + } + ] + } + } + }, + "Attendee": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "email": { + "type": "string" + }, + "name": { + "type": "string" + }, + "timeZone": { + "type": "string" + }, + "locale": { + "type": [ + "string", + "null" + ], + "default": "en" + }, + "booking": { + "anyOf": [ + { + "$ref": "#/definitions/Booking" + }, + { + "type": "null" + } + ] + } + } + }, + "DailyEventReference": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "dailyurl": { + "type": "string", + "default": "dailycallurl" + }, + "dailytoken": { + "type": "string", + "default": "dailytoken" + }, + "booking": { + "anyOf": [ + { + "$ref": "#/definitions/Booking" + }, + { + "type": "null" + } + ] + } + } + }, + "Booking": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "uid": { + "type": "string" + }, + "user": { + "anyOf": [ + { + "$ref": "#/definitions/User" + }, + { + "type": "null" + } + ] + }, + "references": { + "type": "array", + "items": { + "$ref": "#/definitions/BookingReference" + } + }, + "eventType": { + "anyOf": [ + { + "$ref": "#/definitions/EventType" + }, + { + "type": "null" + } + ] + }, + "title": { + "type": "string" + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "startTime": { + "type": "string", + "format": "date-time" + }, + "endTime": { + "type": "string", + "format": "date-time" + }, + "attendees": { + "type": "array", + "items": { + "$ref": "#/definitions/Attendee" + } + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "dailyRef": { + "anyOf": [ + { + "$ref": "#/definitions/DailyEventReference" + }, + { + "type": "null" + } + ] + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "confirmed": { + "type": "boolean", + "default": true + }, + "rejected": { + "type": "boolean", + "default": false + }, + "status": { + "type": "string", + "default": "ACCEPTED", + "enum": [ + "CANCELLED", + "ACCEPTED", + "REJECTED", + "PENDING" + ] + }, + "paid": { + "type": "boolean", + "default": false + }, + "payment": { + "type": "array", + "items": { + "$ref": "#/definitions/Payment" + } + }, + "destinationCalendar": { + "anyOf": [ + { + "$ref": "#/definitions/DestinationCalendar" + }, + { + "type": "null" + } + ] + }, + "cancellationReason": { + "type": [ + "string", + "null" + ] + }, + "rejectionReason": { + "type": [ + "string", + "null" + ] + } + } + }, + "Schedule": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "user": { + "$ref": "#/definitions/User" + }, + "eventType": { + "anyOf": [ + { + "$ref": "#/definitions/EventType" + }, + { + "type": "null" + } + ] + }, + "name": { + "type": "string" + }, + "timeZone": { + "type": [ + "string", + "null" + ] + }, + "availability": { + "type": "array", + "items": { + "$ref": "#/definitions/Availability" + } + } + } + }, + "Availability": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "user": { + "anyOf": [ + { + "$ref": "#/definitions/User" + }, + { + "type": "null" + } + ] + }, + "eventType": { + "anyOf": [ + { + "$ref": "#/definitions/EventType" + }, + { + "type": "null" + } + ] + }, + "days": { + "type": "array", + "items": { + "type": "integer" + } + }, + "startTime": { + "type": "string", + "format": "date-time" + }, + "endTime": { + "type": "string", + "format": "date-time" + }, + "date": { + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "Schedule": { + "anyOf": [ + { + "$ref": "#/definitions/Schedule" + }, + { + "type": "null" + } + ] + } + } + }, + "SelectedCalendar": { + "type": "object", + "properties": { + "user": { + "$ref": "#/definitions/User" + }, + "integration": { + "type": "string" + }, + "externalId": { + "type": "string" + } + } + }, + "EventTypeCustomInput": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "eventType": { + "$ref": "#/definitions/EventType" + }, + "label": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "TEXT", + "TEXTLONG", + "NUMBER", + "BOOL" + ] + }, + "required": { + "type": "boolean" + }, + "placeholder": { + "type": "string", + "default": "" + } + } + }, + "ResetPasswordRequest": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string" + }, + "expires": { + "type": "string", + "format": "date-time" + } + } + }, + "ReminderMail": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "referenceId": { + "type": "integer" + }, + "reminderType": { + "type": "string", + "enum": [ + "PENDING_BOOKING_CONFIRMATION" + ] + }, + "elapsedMinutes": { + "type": "integer" + }, + "createdAt": { + "type": "string", + "format": "date-time" + } + } + }, + "Payment": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "uid": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "STRIPE" + ] + }, + "booking": { + "anyOf": [ + { + "$ref": "#/definitions/Booking" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "integer" + }, + "fee": { + "type": "integer" + }, + "currency": { + "type": "string" + }, + "success": { + "type": "boolean" + }, + "refunded": { + "type": "boolean" + }, + "data": { + "type": [ + "number", + "string", + "boolean", + "object", + "array", + "null" + ] + }, + "externalId": { + "type": "string" + } + } + }, + "Webhook": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "subscriberUrl": { + "type": "string" + }, + "payloadTemplate": { + "type": [ + "string", + "null" + ] + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "active": { + "type": "boolean", + "default": true + }, + "eventTriggers": { + "type": "array", + "enum": [ + "BOOKING_CREATED", + "BOOKING_RESCHEDULED", + "BOOKING_CANCELLED" + ] + }, + "user": { + "anyOf": [ + { + "$ref": "#/definitions/User" + }, + { + "type": "null" + } + ] + }, + "eventType": { + "anyOf": [ + { + "$ref": "#/definitions/EventType" + }, + { + "type": "null" + } + ] + } + } + }, + "ApiKey": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "user": { + "anyOf": [ + { + "$ref": "#/definitions/User" + }, + { + "type": "null" + } + ] + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + }, + "note": { + "type": [ + "string", + "null" + ] + } + } + } + }, + "type": "object", + "properties": { + "eventType": { + "$ref": "#/definitions/EventType" + }, + "credential": { + "$ref": "#/definitions/Credential" + }, + "destinationCalendar": { + "$ref": "#/definitions/DestinationCalendar" + }, + "user": { + "$ref": "#/definitions/User" + }, + "team": { + "$ref": "#/definitions/Team" + }, + "membership": { + "$ref": "#/definitions/Membership" + }, + "verificationRequest": { + "$ref": "#/definitions/VerificationRequest" + }, + "bookingReference": { + "$ref": "#/definitions/BookingReference" + }, + "attendee": { + "$ref": "#/definitions/Attendee" + }, + "dailyEventReference": { + "$ref": "#/definitions/DailyEventReference" + }, + "booking": { + "$ref": "#/definitions/Booking" + }, + "schedule": { + "$ref": "#/definitions/Schedule" + }, + "availability": { + "$ref": "#/definitions/Availability" + }, + "selectedCalendar": { + "$ref": "#/definitions/SelectedCalendar" + }, + "eventTypeCustomInput": { + "$ref": "#/definitions/EventTypeCustomInput" + }, + "resetPasswordRequest": { + "$ref": "#/definitions/ResetPasswordRequest" + }, + "reminderMail": { + "$ref": "#/definitions/ReminderMail" + }, + "payment": { + "$ref": "#/definitions/Payment" + }, + "webhook": { + "$ref": "#/definitions/Webhook" + }, + "apiKey": { + "$ref": "#/definitions/ApiKey" + } + } +} \ No newline at end of file diff --git a/package.json b/package.json index 8507464bf3..16dc0f9b9f 100644 --- a/package.json +++ b/package.json @@ -32,8 +32,8 @@ "prettier": "^2.6.1" }, "dependencies": { - "@sentry/nextjs": "^6.19.2", - "next": "^12.1.0", + "@sentry/nextjs": "^6.19.3", + "next": "^12.1.4", "next-api-middleware": "^1.0.1", "next-swagger-doc": "^0.2.1", "next-transpile-modules": "^9.0.0", diff --git a/pages/api/attendees/[id]/delete.ts b/pages/api/attendees/[id]/delete.ts index 59cf150af5..25e0818960 100644 --- a/pages/api/attendees/[id]/delete.ts +++ b/pages/api/attendees/[id]/delete.ts @@ -14,7 +14,7 @@ import { * /api/attendees/{id}/delete: * delete: * summary: Remove an existing attendee - * parameters: + * parameters: * - in: path * name: id * schema: diff --git a/pages/api/attendees/[id]/edit.ts b/pages/api/attendees/[id]/edit.ts index 0f0d5f2e0c..dab8ed979c 100644 --- a/pages/api/attendees/[id]/edit.ts +++ b/pages/api/attendees/[id]/edit.ts @@ -15,7 +15,7 @@ import { * /api/attendees/{id}/edit: * patch: * summary: Edit an existing attendee - * parameters: + * parameters: * - in: path * name: id * schema: diff --git a/pages/api/attendees/[id]/index.ts b/pages/api/attendees/[id]/index.ts index 6fe39d540c..81f9ead1bd 100644 --- a/pages/api/attendees/[id]/index.ts +++ b/pages/api/attendees/[id]/index.ts @@ -14,8 +14,8 @@ import { * @swagger * /api/attendees/{id}: * get: - * summary: Get a attendee by ID - * parameters: + * summary: Get a attendee by ID + * parameters: * - in: path * name: id * schema: diff --git a/pages/api/attendees/new.ts b/pages/api/attendees/new.ts index 7825755b0e..b934e5b62d 100644 --- a/pages/api/attendees/new.ts +++ b/pages/api/attendees/new.ts @@ -11,13 +11,6 @@ import { schemaAttendeeBodyParams, schemaAttendeePublic, withValidAttendee } fro * /api/attendees/new: * post: * summary: Creates a new attendee - * requestBody: - * description: Optional description in *Markdown* - * required: true - * content: - * application/json: - * schema: - * $ref: '#/components/schemas/Attendee' * tags: * - attendees * responses: diff --git a/pages/api/availabilities/[id]/delete.ts b/pages/api/availabilities/[id]/delete.ts index 1601b014a1..a23f5e9792 100644 --- a/pages/api/availabilities/[id]/delete.ts +++ b/pages/api/availabilities/[id]/delete.ts @@ -14,7 +14,7 @@ import { * /api/availabilites/{id}/delete: * delete: * summary: Remove an existing availability - * parameters: + * parameters: * - in: path * name: id * schema: diff --git a/pages/api/availabilities/[id]/edit.ts b/pages/api/availabilities/[id]/edit.ts index e530090a43..2aeb92dee2 100644 --- a/pages/api/availabilities/[id]/edit.ts +++ b/pages/api/availabilities/[id]/edit.ts @@ -19,7 +19,7 @@ import { * /api/availabilites/{id}/edit: * patch: * summary: Edit an existing availability - * parameters: + * parameters: * - in: path * name: id * schema: diff --git a/pages/api/availabilities/[id]/index.ts b/pages/api/availabilities/[id]/index.ts index 22e160e436..054c32ee9f 100644 --- a/pages/api/availabilities/[id]/index.ts +++ b/pages/api/availabilities/[id]/index.ts @@ -14,8 +14,8 @@ import { * @swagger * /api/availabilites/{id}: * get: - * summary: Get a availability by ID - * parameters: + * summary: Get a availability by ID + * parameters: * - in: path * name: id * schema: diff --git a/pages/api/availabilities/new.ts b/pages/api/availabilities/new.ts index 2e3587e551..d049a42ded 100644 --- a/pages/api/availabilities/new.ts +++ b/pages/api/availabilities/new.ts @@ -15,11 +15,11 @@ import { * /api/availabilites/new: * post: * summary: Creates a new availability - * requestBody: - * description: Optional description in *Markdown* - * required: true - * content: - * application/json: + * requestBody: + * description: Optional description in *Markdown* + * required: true + * content: + * application/json: * schema: * $ref: '#/components/schemas/Availability' * tags: @@ -27,7 +27,6 @@ import { * responses: * 201: * description: OK, availability created - * model: Availability * 400: * description: Bad request. Availability body is invalid. * 401: diff --git a/pages/api/booking-references/[id]/delete.ts b/pages/api/booking-references/[id]/delete.ts index 0a49d82d21..1fb0f32eb2 100644 --- a/pages/api/booking-references/[id]/delete.ts +++ b/pages/api/booking-references/[id]/delete.ts @@ -14,7 +14,7 @@ import { * /api/booking-references/{id}/delete: * delete: * summary: Remove an existing bookingReference - * parameters: + * parameters: * - in: path * name: id * schema: @@ -22,7 +22,7 @@ import { * required: true * description: Numeric ID of the bookingReference to delete * tags: - * - bookingReferences + * - booking-references * responses: * 201: * description: OK, bookingReference removed successfuly diff --git a/pages/api/booking-references/[id]/edit.ts b/pages/api/booking-references/[id]/edit.ts index 3d05537514..60c5d53316 100644 --- a/pages/api/booking-references/[id]/edit.ts +++ b/pages/api/booking-references/[id]/edit.ts @@ -19,7 +19,7 @@ import { * /api/booking-references/{id}/edit: * patch: * summary: Edit an existing bookingReference - * parameters: + * parameters: * - in: path * name: id * schema: @@ -27,7 +27,7 @@ import { * required: true * description: Numeric ID of the bookingReference to edit * tags: - * - bookingReferences + * - booking-references * responses: * 201: * description: OK, bookingReference edited successfuly diff --git a/pages/api/booking-references/[id]/index.ts b/pages/api/booking-references/[id]/index.ts index ee6f7c8e84..e71f6920d7 100644 --- a/pages/api/booking-references/[id]/index.ts +++ b/pages/api/booking-references/[id]/index.ts @@ -14,8 +14,8 @@ import { * @swagger * /api/booking-references/{id}: * get: - * summary: Get a bookingReference by ID - * parameters: + * summary: Get a bookingReference by ID + * parameters: * - in: path * name: id * schema: @@ -23,7 +23,7 @@ import { * required: true * description: Numeric ID of the bookingReference to get * tags: - * - bookingReferences + * - booking-references * responses: * 200: * description: OK diff --git a/pages/api/booking-references/index.ts b/pages/api/booking-references/index.ts index c1c4afc9dc..312ccf4b78 100644 --- a/pages/api/booking-references/index.ts +++ b/pages/api/booking-references/index.ts @@ -12,7 +12,7 @@ import { schemaBookingReferencePublic } from "@lib/validations/booking-reference * get: * summary: Get all bookingReferences * tags: - * - bookingReferences + * - booking-references * responses: * 200: * description: OK diff --git a/pages/api/booking-references/new.ts b/pages/api/booking-references/new.ts index 5430206cde..737156ae3f 100644 --- a/pages/api/booking-references/new.ts +++ b/pages/api/booking-references/new.ts @@ -15,19 +15,18 @@ import { * /api/booking-references/new: * post: * summary: Creates a new bookingReference - * requestBody: - * description: Optional description in *Markdown* - * required: true - * content: - * application/json: + * requestBody: + * description: Optional description in *Markdown* + * required: true + * content: + * application/json: * schema: * $ref: '#/components/schemas/BookingReference' * tags: - * - bookingReferences + * - booking-references * responses: * 201: * description: OK, bookingReference created - * model: BookingReference * 400: * description: Bad request. BookingReference body is invalid. * 401: diff --git a/pages/api/bookings/[id]/delete.ts b/pages/api/bookings/[id]/delete.ts index 5d6e58d656..3905a93b03 100644 --- a/pages/api/bookings/[id]/delete.ts +++ b/pages/api/bookings/[id]/delete.ts @@ -14,7 +14,7 @@ import { * /api/bookings/{id}/delete: * delete: * summary: Remove an existing booking - * parameters: + * parameters: * - in: path * name: id * schema: diff --git a/pages/api/bookings/[id]/edit.ts b/pages/api/bookings/[id]/edit.ts index 3e12bdaa86..fffc48c221 100644 --- a/pages/api/bookings/[id]/edit.ts +++ b/pages/api/bookings/[id]/edit.ts @@ -15,7 +15,7 @@ import { * /api/bookings/{id}/edit: * patch: * summary: Edit an existing booking - * parameters: + * parameters: * - in: path * name: id * schema: diff --git a/pages/api/bookings/[id]/index.ts b/pages/api/bookings/[id]/index.ts index fab8940978..c2b47d737f 100644 --- a/pages/api/bookings/[id]/index.ts +++ b/pages/api/bookings/[id]/index.ts @@ -14,8 +14,8 @@ import { * @swagger * /api/bookings/{id}: * get: - * summary: Get a booking by ID - * parameters: + * summary: Get a booking by ID + * parameters: * - in: path * name: id * schema: diff --git a/pages/api/bookings/new.ts b/pages/api/bookings/new.ts index 4e62b0e531..3e10e1c143 100644 --- a/pages/api/bookings/new.ts +++ b/pages/api/bookings/new.ts @@ -11,13 +11,13 @@ import { schemaBookingBodyParams, schemaBookingPublic, withValidBooking } from " * /api/bookings/new: * post: * summary: Creates a new booking - * requestBody: - * description: Optional description in *Markdown* - * required: true - * content: - * application/json: - * schema: - * $ref: '#/components/schemas/Booking' + * requestBody: + * description: Optional description in *Markdown* + * required: true + * content: + * application/json: + * schema: + * $ref: '#/components/schemas/Booking' * tags: * - bookings * responses: diff --git a/pages/api/credentials/[id]/delete.ts b/pages/api/credentials/[id]/delete.ts index e97e78d07c..49e4918792 100644 --- a/pages/api/credentials/[id]/delete.ts +++ b/pages/api/credentials/[id]/delete.ts @@ -14,7 +14,7 @@ import { * /api/credentials/{id}/delete: * delete: * summary: Remove an existing credential - * parameters: + * parameters: * - in: path * name: id * schema: diff --git a/pages/api/credentials/[id]/edit.ts b/pages/api/credentials/[id]/edit.ts index 5febf03067..69883de41e 100644 --- a/pages/api/credentials/[id]/edit.ts +++ b/pages/api/credentials/[id]/edit.ts @@ -19,7 +19,7 @@ import { * /api/credentials/{id}/edit: * patch: * summary: Edit an existing credential - * parameters: + * parameters: * - in: path * name: id * schema: diff --git a/pages/api/credentials/[id]/index.ts b/pages/api/credentials/[id]/index.ts index 9686700a17..f20fa4ba5c 100644 --- a/pages/api/credentials/[id]/index.ts +++ b/pages/api/credentials/[id]/index.ts @@ -14,8 +14,8 @@ import { * @swagger * /api/credentials/{id}: * get: - * summary: Get a credential by ID - * parameters: + * summary: Get a credential by ID + * parameters: * - in: path * name: id * schema: diff --git a/pages/api/credentials/new.ts b/pages/api/credentials/new.ts index 265f17d3cd..39302c7a1d 100644 --- a/pages/api/credentials/new.ts +++ b/pages/api/credentials/new.ts @@ -15,11 +15,11 @@ import { * /api/credentials/new: * post: * summary: Creates a new credential - * requestBody: - * description: Optional description in *Markdown* - * required: true - * content: - * application/json: + * requestBody: + * description: Optional description in *Markdown* + * required: true + * content: + * application/json: * schema: * $ref: '#/components/schemas/Credential' * tags: diff --git a/pages/api/daily-event-references/[id]/delete.ts b/pages/api/daily-event-references/[id]/delete.ts index 71b61d86c4..1e020c65ff 100644 --- a/pages/api/daily-event-references/[id]/delete.ts +++ b/pages/api/daily-event-references/[id]/delete.ts @@ -14,7 +14,7 @@ import { * /api/daily-event-references/{id}/delete: * delete: * summary: Remove an existing dailyEventReference - * parameters: + * parameters: * - in: path * name: id * schema: @@ -22,7 +22,7 @@ import { * required: true * description: Numeric ID of the dailyEventReference to delete * tags: - * - dailyEventReferences + * - daily-event-references * responses: * 201: * description: OK, dailyEventReference removed successfuly diff --git a/pages/api/daily-event-references/[id]/edit.ts b/pages/api/daily-event-references/[id]/edit.ts index e3d9f73765..b090962717 100644 --- a/pages/api/daily-event-references/[id]/edit.ts +++ b/pages/api/daily-event-references/[id]/edit.ts @@ -19,7 +19,7 @@ import { * /api/daily-event-references/{id}/edit: * patch: * summary: Edit an existing dailyEventReference - * parameters: + * parameters: * - in: path * name: id * schema: @@ -27,7 +27,7 @@ import { * required: true * description: Numeric ID of the dailyEventReference to edit * tags: - * - dailyEventReferences + * - daily-event-references * responses: * 201: * description: OK, dailyEventReference edited successfuly diff --git a/pages/api/daily-event-references/[id]/index.ts b/pages/api/daily-event-references/[id]/index.ts index 338a64470c..2ff523bc41 100644 --- a/pages/api/daily-event-references/[id]/index.ts +++ b/pages/api/daily-event-references/[id]/index.ts @@ -14,8 +14,8 @@ import { * @swagger * /api/daily-event-references/{id}: * get: - * summary: Get a dailyEventReference by ID - * parameters: + * summary: Get a dailyEventReference by ID + * parameters: * - in: path * name: id * schema: @@ -23,7 +23,7 @@ import { * required: true * description: Numeric ID of the dailyEventReference to get * tags: - * - dailyEventReferences + * - daily-event-references * responses: * 200: * description: OK diff --git a/pages/api/daily-event-references/index.ts b/pages/api/daily-event-references/index.ts index 774d39358c..d4495ef0f1 100644 --- a/pages/api/daily-event-references/index.ts +++ b/pages/api/daily-event-references/index.ts @@ -12,7 +12,7 @@ import { schemaDailyEventReferencePublic } from "@lib/validations/daily-event-re * get: * summary: Get all dailyEventReferences * tags: - * - dailyEventReferences + * - daily-event-references * responses: * 200: * description: OK diff --git a/pages/api/daily-event-references/new.ts b/pages/api/daily-event-references/new.ts index baf5e83d10..1e61a7fa59 100644 --- a/pages/api/daily-event-references/new.ts +++ b/pages/api/daily-event-references/new.ts @@ -15,15 +15,15 @@ import { * /api/daily-event-references/new: * post: * summary: Creates a new dailyEventReference - * requestBody: - * description: Optional description in *Markdown* - * required: true - * content: - * application/json: + * requestBody: + * description: Optional description in *Markdown* + * required: true + * content: + * application/json: * schema: * $ref: '#/components/schemas/DailyEventReference' * tags: - * - dailyEventReferences + * - daily-event-references * responses: * 201: * description: OK, dailyEventReference created diff --git a/pages/api/destination-calendars/[id]/delete.ts b/pages/api/destination-calendars/[id]/delete.ts index 2573532efd..1bf35128f9 100644 --- a/pages/api/destination-calendars/[id]/delete.ts +++ b/pages/api/destination-calendars/[id]/delete.ts @@ -14,7 +14,7 @@ import { * /api/destination-calendars/{id}/delete: * delete: * summary: Remove an existing destinationCalendar - * parameters: + * parameters: * - in: path * name: id * schema: @@ -22,7 +22,7 @@ import { * required: true * description: Numeric ID of the destinationCalendar to delete * tags: - * - destinationCalendars + * - destination-calendars * responses: * 201: * description: OK, destinationCalendar removed successfuly diff --git a/pages/api/destination-calendars/[id]/edit.ts b/pages/api/destination-calendars/[id]/edit.ts index 9dc4ae38fb..ab09db2f4d 100644 --- a/pages/api/destination-calendars/[id]/edit.ts +++ b/pages/api/destination-calendars/[id]/edit.ts @@ -19,7 +19,7 @@ import { * /api/destination-calendars/{id}/edit: * patch: * summary: Edit an existing destinationCalendar - * parameters: + * parameters: * - in: path * name: id * schema: @@ -27,7 +27,7 @@ import { * required: true * description: Numeric ID of the destinationCalendar to edit * tags: - * - destinationCalendars + * - destination-calendars * responses: * 201: * description: OK, destinationCalendar edited successfuly diff --git a/pages/api/destination-calendars/[id]/index.ts b/pages/api/destination-calendars/[id]/index.ts index 2639e70538..4a7474ff7c 100644 --- a/pages/api/destination-calendars/[id]/index.ts +++ b/pages/api/destination-calendars/[id]/index.ts @@ -14,8 +14,8 @@ import { * @swagger * /api/destination-calendars/{id}: * get: - * summary: Get a destinationCalendar by ID - * parameters: + * summary: Get a destinationCalendar by ID + * parameters: * - in: path * name: id * schema: @@ -23,7 +23,7 @@ import { * required: true * description: Numeric ID of the destinationCalendar to get * tags: - * - destinationCalendars + * - destination-calendars * responses: * 200: * description: OK diff --git a/pages/api/destination-calendars/index.ts b/pages/api/destination-calendars/index.ts index 6f1a9147dd..fc3493bf28 100644 --- a/pages/api/destination-calendars/index.ts +++ b/pages/api/destination-calendars/index.ts @@ -12,7 +12,7 @@ import { schemaDestinationCalendarPublic } from "@lib/validations/destination-ca * get: * summary: Get all destinationCalendars * tags: - * - destinationCalendars + * - destination-calendars * responses: * 200: * description: OK diff --git a/pages/api/destination-calendars/new.ts b/pages/api/destination-calendars/new.ts index 896be9f06a..eac1e2e110 100644 --- a/pages/api/destination-calendars/new.ts +++ b/pages/api/destination-calendars/new.ts @@ -15,15 +15,15 @@ import { * /api/destination-calendars/new: * post: * summary: Creates a new destinationCalendar - * requestBody: - * description: Optional description in *Markdown* - * required: true - * content: - * application/json: + * requestBody: + * description: Optional description in *Markdown* + * required: true + * content: + * application/json: * schema: * $ref: '#/components/schemas/DestinationCalendar' * tags: - * - destinationCalendars + * - destination-calendars * responses: * 201: * description: OK, destinationCalendar created diff --git a/pages/api/docs.ts b/pages/api/docs.ts index 8e489785bd..d9aa75d18c 100644 --- a/pages/api/docs.ts +++ b/pages/api/docs.ts @@ -1,3 +1,4 @@ +import jsonSchema from "@/json-schema/json-schema.json"; import pjson from "@/package.json"; import { withSwagger } from "next-swagger-doc"; @@ -8,8 +9,11 @@ const swaggerHandler = withSwagger({ title: `${pjson.name}: ${pjson.description}`, version: pjson.version, }, - tags: ["users", "teams"], + components: { schemas: { ...jsonSchema.definitions } }, + definitions: jsonSchema.definitions, }, apiFolder: "pages/api", + tags: ["users", "teams", "memeberships"], + sort: true, }); export default swaggerHandler(); diff --git a/pages/api/event-type-custom-inputs/[id]/delete.ts b/pages/api/event-type-custom-inputs/[id]/delete.ts index 94c6bb2610..e9064dd69d 100644 --- a/pages/api/event-type-custom-inputs/[id]/delete.ts +++ b/pages/api/event-type-custom-inputs/[id]/delete.ts @@ -14,7 +14,7 @@ import { * /api/event-type-custom-inputs/{id}/delete: * delete: * summary: Remove an existing eventTypeCustomInput - * parameters: + * parameters: * - in: path * name: id * schema: @@ -22,7 +22,7 @@ import { * required: true * description: Numeric ID of the eventTypeCustomInput to delete * tags: - * - eventTypeCustomInputs + * - event-type-custom-inputs * responses: * 201: * description: OK, eventTypeCustomInput removed successfuly diff --git a/pages/api/event-type-custom-inputs/[id]/edit.ts b/pages/api/event-type-custom-inputs/[id]/edit.ts index c95d4aa876..0357d22aff 100644 --- a/pages/api/event-type-custom-inputs/[id]/edit.ts +++ b/pages/api/event-type-custom-inputs/[id]/edit.ts @@ -19,7 +19,7 @@ import { * /api/event-type-custom-inputs/{id}/edit: * patch: * summary: Edit an existing eventTypeCustomInput - * parameters: + * parameters: * - in: path * name: id * schema: @@ -27,7 +27,7 @@ import { * required: true * description: Numeric ID of the eventTypeCustomInput to edit * tags: - * - eventTypeCustomInputs + * - event-type-custom-inputs * responses: * 201: * description: OK, eventTypeCustomInput edited successfuly diff --git a/pages/api/event-type-custom-inputs/[id]/index.ts b/pages/api/event-type-custom-inputs/[id]/index.ts index 5ceea367b4..b99b067b9e 100644 --- a/pages/api/event-type-custom-inputs/[id]/index.ts +++ b/pages/api/event-type-custom-inputs/[id]/index.ts @@ -14,8 +14,8 @@ import { * @swagger * /api/event-type-custom-inputs/{id}: * get: - * summary: Get a eventTypeCustomInput by ID - * parameters: + * summary: Get a eventTypeCustomInput by ID + * parameters: * - in: path * name: id * schema: @@ -23,7 +23,7 @@ import { * required: true * description: Numeric ID of the eventTypeCustomInput to get * tags: - * - eventTypeCustomInputs + * - event-type-custom-inputs * responses: * 200: * description: OK diff --git a/pages/api/event-type-custom-inputs/index.ts b/pages/api/event-type-custom-inputs/index.ts index 689d23c7ae..d1c8e3ad90 100644 --- a/pages/api/event-type-custom-inputs/index.ts +++ b/pages/api/event-type-custom-inputs/index.ts @@ -12,7 +12,7 @@ import { schemaEventTypeCustomInputPublic } from "@lib/validations/event-type-cu * get: * summary: Get all eventTypeCustomInputs * tags: - * - eventTypeCustomInputs + * - event-type-custom-inputs * responses: * 200: * description: OK diff --git a/pages/api/event-type-custom-inputs/new.ts b/pages/api/event-type-custom-inputs/new.ts index 165ed6cd20..3d64c296dd 100644 --- a/pages/api/event-type-custom-inputs/new.ts +++ b/pages/api/event-type-custom-inputs/new.ts @@ -15,15 +15,15 @@ import { * /api/event-type-custom-inputs/new: * post: * summary: Creates a new eventTypeCustomInput - * requestBody: - * description: Optional description in *Markdown* - * required: true - * content: - * application/json: + * requestBody: + * description: Optional description in *Markdown* + * required: true + * content: + * application/json: * schema: * $ref: '#/components/schemas/EventTypeCustomInput' * tags: - * - eventTypeCustomInputs + * - event-type-custom-inputs * responses: * 201: * description: OK, eventTypeCustomInput created diff --git a/pages/api/event-types/[id]/delete.ts b/pages/api/event-types/[id]/delete.ts index ce83548f73..1009a97e05 100644 --- a/pages/api/event-types/[id]/delete.ts +++ b/pages/api/event-types/[id]/delete.ts @@ -11,10 +11,10 @@ import { /** * @swagger - * /api/eventTypes/{id}/delete: + * /api/event-types/{id}/delete: * delete: * summary: Remove an existing eventType - * parameters: + * parameters: * - in: path * name: id * schema: @@ -22,7 +22,7 @@ import { * required: true * description: Numeric ID of the eventType to delete * tags: - * - eventTypes + * - event-types * responses: * 201: * description: OK, eventType removed successfuly diff --git a/pages/api/event-types/[id]/edit.ts b/pages/api/event-types/[id]/edit.ts index 5fad6585de..785774c0b6 100644 --- a/pages/api/event-types/[id]/edit.ts +++ b/pages/api/event-types/[id]/edit.ts @@ -16,10 +16,10 @@ import { /** * @swagger - * /api/eventTypes/{id}/edit: + * /api/event-types/{id}/edit: * patch: * summary: Edits an existing eventType - * parameters: + * parameters: * - in: path * name: id * schema: @@ -27,7 +27,7 @@ import { * required: true * description: Numeric ID of the eventType to delete * tags: - * - eventTypes + * - event-types * responses: * 201: * description: OK, eventType edited successfuly diff --git a/pages/api/event-types/[id]/index.ts b/pages/api/event-types/[id]/index.ts index 5e3ac565ae..645708813d 100644 --- a/pages/api/event-types/[id]/index.ts +++ b/pages/api/event-types/[id]/index.ts @@ -12,16 +12,18 @@ import { /** * @swagger - * /api/eventTypes/{id}: + * /api/event-types/{id}: * get: * summary: find eventType by ID - * parameters: + * parameters: * - in: path * name: id * schema: * type: integer * required: true * description: Numeric ID of the eventType to get + * tags: + * - event-types * responses: * 200: * description: OK diff --git a/pages/api/event-types/index.ts b/pages/api/event-types/index.ts index 5385f3f3c4..a626490919 100644 --- a/pages/api/event-types/index.ts +++ b/pages/api/event-types/index.ts @@ -11,6 +11,8 @@ import { schemaEventTypePublic } from "@lib/validations/event-type"; * /api/eventTypes: * get: * summary: Returns all eventTypes + * tags: + * - event-types * responses: * 200: * description: OK diff --git a/pages/api/event-types/new.ts b/pages/api/event-types/new.ts index 847d25dd32..491057c453 100644 --- a/pages/api/event-types/new.ts +++ b/pages/api/event-types/new.ts @@ -12,9 +12,11 @@ import { /** * @swagger - * /api/eventTypes/new: + * /api/event-types/new: * post: * summary: Creates a new eventType + * tags: + * - event-types * responses: * 201: * description: OK, eventType created diff --git a/pages/api/memberships/[id]/delete.ts b/pages/api/memberships/[id]/delete.ts index b33148e6d6..8eb4e8ae4a 100644 --- a/pages/api/memberships/[id]/delete.ts +++ b/pages/api/memberships/[id]/delete.ts @@ -11,14 +11,15 @@ import { schemaQueryIdAsString, withValidQueryIdString } from "@lib/validations/ * /api/memberships/{userId}_{teamId}/delete: * delete: * summary: Remove an existing membership - * parameters: - * - in: path - * - name: userId + * parameters: + * - in: path + * name: userId * schema: * type: integer * required: true * description: Numeric ID of the user to get the membership of - * * - name: teamId + * - in: path + * name: teamId * schema: * type: integer * required: true diff --git a/pages/api/memberships/[id]/index.ts b/pages/api/memberships/[id]/index.ts index 5bc5f79496..a1505f185e 100644 --- a/pages/api/memberships/[id]/index.ts +++ b/pages/api/memberships/[id]/index.ts @@ -12,7 +12,7 @@ import { schemaQueryIdAsString, withValidQueryIdString } from "@lib/validations/ * /api/memberships/{userId}_{teamId}: * get: * summary: find membership by userID and teamID - * parameters: + * parameters: * - in: path * name: userId * schema: diff --git a/pages/api/payments/[id]/delete.ts b/pages/api/payments/[id]/delete.ts index 2367f463b0..104fbb0da9 100644 --- a/pages/api/payments/[id]/delete.ts +++ b/pages/api/payments/[id]/delete.ts @@ -14,7 +14,7 @@ import { * /api/payments/{id}/delete: * delete: * summary: Remove an existing payment - * parameters: + * parameters: * - in: path * name: id * schema: diff --git a/pages/api/payments/[id]/edit.ts b/pages/api/payments/[id]/edit.ts index f0f38b5efd..6b1549d66a 100644 --- a/pages/api/payments/[id]/edit.ts +++ b/pages/api/payments/[id]/edit.ts @@ -15,7 +15,7 @@ import { * /api/payments/{id}/edit: * patch: * summary: Edit an existing payment - * parameters: + * parameters: * - in: path * name: id * schema: diff --git a/pages/api/payments/[id]/index.ts b/pages/api/payments/[id]/index.ts index ea5039cf43..5d4fa9547a 100644 --- a/pages/api/payments/[id]/index.ts +++ b/pages/api/payments/[id]/index.ts @@ -14,8 +14,8 @@ import { * @swagger * /api/payments/{id}: * get: - * summary: Get a payment by ID - * parameters: + * summary: Get a payment by ID + * parameters: * - in: path * name: id * schema: diff --git a/pages/api/payments/new.ts b/pages/api/payments/new.ts index dca0099e48..1886270fe2 100644 --- a/pages/api/payments/new.ts +++ b/pages/api/payments/new.ts @@ -11,11 +11,11 @@ import { schemaPaymentBodyParams, schemaPaymentPublic, withValidPayment } from " * /api/payments/new: * post: * summary: Creates a new payment - * requestBody: - * description: Optional description in *Markdown* - * required: true - * content: - * application/json: + * requestBody: + * description: Optional description in *Markdown* + * required: true + * content: + * application/json: * schema: * $ref: '#/components/schemas/Payment' * tags: diff --git a/pages/api/reminder-mails/[id]/delete.ts b/pages/api/reminder-mails/[id]/delete.ts index 3211a4fa9d..6b3bad4fe9 100644 --- a/pages/api/reminder-mails/[id]/delete.ts +++ b/pages/api/reminder-mails/[id]/delete.ts @@ -13,8 +13,8 @@ import { * @swagger * /api/reminder-mails/{id}/delete: * delete: - * summary: Remove an existing reminderMail - * parameters: + * summary: Remove an existing reminder mail + * parameters: * - in: path * name: id * schema: @@ -22,7 +22,7 @@ import { * required: true * description: Numeric ID of the reminderMail to delete * tags: - * - reminderMails + * - reminder-mails * responses: * 201: * description: OK, reminderMail removed successfuly diff --git a/pages/api/reminder-mails/[id]/edit.ts b/pages/api/reminder-mails/[id]/edit.ts index 802381bd1c..2fedbb8f86 100644 --- a/pages/api/reminder-mails/[id]/edit.ts +++ b/pages/api/reminder-mails/[id]/edit.ts @@ -18,8 +18,8 @@ import { * @swagger * /api/reminder-mails/{id}/edit: * patch: - * summary: Edit an existing reminderMail - * parameters: + * summary: Edit an existing reminder mail + * parameters: * - in: path * name: id * schema: @@ -27,7 +27,7 @@ import { * required: true * description: Numeric ID of the reminderMail to edit * tags: - * - reminderMails + * - reminder-mails * responses: * 201: * description: OK, reminderMail edited successfuly diff --git a/pages/api/reminder-mails/[id]/index.ts b/pages/api/reminder-mails/[id]/index.ts index 3554f87b64..7b38d22cbe 100644 --- a/pages/api/reminder-mails/[id]/index.ts +++ b/pages/api/reminder-mails/[id]/index.ts @@ -14,8 +14,8 @@ import { * @swagger * /api/reminder-mails/{id}: * get: - * summary: Get a reminderMail by ID - * parameters: + * summary: Get a reminder mail by ID + * parameters: * - in: path * name: id * schema: @@ -23,7 +23,7 @@ import { * required: true * description: Numeric ID of the reminderMail to get * tags: - * - reminderMails + * - reminder-mails * responses: * 200: * description: OK diff --git a/pages/api/reminder-mails/index.ts b/pages/api/reminder-mails/index.ts index 546dc58dc7..3a847def6b 100644 --- a/pages/api/reminder-mails/index.ts +++ b/pages/api/reminder-mails/index.ts @@ -10,9 +10,9 @@ import { schemaReminderMailPublic } from "@lib/validations/reminder-mail"; * @swagger * /api/reminder-mails: * get: - * summary: Get all reminderMails + * summary: Get all reminder mails * tags: - * - reminderMails + * - reminder-mails * responses: * 200: * description: OK diff --git a/pages/api/reminder-mails/new.ts b/pages/api/reminder-mails/new.ts index 85afef2a34..dd82b7a78e 100644 --- a/pages/api/reminder-mails/new.ts +++ b/pages/api/reminder-mails/new.ts @@ -14,16 +14,16 @@ import { * @swagger * /api/reminder-mails/new: * post: - * summary: Creates a new reminderMail - * requestBody: - * description: Optional description in *Markdown* - * required: true - * content: - * application/json: + * summary: Creates a new reminder mail + * requestBody: + * description: Optional description in *Markdown* + * required: true + * content: + * application/json: * schema: * $ref: '#/components/schemas/ReminderMail' * tags: - * - reminderMails + * - reminder-mails * responses: * 201: * description: OK, reminderMail created diff --git a/pages/api/schedules/[id]/delete.ts b/pages/api/schedules/[id]/delete.ts index 4b037be9d2..4a85704a21 100644 --- a/pages/api/schedules/[id]/delete.ts +++ b/pages/api/schedules/[id]/delete.ts @@ -11,7 +11,7 @@ import { /** * @swagger - * /api/schedules/:id/delete: + * /api/schedules/{id}/delete: * delete: * summary: Remove an existing schedule * tags: diff --git a/pages/api/schedules/[id]/edit.ts b/pages/api/schedules/[id]/edit.ts index 2f750536f8..97fad524a0 100644 --- a/pages/api/schedules/[id]/edit.ts +++ b/pages/api/schedules/[id]/edit.ts @@ -12,7 +12,7 @@ import { /** * @swagger - * /api/schedules/:id/edit: + * /api/schedules/{id}/edit: * patch: * summary: Edits an existing schedule * tags: diff --git a/pages/api/schedules/[id]/index.ts b/pages/api/schedules/[id]/index.ts index 1a8675d53f..8bdab1fca0 100644 --- a/pages/api/schedules/[id]/index.ts +++ b/pages/api/schedules/[id]/index.ts @@ -15,7 +15,7 @@ import { * /api/schedules/{id}: * get: * summary: Get schedule by ID - * parameters: + * parameters: * - in: path * name: id * schema: diff --git a/pages/api/selected-calendars/[id]/delete.ts b/pages/api/selected-calendars/[id]/delete.ts index 76b949972a..ec1abebed4 100644 --- a/pages/api/selected-calendars/[id]/delete.ts +++ b/pages/api/selected-calendars/[id]/delete.ts @@ -10,27 +10,26 @@ import { schemaQueryIdAsString, withValidQueryIdString } from "@lib/validations/ * @swagger * /api/selected-calendars/{userId}_{teamId}/delete: * delete: - * summary: Remove an existing selectedCalendar - * parameters: - * - in: path - * - name: userId + * summary: Remove an existing record of a selected calendar + * parameters: + * - in: path + * - name: userId * schema: * type: integer * required: true - * description: Numeric ID of the user to get the selectedCalendar of - * * - name: teamId + * description: Numeric ID of the user to get the selected calendar of + * - name: teamId * schema: * type: integer * required: true - * description: Numeric ID of the team to get the selectedCalendar of + * description: Numeric ID of the team to get the selected calendar of * tags: - * - selectedCalendars + * - selected-calendars * responses: * 201: - * description: OK, selectedCalendar removed successfuly - * model: SelectedCalendar + * description: OK, selected calendar removed successfuly * 400: - * description: Bad request. SelectedCalendar id is invalid. + * description: Bad request. selected calendar id is invalid. * 401: * description: Authorization information is missing or invalid. */ diff --git a/pages/api/selected-calendars/[id]/edit.ts b/pages/api/selected-calendars/[id]/edit.ts index 717afb9c1f..c5737eb4e6 100644 --- a/pages/api/selected-calendars/[id]/edit.ts +++ b/pages/api/selected-calendars/[id]/edit.ts @@ -17,7 +17,7 @@ import { schemaQueryIdAsString, withValidQueryIdString } from "@lib/validations/ * patch: * summary: Edits an existing selectedCalendar * tags: - * - selectedCalendars + * - selected-calendars * responses: * 201: * description: OK, selectedCalendar edited successfuly diff --git a/pages/api/selected-calendars/[id]/index.ts b/pages/api/selected-calendars/[id]/index.ts index d88e0116ff..bec8bcc600 100644 --- a/pages/api/selected-calendars/[id]/index.ts +++ b/pages/api/selected-calendars/[id]/index.ts @@ -12,7 +12,7 @@ import { schemaQueryIdAsString, withValidQueryIdString } from "@lib/validations/ * /api/selected-calendars/{userId}_{teamId}: * get: * summary: find selectedCalendar by userID and teamID - * parameters: + * parameters: * - in: path * name: userId * schema: @@ -26,7 +26,7 @@ import { schemaQueryIdAsString, withValidQueryIdString } from "@lib/validations/ * required: true * description: Numeric teamId of the selectedCalendar to get * tags: - * - selectedCalendars + * - selected-calendars * responses: * 200: * description: OK diff --git a/pages/api/selected-calendars/index.ts b/pages/api/selected-calendars/index.ts index cb13635eec..bfc6e7b834 100644 --- a/pages/api/selected-calendars/index.ts +++ b/pages/api/selected-calendars/index.ts @@ -8,9 +8,11 @@ import { schemaSelectedCalendarPublic } from "@lib/validations/selected-calendar /** * @swagger - * /api/selectedCalendars: + * /api/selected-calendars: * get: * summary: Returns all selected calendars + * tags: + * - selected-calendars * responses: * 200: * description: OK diff --git a/pages/api/selected-calendars/new.ts b/pages/api/selected-calendars/new.ts index dbca6d85a0..4534215c0c 100644 --- a/pages/api/selected-calendars/new.ts +++ b/pages/api/selected-calendars/new.ts @@ -12,9 +12,11 @@ import { /** * @swagger - * /api/selectedCalendars/new: + * /api/selected-calendars/new: * post: * summary: Creates a new selected calendar + * tags: + * - selected-calendars * responses: * 201: * description: OK, selected calendar created diff --git a/pages/api/teams/[id]/delete.ts b/pages/api/teams/[id]/delete.ts index 657e9628ce..0b493f3fc5 100644 --- a/pages/api/teams/[id]/delete.ts +++ b/pages/api/teams/[id]/delete.ts @@ -11,9 +11,16 @@ import { /** * @swagger - * /api/teams/:id/delete: + * /api/teams/{id}/delete: * delete: * summary: Remove an existing team + * parameters: + * - in: path + * name: id + * schema: + * type: integer + * required: true + * description: Numeric ID of the team to remove * tags: * - teams * responses: diff --git a/pages/api/teams/[id]/edit.ts b/pages/api/teams/[id]/edit.ts index 2b0411cdf8..9791e37046 100644 --- a/pages/api/teams/[id]/edit.ts +++ b/pages/api/teams/[id]/edit.ts @@ -12,9 +12,23 @@ import { schemaTeamBodyParams, schemaTeamPublic, withValidTeam } from "@lib/vali /** * @swagger - * /api/teams/:id/edit: + * /api/teams/{id}/edit: * patch: * summary: Edits an existing team + * consumes: + * - application/json + * parameters: + * - in: body + * name: team + * description: The team to edit + * schema: Team + * required: true + * - in: path + * name: id + * schema: + * type: integer + * required: true + * description: Numeric ID of the team to edit * tags: * - teams * responses: diff --git a/pages/api/teams/[id]/index.ts b/pages/api/teams/[id]/index.ts index 218f296308..62765e544d 100644 --- a/pages/api/teams/[id]/index.ts +++ b/pages/api/teams/[id]/index.ts @@ -15,7 +15,7 @@ import { schemaTeamPublic } from "@lib/validations/team"; * /api/teams/{id}: * get: * summary: find team by ID - * parameters: + * parameters: * - in: path * name: id * schema: diff --git a/pages/api/users/[id]/delete.ts b/pages/api/users/[id]/delete.ts index b8b5a7a59f..b484d2cae5 100644 --- a/pages/api/users/[id]/delete.ts +++ b/pages/api/users/[id]/delete.ts @@ -14,7 +14,7 @@ import { * /api/users/{id}/delete: * delete: * summary: Remove an existing user - * parameters: + * parameters: * - in: path * name: id * schema: diff --git a/pages/api/users/[id]/edit.ts b/pages/api/users/[id]/edit.ts index 4d39bb80ce..7ebf00517e 100644 --- a/pages/api/users/[id]/edit.ts +++ b/pages/api/users/[id]/edit.ts @@ -15,7 +15,16 @@ import { schemaUserBodyParams, schemaUserPublic, withValidUser } from "@lib/vali * /api/users/{id}/edit: * patch: * summary: Edit an existing user - * parameters: + * consumes: + * - application/json + * parameters: + * - in: body + * name: user + * description: The user to edit + * schema: + * type: object + * $ref: '#/components/schemas/User' + * required: true * - in: path * name: id * schema: diff --git a/pages/api/users/[id]/index.ts b/pages/api/users/[id]/index.ts index 59987519b7..c9ef417223 100644 --- a/pages/api/users/[id]/index.ts +++ b/pages/api/users/[id]/index.ts @@ -14,14 +14,14 @@ import { schemaUserPublic } from "@lib/validations/user"; * @swagger * /api/users/{id}: * get: - * summary: Get a user by ID - * parameters: - * - in: path - * name: id - * schema: - * type: integer - * required: true - * description: Numeric ID of the user to get + * summary: Get a user by ID + * parameters: + * - in: path + * name: id + * schema: + * type: integer + * required: true + * description: Numeric ID of the user to get * tags: * - users * responses: diff --git a/pages/api/users/new.ts b/pages/api/users/new.ts index 52a25015b8..df3310c09c 100644 --- a/pages/api/users/new.ts +++ b/pages/api/users/new.ts @@ -10,14 +10,17 @@ import { schemaUserBodyParams, schemaUserPublic, withValidUser } from "@lib/vali * @swagger * /api/users/new: * post: - * summary: Creates a new user - * requestBody: - * description: Optional description in *Markdown* - * required: true - * content: - * application/json: - * schema: - * $ref: '#/components/schemas/User' + * summary: Add a new user + * consumes: + * - application/json + * parameters: + * - in: body + * name: user + * description: The user to edit + * schema: + * type: object + * $ref: '#/components/schemas/User' + * required: true * tags: * - users * responses: diff --git a/templates/zod-validation.ts b/templates/zod-validation.ts index c200611812..02b0597529 100644 --- a/templates/zod-validation.ts +++ b/templates/zod-validation.ts @@ -1,23 +1,23 @@ -// import { withValidation } from "next-validations"; -// import { z } from "zod"; +import { withValidation } from "next-validations"; +import { z } from "zod"; -// import { _ModelModel as Model } from "@calcom/prisma/zod"; +import { _ModelModel as Model } from "@calcom/prisma/zod"; -// export const schemaModelBaseBodyParams = Model.omit({ id: true, userId: true, createdAt: true }).partial(); +export const schemaModelBaseBodyParams = Model.omit({ id: true, userId: true, createdAt: true }).partial(); -// const schemaModelRequiredParams = z.object({ -// email: z.string().email(), -// }); +const schemaModelRequiredParams = z.object({ + email: z.string().email(), +}); -// export const schemaModelBodyParams = schemaModelBaseBodyParams.merge(schemaModelRequiredParams); +export const schemaModelBodyParams = schemaModelBaseBodyParams.merge(schemaModelRequiredParams); -// export const schemaModelPublic = Model.omit({ -// id: true, -// userId: true, -// }); +export const schemaModelPublic = Model.omit({ + id: true, + userId: true, +}); -// export const withValidModel = withValidation({ -// schema: schemaModelBodyParams, -// type: "Zod", -// mode: "body", -// }); +export const withValidModel = withValidation({ + schema: schemaModelBodyParams, + type: "Zod", + mode: "body", +}); diff --git a/tsconfig.json b/tsconfig.json index 7859f5e38e..5acb222ba6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,6 @@ { "extends": "@calcom/tsconfig/base.json", - "exclude": ["node_modules"], + "exclude": ["node_modules", "templates"], "compilerOptions": { "strictNullChecks": true, "baseUrl": ".", @@ -19,5 +19,5 @@ "@/*": ["*"] } }, - "include": ["./**/*.ts"] + "include": ["./**/*.ts*"] }