leaky-ships/leaky-ships/pages/api/register.ts
2023-04-10 20:21:27 +02:00

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"],
}
}