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
body?: T
type?: Logging[]
redirectUrl?: string
}
export default function sendResponse<T>(
@ -13,8 +14,12 @@ export default function sendResponse<T>(
res: NextApiResponse<T>,
result: Result<T>
) {
res.status(result.statusCode ?? 200)
result.body ? res.json(result.body) : res.end()
logging(result.message, result.type ?? ["debug"], req)
if (result.redirectUrl) {
res.redirect(result.statusCode ?? 307, result.redirectUrl)
} 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
}

View file

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