Simply removes extra spaces which are causing prettier to fail deployment, introduced in the PR for USER swagger doc update
94 lines
3.3 KiB
TypeScript
94 lines
3.3 KiB
TypeScript
import type { NextApiRequest } from "next";
|
|
|
|
import { HttpError } from "@calcom/lib/http-error";
|
|
import { defaultResponder } from "@calcom/lib/server";
|
|
|
|
import { schemaUserCreateBodyParams } from "@lib/validations/user";
|
|
|
|
/**
|
|
* @swagger
|
|
* /users:
|
|
* post:
|
|
* operationId: addUser
|
|
* summary: Creates a new user
|
|
* parameters:
|
|
* - in: query
|
|
* name: apiKey
|
|
* required: true
|
|
* schema:
|
|
* type: string
|
|
* description: Your API key
|
|
* requestBody:
|
|
* description: Create a new user
|
|
* required: true
|
|
* content:
|
|
* application/json:
|
|
* schema:
|
|
* type: object
|
|
* required:
|
|
* - email
|
|
* - username
|
|
* properties:
|
|
* email:
|
|
* type: string
|
|
* format: email
|
|
* description: Email that belongs to the user being edited
|
|
* username:
|
|
* type: string
|
|
* description: Username for the user being created
|
|
* brandColor:
|
|
* description: The new user's brand color
|
|
* type: string
|
|
* darkBrandColor:
|
|
* description: The new user's brand color for dark mode
|
|
* type: string
|
|
* weekStart:
|
|
* description: Start of the week. Acceptable values are one of [SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY]
|
|
* type: string
|
|
* timeZone:
|
|
* description: The new user's time zone
|
|
* type: string
|
|
* theme:
|
|
* description: Default theme for the new user. Acceptable values are one of [DARK, LIGHT]
|
|
* type: string
|
|
* timeFormat:
|
|
* description: The new user's time format. Acceptable values are one of [TWELVE, TWENTY_FOUR]
|
|
* type: string
|
|
* locale:
|
|
* description: The new user's locale. Acceptable values are one of [EN, FR, IT, RU, ES, DE, PT, RO, NL, PT_BR, ES_419, KO, JA, PL, AR, IW, ZH_CH, ZH_TW, CS, SR, SV, VI]
|
|
* type: string
|
|
* examples:
|
|
* user:
|
|
* summary: An example of USER
|
|
* value:
|
|
* email: email@example.com
|
|
* username: johndoe
|
|
* weekStart: MONDAY
|
|
* brandColor: #555555
|
|
* darkBrandColor: #111111
|
|
* timeZone: EUROPE/PARIS
|
|
* theme: LIGHT
|
|
* timeFormat: TWELVE
|
|
* locale: FR
|
|
* tags:
|
|
* - users
|
|
* responses:
|
|
* 201:
|
|
* description: OK, user created
|
|
* 400:
|
|
* description: Bad request. user body is invalid.
|
|
* 401:
|
|
* description: Authorization information is missing or invalid.
|
|
*/
|
|
async function postHandler(req: NextApiRequest) {
|
|
const { prisma, isAdmin } = req;
|
|
// If user is not ADMIN, return unauthorized.
|
|
if (!isAdmin) throw new HttpError({ statusCode: 401, message: "You are not authorized" });
|
|
const data = await schemaUserCreateBodyParams.parseAsync(req.body);
|
|
const user = await prisma.user.create({ data });
|
|
req.statusCode = 201;
|
|
return { user };
|
|
}
|
|
|
|
export default defaultResponder(postHandler);
|