From a516dac79e71c6f6916f54b2f5421934ad07a577 Mon Sep 17 00:00:00 2001 From: amel Date: Mon, 30 Jun 2025 11:03:30 +0800 Subject: [PATCH] upd: firebase admin Deskripsi: - percobaan api elysia firebase admin fcm No Issues --- bun.lockb | Bin 366908 -> 379380 bytes package.json | 4 ++ src/app/api/fcm/route.ts | 8 --- src/app/api/mobile/fcm/[[...slug]]/route.ts | 21 ++++++ src/app/api/mobile/route.ts | 76 -------------------- src/app/api/version-app/route.ts | 2 +- src/lib/firebase/fcm.ts | 66 +++++++++++++++++ xfcm/admin.ts | 13 ---- xfcm/send.ts | 38 ---------- 9 files changed, 92 insertions(+), 136 deletions(-) delete mode 100644 src/app/api/fcm/route.ts create mode 100644 src/app/api/mobile/fcm/[[...slug]]/route.ts delete mode 100644 src/app/api/mobile/route.ts create mode 100644 src/lib/firebase/fcm.ts delete mode 100644 xfcm/admin.ts delete mode 100644 xfcm/send.ts diff --git a/bun.lockb b/bun.lockb index da3ca6e14a601d39a97c23383377abbb903677b0..11774f442cbb95213eea92c7b03f61b82042a70e 100755 GIT binary patch delta 93606 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 diff --git a/package.json b/package.json index 7888c66..4adb9e8 100644 --- a/package.json +++ b/package.json @@ -39,8 +39,10 @@ "@tiptap/pm": "^2.11.7", "@tiptap/react": "^2.4.0", "@tiptap/starter-kit": "^2.4.0", + "@types/bun": "^1.2.17", "@types/busboy": "^1.5.4", "@types/lodash": "^4.17.6", + "@types/minimist": "^1.2.5", "@types/multer": "^1.4.12", "@types/web-push": "^3.6.3", "busboy": "^1.6.0", @@ -56,6 +58,7 @@ "iron-session": "^8.0.2", "jose": "^5.9.2", "lodash": "^4.17.21", + "minimist": "^1.2.8", "moment": "^2.30.1", "multer": "^1.4.5-lts.2", "next": "14.2.4", @@ -71,6 +74,7 @@ "rrule": "^2.8.1", "sharp": "^0.33.5", "supabase": "^1.192.5", + "tsx": "^4.20.3", "web-push": "^3.6.7", "wibu-cli": "^1.0.91", "wibu-pkg": "^1.0.63", diff --git a/src/app/api/fcm/route.ts b/src/app/api/fcm/route.ts deleted file mode 100644 index 6723548..0000000 --- a/src/app/api/fcm/route.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { NextResponse } from "next/server"; -import { sendFCM } from "../../../../xfcm/send"; - -export const GET = () => { - const token = "cRz96GHKTRaQaRJ35e8Hxa:APA91bEUSxE0VPbqKSzseQ_zGhbYsDofMexKykRw7o_3z2aPM9YFmZbeA2enrmb3qjdZ2g4-QQtiNHAyaZqAT1ITOrwo9jVJlShTeABmEFYP5GLEUZ3dlLc"; - sendFCM(token, "Test dari Local", "Ini hanya percobaan notifikasi dari script."); - return NextResponse.json({ success: true, message: "Sukses" }, { status: 200 }); -} \ No newline at end of file diff --git a/src/app/api/mobile/fcm/[[...slug]]/route.ts b/src/app/api/mobile/fcm/[[...slug]]/route.ts new file mode 100644 index 0000000..13abc6a --- /dev/null +++ b/src/app/api/mobile/fcm/[[...slug]]/route.ts @@ -0,0 +1,21 @@ +import { sendFCM } from "@/lib/firebase/fcm"; +import elysia from "elysia"; + + +const ApiV2 = new elysia({ + prefix: "/api/mobile/fcm" +}) + .get("/", async () => { + const token = [ + 'c89yuexsS_uc1tOErVPu5a:APA91bEb6tEKXAfReZjFVJ2mMyOzoW_RXryLSnSJTpbIVV3G0L_DCNkLuRvJ02Ip-Erz88QCQBAt-C2SN8eCRxu3-v1sBzXzKPtDv-huXpkjXsyrkifqvUo', + 'cRz96GHKTRaQaRJ35e8Hxa:APA91bEUSxE0VPbqKSzseQ_zGhbYsDofMexKykRw7o_3z2aPM9YFmZbeA2enrmb3qjdZ2g4-QQtiNHAyaZqAT1ITOrwo9jVJlShTeABmEFYP5GLEUZ3dlLc' + ] + + sendFCM(token, "Test dari Production STG", "Ini hanya percobaan notifikasi dari script."); + return { + data: "success elysia api" + }; + }) + + +export const GET = ApiV2.handle; \ No newline at end of file diff --git a/src/app/api/mobile/route.ts b/src/app/api/mobile/route.ts deleted file mode 100644 index 3a5f199..0000000 --- a/src/app/api/mobile/route.ts +++ /dev/null @@ -1,76 +0,0 @@ -import prisma from '@/lib/prisma'; -import admin from 'firebase-admin'; -import { NextResponse } from "next/server"; - -export async function GET(request: Request) { - try { - if (!admin.apps.length) { - const serviceAccount = require("../../../../service_key.json"); - admin.initializeApp({ - credential: admin.credential.cert(serviceAccount), - }); - } - - const token = [ - // 'fPfBeTn4R4KsHhDw-8Edj0:APA91bGBjguuZsMhisJua_Wa3m7z7vBCE08vjyDBScmN0eIRgpfINlDx4SI6-upn-rr6tTAcoPxeQkxxbEsohcUbbV5DjUyIG4xR6wuvKOJMp3Mr4rNWFv8', - // 'c89yuexsS_uc1tOErVPu5a:APA91bEb6tEKXAfReZjFVJ2mMyOzoW_RXryLSnSJTpbIVV3G0L_DCNkLuRvJ02Ip-Erz88QCQBAt-C2SN8eCRxu3-v1sBzXzKPtDv-huXpkjXsyrkifqvUo', - 'cRz96GHKTRaQaRJ35e8Hxa:APA91bEUSxE0VPbqKSzseQ_zGhbYsDofMexKykRw7o_3z2aPM9YFmZbeA2enrmb3qjdZ2g4-QQtiNHAyaZqAT1ITOrwo9jVJlShTeABmEFYP5GLEUZ3dlLc' - ] - - - const message = { - notification: { - title: 'New Update :)', - body: 'Check out the latest features in our app.', - }, - data: { - id: 'cm1eqwkwj00067j2bzejyh9u7', - category: 'division', - content: 'cm1eqwkvu00017j2b8qnisp9g', - }, - }; - - admin.messaging().sendEachForMulticast({ - tokens: token, - ...message, - }) - .then(async (response) => { - // Handle successful sends and failed tokens - if (response.failureCount > 0) { - const failedTokens: any[] = []; - response.responses.forEach((resp, idx) => { - if (!resp.success) { - failedTokens.push(token[idx]); - } - }); - const deleteToken = await prisma.tokenDeviceUser.deleteMany({ - where: { - token: { - in: failedTokens - } - } - }); - } - }) - .catch((error) => { - console.error('Error sending message:', error); - }); - - // const message = { - // notification: { - // title: 'Dari API Localhost Coba', - // body: 'Hello World Coba', - // }, - - // token: 'c89yuexsS_uc1tOErVPu5a:APA91bEb6tEKXAfReZjFVJ2mMyOzoW_RXryLSnSJTpbIVV3G0L_DCNkLuRvJ02Ip-Erz88QCQBAt-C2SN8eCRxu3-v1sBzXzKPtDv-huXpkjXsyrkifqvUo', - - // }; - - // const response = await admin.messaging().send(message); - - return NextResponse.json({ success: true, message: `Sukses ${admin.apps.length}` }, { status: 200 }); - } catch (error) { - console.error(error); - return NextResponse.json({ success: false, message: "Gagal", reason: (error as Error).message, }, { status: 500 }); - } -} \ No newline at end of file diff --git a/src/app/api/version-app/route.ts b/src/app/api/version-app/route.ts index bc31d4e..b224b1e 100644 --- a/src/app/api/version-app/route.ts +++ b/src/app/api/version-app/route.ts @@ -2,7 +2,7 @@ import { NextResponse } from "next/server"; export async function GET(request: Request) { try { - return NextResponse.json({ success: true, version: "1.5.0", tahap: "beta", update: "- update api mobile; - firebase admin" }, { status: 200 }); + return NextResponse.json({ success: true, version: "1.5.1", tahap: "beta", update: "-percobaan firebase admin fcm" }, { status: 200 }); } catch (error) { console.error(error); return NextResponse.json({ success: false, version: "Gagal mendapatkan version, coba lagi nanti (error: 500)", reason: (error as Error).message, }, { status: 500 }); diff --git a/src/lib/firebase/fcm.ts b/src/lib/firebase/fcm.ts new file mode 100644 index 0000000..1e8baf1 --- /dev/null +++ b/src/lib/firebase/fcm.ts @@ -0,0 +1,66 @@ +import admin from "firebase-admin"; + +// Inisialisasi admin (hanya sekali) +if (!admin.apps.length) { + admin.initializeApp({ + credential: admin.credential.cert({ + projectId: process.env.GOOGLE_PROJECT_ID, + privateKey: process.env.GOOGLE_PRIVATE_KEY?.replace(/\\n/g, '\n'), + clientEmail: process.env.GOOGLE_CLIENT_EMAIL, + }), + }); +} + +/** + * Kirim push notifikasi ke FCM token + */ +export async function sendFCM(token: string[], title: string, body: string) { + const message = { + notification: { + title, + body, + }, + data: { + id: 'cm1eqwkwj00067j2bzejyh9u7', + category: 'division', + content: 'cm1eqwkvu00017j2b8qnisp9g', + }, + apns: { + payload: { + aps: { + contentAvailable: true, + alert: { + title, + body, + }, + }, + }, + }, + token, + }; + + try { + const result = await admin.messaging().sendEachForMulticast({ + tokens: token, + ...message, + }) + console.log("✅ FCM berhasil dikirim:", result); + if (result.failureCount > 0) { + const failedTokens: any[] = []; + result.responses.forEach((resp, idx) => { + if (!resp.success) { + failedTokens.push(token[idx]); + } + }); + // const deleteToken = await prisma.tokenDeviceUser.deleteMany({ + // where: { + // token: { + // in: failedTokens + // } + // } + // }); + } + } catch (err) { + console.error("❌ Gagal mengirim FCM:", err); + } +} \ No newline at end of file diff --git a/xfcm/admin.ts b/xfcm/admin.ts deleted file mode 100644 index 35b185a..0000000 --- a/xfcm/admin.ts +++ /dev/null @@ -1,13 +0,0 @@ -import admin from "firebase-admin"; - -if (!admin.apps.length) { - admin.initializeApp({ - credential: admin.credential.cert({ - projectId: process.env.GOOGLE_PROJECT_ID, - privateKey: process.env.GOOGLE_PRIVATE_KEY?.replace(/\\n/g, '\n'), - clientEmail: process.env.GOOGLE_CLIENT_EMAIL, - }), - }); -} - -export default admin; diff --git a/xfcm/send.ts b/xfcm/send.ts deleted file mode 100644 index 6377745..0000000 --- a/xfcm/send.ts +++ /dev/null @@ -1,38 +0,0 @@ -import admin from "firebase-admin"; - -// Inisialisasi admin (hanya sekali) -if (!admin.apps.length) { - admin.initializeApp({ - credential: admin.credential.cert({ - projectId: process.env.GOOGLE_PROJECT_ID, - privateKey: process.env.GOOGLE_PRIVATE_KEY?.replace(/\\n/g, '\n'), - clientEmail: process.env.GOOGLE_CLIENT_EMAIL, - }), - }); -} - -/** - * Kirim push notifikasi ke FCM token - */ -export async function sendFCM(token: string, title: string, body: string) { - const message = { - token, - notification: { - title, - body, - }, - data: { - tested: "true" - } - }; - - try { - const result = await admin.messaging().send(message); - console.log("✅ FCM berhasil dikirim:", result); - } catch (err) { - console.error("❌ Gagal mengirim FCM:", err); - } -} - -// const token = "cRz96GHKTRaQaRJ35e8Hxa:APA91bEUSxE0VPbqKSzseQ_zGhbYsDofMexKykRw7o_3z2aPM9YFmZbeA2enrmb3qjdZ2g4-QQtiNHAyaZqAT1ITOrwo9jVJlShTeABmEFYP5GLEUZ3dlLc"; -// sendFCM(token, "Test dari Local", "Ini hanya percobaan notifikasi dari script.");