feat: setup signup routes and redirect on success

This commit is contained in:
Chuma McPhoy
2024-10-03 10:12:06 +02:00
committed by Pontus Dreij
parent 8583306b3c
commit 540ce58446
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])
})

View File

@@ -0,0 +1,21 @@
import { LangRoute } from "@/types/routes"
export const signup: LangRoute = {
en: "/en/scandic-friends/join-scandic-friends",
sv: "/sv/scandic-friends/bli-medlem",
no: "/no/scandic-friends/registrer-deg-for-scandic-friends",
fi: "/fi/scandic-friends/liity-scandic-friends-ohjelmaan",
da: "/da/scandic-friends/tilmeld-dig-scandic-friends",
de: "/de/scandic-friends/werden-sie-mitglied-von-scandic-friends",
}
export const signupVerify: LangRoute = {
en: `${signup.en}/verify`,
sv: `${signup.sv}/verifiera`,
no: `${signup.no}/bekreft`,
fi: `${signup.fi}/vahvista`,
da: `${signup.da}/bekraeft`,
de: `${signup.de}/verifizieren`,
}
// export const signup = [...Object.values(signupRoutes)]