33 lines
1 KiB
TypeScript
33 lines
1 KiB
TypeScript
import type { NextApiRequest, NextApiResponse } from "next"
|
|
import type { Player } from "@prisma/client"
|
|
import createPlayerDB from "../../lib/backend/components/createPlayerDB"
|
|
import sendError from "../../lib/backend/components/sendError"
|
|
import sendResponse, { Result } from "../../lib/backend/components/sendResponse"
|
|
import getUserFromBody from "../../lib/backend/components/getUserFromBody"
|
|
|
|
interface Data {
|
|
registered: boolean
|
|
}
|
|
|
|
export default async function register(
|
|
req: NextApiRequest,
|
|
res: NextApiResponse<Data>
|
|
) {
|
|
const context = { req, res }
|
|
|
|
return getUserFromBody(context, (username, password) =>
|
|
createPlayerDB({ username, password }, (player) => {
|
|
sendResponse(context, registerResponse(player))
|
|
}).catch((err) => sendError(context, err))
|
|
)
|
|
}
|
|
|
|
function registerResponse(player: Player): Result<Data> {
|
|
// Successfull response
|
|
return {
|
|
message: "Player created : " + player.id,
|
|
statusCode: 201,
|
|
body: { registered: true },
|
|
type: ["debug", "infoCyan"],
|
|
}
|
|
}
|