feat: setup signup routes and redirect on success

This commit is contained in:
Chuma McPhoy
2024-10-03 10:12:06 +02:00
parent 5bdef742c7
commit f356d91f99
2 changed files with 47 additions and 23 deletions

View File

@@ -3,6 +3,7 @@
import { redirect } from "next/navigation"
import { z } from "zod"
import { signupVerify } from "@/constants/routes/signup"
import * as api from "@/lib/api"
import { profileServiceServerActionProcedure } from "@/server/trpc"
@@ -49,37 +50,39 @@ export const registerUser = profileServiceServerActionProcedure
return { success: false, error: "Validation error" }
}
let apiResponse
try {
const apiResponse = await api.post(api.endpoints.v1.profile, {
apiResponse = await api.post(api.endpoints.v1.profile, {
body: parsedPayload.data,
headers: {
Authorization: `Bearer ${ctx.serviceToken}`,
},
})
if (!apiResponse.ok) {
const text = await apiResponse.text()
console.error(
"registerUser api error",
JSON.stringify({
query: input,
error: {
status: apiResponse.status,
statusText: apiResponse.statusText,
error: text,
},
})
)
return { success: false, error: "API error" }
}
const json = await apiResponse.json()
console.log("json", json)
// TODO: Redirect to actual success page.
redirect("/signup/success")
} catch (error) {
console.error("Unexpected error", error)
return { success: false, error: "Unexpected error" }
}
if (!apiResponse.ok) {
const text = await apiResponse.text()
console.error(
"registerUser api error",
JSON.stringify({
query: input,
error: {
status: apiResponse.status,
statusText: apiResponse.statusText,
error: text,
},
})
)
return { success: false, error: "API error" }
}
const json = await apiResponse.json()
console.log("registerUser: json", json)
// Note: The redirect needs to be called after the try/catch block.
// See: https://nextjs.org/docs/app/api-reference/functions/redirect
redirect(signupVerify[ctx.lang])
})