aboutsummaryrefslogtreecommitdiffstats
path: root/middleware/src/app/api/notifications/get/route.ts
diff options
context:
space:
mode:
Diffstat (limited to 'middleware/src/app/api/notifications/get/route.ts')
-rw-r--r--middleware/src/app/api/notifications/get/route.ts26
1 files changed, 26 insertions, 0 deletions
diff --git a/middleware/src/app/api/notifications/get/route.ts b/middleware/src/app/api/notifications/get/route.ts
new file mode 100644
index 0000000..344e41b
--- /dev/null
+++ b/middleware/src/app/api/notifications/get/route.ts
@@ -0,0 +1,26 @@
+import { Redis } from "@upstash/redis";
+
+export const runtime = "edge";
+
+const redis = new Redis({
+ url: process.env.KV_REST_API_URL!,
+ token: process.env.KV_REST_API_TOKEN!,
+});
+
+// /api/fcm/list?topic=<topic>
+export async function GET(req: Request) {
+ const { searchParams } = new URL(req.url);
+ const topic = searchParams.get("topic");
+
+ if (!topic) {
+ return new Response(JSON.stringify({ error: "Missing topic" }), { status: 400 });
+ }
+
+ const key = `fcm-${topic}`;
+ const tokens = await redis.smembers<string[]>(key);
+
+ return new Response(JSON.stringify({ topic, tokens }), {
+ status: 200,
+ headers: { "Content-Type": "application/json" },
+ });
+}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage