Implement api redirect

This commit is contained in:
aronmal 2023-04-26 13:49:33 +02:00
parent 2ed943857e
commit a227da52bc
Signed by: aronmal
GPG key ID: 816B7707426FC612
2 changed files with 14 additions and 5 deletions

View file

@ -6,6 +6,7 @@ export interface Result<T> {
statusCode?: number statusCode?: number
body?: T body?: T
type?: Logging[] type?: Logging[]
redirectUrl?: string
} }
export default function sendResponse<T>( export default function sendResponse<T>(
@ -13,8 +14,12 @@ export default function sendResponse<T>(
res: NextApiResponse<T>, res: NextApiResponse<T>,
result: Result<T> result: Result<T>
) { ) {
res.status(result.statusCode ?? 200) if (result.redirectUrl) {
result.body ? res.json(result.body) : res.end() res.redirect(result.statusCode ?? 307, result.redirectUrl)
logging(result.message, result.type ?? ["debug"], req) } else {
res.status(result.statusCode ?? 200)
result.body ? res.json(result.body) : res.end()
logging(result.message, result.type ?? ["debug"], req)
}
return "done" as const return "done" as const
} }

View file

@ -26,8 +26,12 @@ export default async function create(
let created = false let created = false
let game = await getAnyRunningGame(id) let game = await getAnyRunningGame(id)
if (!game) { if (game) {
created = true return sendResponse(req, res, {
redirectUrl: "/api/game/running",
message: "Running game already exists.",
})
} else {
game = await prisma.game.create({ game = await prisma.game.create({
data: { data: {
gamePin: { gamePin: {