Send push notifs on appeal action

This commit is contained in:
regalijan 2023-10-19 16:51:16 -04:00
parent ffe70100ac
commit 161862712c
Signed by: regalijan
GPG Key ID: 5D4196DA269EF520
2 changed files with 53 additions and 27 deletions

View File

@ -1,26 +1,39 @@
import { jsonError } from "../../../common.js"; import { jsonError } from "../../../common.js";
import sendEmail from "../../../email.js"; import sendEmail from "../../../email.js";
import { sendPushNotification } from "../../../gcloud.js";
export async function onRequestPost(context: RequestContext) { export async function onRequestPost(context: RequestContext) {
const { appeal } = context.data; const { appeal } = context.data;
const emailResponse = await sendEmail(
appeal.user.email,
context.env.MAILGUN_API_KEY,
"Appeal Accepted",
"appeal_accepted",
{
note: context.data.body.feedback || "No note provided.",
},
);
if (!emailResponse.ok) { if (appeal.fcm_token) {
console.log(await emailResponse.json()); await sendPushNotification(
return jsonError("Failed to accept appeal", 500); context.env,
"Appeal Accepted",
context.data.body.feedback || "No additional details to display",
appeal.fcm_token,
);
} else {
const emailResponse = await sendEmail(
appeal.user.email,
context.env.MAILGUN_API_KEY,
"Appeal Accepted",
"appeal_accepted",
{
note: context.data.body.feedback || "No note provided.",
},
);
if (!emailResponse.ok) {
console.log(await emailResponse.json());
return jsonError("Failed to accept appeal", 500);
}
} }
const { current_user: currentUser } = context.data; const { current_user: currentUser } = context.data;
await context.env.D1.prepare("UPDATE appeals SET approved = 1, open = 0 WHERE id = ?;") await context.env.D1.prepare(
"UPDATE appeals SET approved = 1, open = 0 WHERE id = ?;",
)
.bind(context.params.id) .bind(context.params.id)
.run(); .run();

View File

@ -1,25 +1,38 @@
import { jsonError } from "../../../common.js"; import { jsonError } from "../../../common.js";
import sendEmail from "../../../email.js"; import sendEmail from "../../../email.js";
import { sendPushNotification } from "../../../gcloud.js";
export async function onRequestPost(context: RequestContext) { export async function onRequestPost(context: RequestContext) {
const { appeal } = context.data; const { appeal } = context.data;
if (appeal.fcm_token) {
await sendPushNotification(
context.env,
"Appeal Denied",
`Unfortunately, we have decided to deny your appeal for the following reason: ${
context.data.body.feedback || "No additional details"
}`,
appeal.fcm_token,
);
} else {
const emailResponse = await sendEmail(
appeal.user.email,
context.env.MAILGUN_API_KEY,
"Appeal Denied",
"appeal_denied",
{
note: context.data.body.feedback || "No note provided.",
},
);
const emailResponse = await sendEmail( if (!emailResponse.ok) {
appeal.user.email, console.log(await emailResponse.json());
context.env.MAILGUN_API_KEY, return jsonError("Failed to deny appeal", 500);
"Appeal Denied", }
"appeal_denied",
{
note: context.data.body.feedback || "No note provided.",
},
);
if (!emailResponse.ok) {
console.log(await emailResponse.json());
return jsonError("Failed to deny appeal", 500);
} }
await context.env.D1.prepare("UPDATE appeals SET approved = 0, open = 0 WHERE id = ?;") await context.env.D1.prepare(
"UPDATE appeals SET approved = 0, open = 0 WHERE id = ?;",
)
.bind(context.params.id) .bind(context.params.id)
.run(); .run();