fix: handled api error responses

This commit is contained in:
Riccardo
2023-12-17 19:17:32 +01:00
parent a9b2c94cff
commit 5118f55c0c
7 changed files with 27 additions and 7 deletions

View File

@@ -28,6 +28,7 @@ export async function POST(request: Request) {
});
const message: z.infer<typeof ResponseSchema> = {
success: true,
message: `Thank you for confirming the subscription, ${user.email}!`
};
@@ -35,7 +36,8 @@ export async function POST(request: Request) {
}
const message: z.infer<typeof ResponseSchema> = {
message: `Nothing to see here...`
success: false,
message: `It was not possible to confirm the subscription.`
};
return ApiResponse(200, JSON.stringify(message));

View File

@@ -36,6 +36,7 @@ export async function POST(request: Request) {
}
const message: z.infer<typeof ResponseSchema> = {
success: true,
message: `Thank you for subscribing!`
};
@@ -67,6 +68,7 @@ export async function POST(request: Request) {
}
const message: z.infer<typeof ResponseSchema> = {
success: true,
message: `Thank you! You will now receive an email to ${email} to confirm the subscription.`
};

View File

@@ -39,6 +39,7 @@ export async function POST(request: Request) {
}
const message: z.infer<typeof ResponseSchema> = {
success: true,
message: `${email} unsubscribed.`
};

View File

@@ -31,7 +31,13 @@ export default function Confirmation() {
if (!res.ok) {
router.push('/');
}
const response: z.infer<typeof ResponseSchema> = await res.json();
if (!response.success) {
router.push('/');
}
return response;
})
.then(response => {

View File

@@ -59,6 +59,10 @@ export default function Home() {
const formResponse: z.infer<typeof ResponseSchema> =
await response.json();
if (!formResponse.success) {
throw Error(formResponse.message);
}
setMessage(formResponse.message);
setCompleted(true);
} catch (error) {

View File

@@ -59,6 +59,10 @@ export default function Unsubscribe() {
const formResponse: z.infer<typeof ResponseSchema> =
await response.json();
if (!formResponse.success) {
throw Error(formResponse.message);
}
setMessage(formResponse.message);
setCompleted(true);
} catch (error) {