diff --git a/src/app/api/mobile/admin/investment/[id]/invoice/route.ts b/src/app/api/mobile/admin/investment/[id]/invoice/route.ts index 3018a513..5b13c0ab 100644 --- a/src/app/api/mobile/admin/investment/[id]/invoice/route.ts +++ b/src/app/api/mobile/admin/investment/[id]/invoice/route.ts @@ -90,7 +90,7 @@ async function PUT(req: Request, { params }: { params: { id: string } }) { body: `Maaf transaksi kamu telah ditolak ! ${updt?.Investasi?.title}` as NotificationMobileBodyType, type: "announcement", kategoriApp: "INVESTASI", - deepLink: routeUserMobile.investasiTransaction, + deepLink: routeUserMobile.investmentTransaction, }, }); @@ -182,7 +182,7 @@ async function PUT(req: Request, { params }: { params: { id: string } }) { body: `Selamat anda menjadi investor pada investasi ${findInvestasi?.title}` as NotificationMobileBodyType, type: "announcement", kategoriApp: "INVESTASI", - deepLink: routeUserMobile.investasiTransaction, + deepLink: routeUserMobile.investmentTransaction, }, }); @@ -195,7 +195,7 @@ async function PUT(req: Request, { params }: { params: { id: string } }) { body: `Cek daftar investor pada ${findInvestasi?.title}` as NotificationMobileBodyType, type: "announcement", kategoriApp: "INVESTASI", - deepLink: routeUserMobile.investasiDetailPublish({ + deepLink: routeUserMobile.investmentDetailPublish({ id: findInvestasi?.id as string, }), }, diff --git a/src/app/api/mobile/admin/investment/[id]/route.ts b/src/app/api/mobile/admin/investment/[id]/route.ts index 3d5913bb..15e2bbcb 100644 --- a/src/app/api/mobile/admin/investment/[id]/route.ts +++ b/src/app/api/mobile/admin/investment/[id]/route.ts @@ -174,7 +174,7 @@ async function PUT(request: Request, { params }: { params: { id: string } }) { body: `${updatedData.title}` as NotificationMobileBodyType, type: "announcement", kategoriApp: "INVESTASI", - deepLink: routeUserMobile.investasiDetailPublish({ id: id }), + deepLink: routeUserMobile.investmentDetailPublish({ id: id }), }, }); diff --git a/src/app/api/mobile/investment/[id]/document/route.ts b/src/app/api/mobile/investment/[id]/document/route.ts index 684a40fe..ae0a2e82 100644 --- a/src/app/api/mobile/investment/[id]/document/route.ts +++ b/src/app/api/mobile/investment/[id]/document/route.ts @@ -5,6 +5,7 @@ import { NotificationMobileBodyType, NotificationMobileTitleType, } from "../../../../../../../types/type-mobile-notification"; +import { routeAdminMobile, routeUserMobile } from "@/lib/mobile/route-page-mobile"; export { POST, GET, DELETE }; @@ -33,11 +34,14 @@ async function POST(request: Request, { params }: { params: { id: string } }) { investasi: { select: { title: true, + authorId: true, }, }, }, }); + console.log("[CREATED DOCS]", createdDocs); + const findInvestor = await prisma.investasi_Invoice.findMany({ where: { investasiId: id, @@ -45,23 +49,27 @@ async function POST(request: Request, { params }: { params: { id: string } }) { name: "Berhasil", }, }, + select: { + authorId: true, + }, }); + console.log("[FIND INVESTOR]", findInvestor); + // SEND NOTIFICATION - // await sendNotificationMobileToManyUser({ - // recipientIds: findInvestor.map((user) => user.id), - // senderId: data.authorId, - // payload: { - // title: "Cek Dokumen" as NotificationMobileTitleType, - // body: `Ada informasi dokumen yang di\\\ ${createdDocs.investasi?.title}` as NotificationMobileBodyType, - // type: "announcement", - // kategoriApp: "INVESTASI", - // deepLink: routeAdminMobile.investmentDetailPublish({ - // id: update.investasiId as string, - // status: "publish", - // }), - // }, - // }); + await sendNotificationMobileToManyUser({ + recipientIds: findInvestor.map((e) => e.authorId!), + senderId: createdDocs.investasi?.authorId as string, + payload: { + title: "Cek Dokumen" as NotificationMobileTitleType, + body: `Ada dokumen terupdate pada ${createdDocs.investasi?.title}` as NotificationMobileBodyType, + type: "announcement", + kategoriApp: "INVESTASI", + deepLink: routeUserMobile.investmentDetailPublish({ + id: createdDocs.investasiId as string, + }), + }, + }); if (!createdDocs) return NextResponse.json({ diff --git a/src/app/api/mobile/investment/[id]/news/route.ts b/src/app/api/mobile/investment/[id]/news/route.ts index 8571686f..7faa94d6 100644 --- a/src/app/api/mobile/investment/[id]/news/route.ts +++ b/src/app/api/mobile/investment/[id]/news/route.ts @@ -1,6 +1,7 @@ import _ from "lodash"; import { prisma } from "@/lib"; import { NextResponse } from "next/server"; +import { sendNotificationInvestmentAddNews } from "@/lib/mobile/notification/notification-add-news-investment"; export { POST, GET, DELETE }; @@ -21,6 +22,21 @@ async function POST(request: Request, { params }: { params: { id: string } }) { deskripsi: data.deskripsi, imageId: data.imageId, }, + select: { + investasiId: true, + investasi: { + select: { + title: true, + authorId: true, + }, + }, + }, + }); + + await sendNotificationInvestmentAddNews({ + invesmentId: createWithFile.investasiId, + senderId: createWithFile.investasi.authorId as string, + title: createWithFile.investasi.title, }); fixData = createWithFile; @@ -31,6 +47,21 @@ async function POST(request: Request, { params }: { params: { id: string } }) { title: _.startCase(data.title), deskripsi: data.deskripsi, }, + select: { + investasiId: true, + investasi: { + select: { + title: true, + authorId: true, + }, + }, + }, + }); + + await sendNotificationInvestmentAddNews({ + invesmentId: createWitOutFile.investasiId, + senderId: createWitOutFile.investasi.authorId as string, + title: createWitOutFile.investasi.title, }); fixData = createWitOutFile; @@ -111,7 +142,7 @@ async function GET(request: Request, { params }: { params: { id: string } }) { async function DELETE( request: Request, - { params }: { params: { id: string } } + { params }: { params: { id: string } }, ) { const { id } = params; console.log("id", id); diff --git a/src/lib/code-otp-sender.ts b/src/lib/code-otp-sender.ts index a5cd885d..134e20b5 100644 --- a/src/lib/code-otp-sender.ts +++ b/src/lib/code-otp-sender.ts @@ -5,22 +5,22 @@ const sendCodeOtp = async ({ nomor: string; codeOtp: string; }) => { - // const msg = `HIPMI%20-%20Kode%20ini%20bersifat%20RAHASIA%20dan%20JANGAN%20DI%20BAGIKAN%20KEPADA%20SIAPAPUN%2C%20termasuk%20anggota%20ataupun%20pengurus%20HIPMI%20lainnya.%20Kode%20OTP%20anda%3A%20${codeOtp}.`; - // const res = await fetch( - // `https://cld-dkr-prod-wajs-server.wibudev.com/api/wa/code?nom=${nomor}&text=${msg}`, - // { - // cache: "no-cache", - // headers: { - // Authorization: `Bearer ${process.env.WA_SERVER_TOKEN}`, - // }, - // } - // ); + const msg = `HIPMI%20-%20Kode%20ini%20bersifat%20RAHASIA%20dan%20JANGAN%20DI%20BAGIKAN%20KEPADA%20SIAPAPUN%2C%20termasuk%20anggota%20ataupun%20pengurus%20HIPMI%20lainnya.%20Kode%20OTP%20anda%3A%20${codeOtp}.`; const res = await fetch( - `https://wa.wibudev.com/code?nom=${nomor}&text=HIPMI - Kode ini bersifat RAHASIA dan JANGAN DI BAGIKAN KEPADA SIAPAPUN, termasuk anggota ataupun pengurus HIPMI lainnya. - \n - >> Kode OTP anda: ${codeOtp}. - `, + `https://cld-dkr-prod-wajs-server.wibudev.com/api/wa/code?nom=${nomor}&text=${msg}`, + { + cache: "no-cache", + headers: { + Authorization: `Bearer ${process.env.WA_SERVER_TOKEN}`, + }, + }, ); + // const res = await fetch( + // `https://wa.wibudev.com/code?nom=${nomor}&text=HIPMI - Kode ini bersifat RAHASIA dan JANGAN DI BAGIKAN KEPADA SIAPAPUN, termasuk anggota ataupun pengurus HIPMI lainnya. + // \n + // >> Kode OTP anda: ${codeOtp}. + // `, + // ); return res; }; diff --git a/src/lib/mobile/notification/notification-add-news-investment.ts b/src/lib/mobile/notification/notification-add-news-investment.ts new file mode 100644 index 00000000..7bf1d819 --- /dev/null +++ b/src/lib/mobile/notification/notification-add-news-investment.ts @@ -0,0 +1,46 @@ +import { + NotificationMobileBodyType, + NotificationMobileTitleType, +} from "../../../../types/type-mobile-notification"; +import { sendNotificationMobileToManyUser } from "./send-notification"; +import { routeUserMobile } from "../route-page-mobile"; +import prisma from "@/lib/prisma"; + +export const sendNotificationInvestmentAddNews = async ({ + invesmentId, + senderId, + title, +}: { + invesmentId: string; + senderId: string; + title: string; +}) => { + const findInvestor = await prisma.investasi_Invoice.findMany({ + where: { + investasiId: invesmentId, + StatusInvoice: { + name: "Berhasil", + }, + }, + select: { + authorId: true, + }, + }); + + console.log("[FIND INVESTOR]", findInvestor); + + // SEND NOTIFICATION + await sendNotificationMobileToManyUser({ + recipientIds: findInvestor.map((e) => e.authorId!), + senderId: senderId, + payload: { + title: "Berita terbaru" as NotificationMobileTitleType, + body: `Ada berita yang terupdate pada ${title}` as NotificationMobileBodyType, + type: "announcement", + kategoriApp: "INVESTASI", + deepLink: routeUserMobile.investmentDetailPublish({ + id: invesmentId, + }), + }, + }); +}; diff --git a/src/lib/mobile/route-page-mobile.ts b/src/lib/mobile/route-page-mobile.ts index 1679f2c9..9c5749e0 100644 --- a/src/lib/mobile/route-page-mobile.ts +++ b/src/lib/mobile/route-page-mobile.ts @@ -59,6 +59,6 @@ const routeUserMobile = { // INVESTMENT investmentPortofolioByStatus: ({ status }: { status?: StatusApp }) => `/investment/(tabs)/portofolio?status=${status}`, - investasiDetailPublish: ({ id }: { id: string }) => `/investment/${id}`, - investasiTransaction: `/investment/(tabs)/transaction` + investmentDetailPublish: ({ id }: { id: string }) => `/investment/${id}`, + investmentTransaction: `/investment/(tabs)/transaction` };