API – Donation (Admin & User)

- src/app/api/mobile/admin/donation/[id]/route.ts
- src/app/api/mobile/admin/donation/[id]/invoice/route.ts
- src/app/api/mobile/donation/route.ts
- src/app/api/mobile/donation/[id]/invoice/route.ts

Routing Helper
- src/lib/mobile/route-page-mobile.ts

### No Issue
This commit is contained in:
2026-01-23 17:04:43 +08:00
parent 048b7b6094
commit 8ccf1f2b6e
5 changed files with 197 additions and 12 deletions

View File

@@ -1,6 +1,9 @@
import { sendNotificationMobileToManyUser } from "@/lib/mobile/notification/send-notification";
import prisma from "@/lib/prisma";
import _ from "lodash";
import { NextResponse } from "next/server";
import { NotificationMobileBodyType } from "../../../../../types/type-mobile-notification";
import { routeAdminMobile } from "@/lib/mobile/route-page-mobile";
export { POST };
@@ -49,6 +52,26 @@ async function POST(request: Request) {
console.log("[DATA DONASI]", dataDonasi);
const adminUsers = await prisma.user.findMany({
where: { masterUserRoleId: "2", NOT: { id: data.authorId } },
select: { id: true },
});
// SEND NOTIFICATION
await sendNotificationMobileToManyUser({
recipientIds: adminUsers.map((user) => user.id),
senderId: data.authorId,
payload: {
title: "Pengajuan Review Baru",
body: data.title as NotificationMobileBodyType,
type: "announcement",
deepLink: routeAdminMobile.donationByStatus({ status: "review" }),
kategoriApp: "DONASI",
},
});
if (!dataDonasi)
return NextResponse.json({
status: 400,