39 lines
1.4 KiB
TypeScript

"use server";
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";
import { updateUserPushTokenByAppleId } from "~/server/functions";
import { middleware } from "~/middleware";
type UpdatePushTokenRequest = {
appleId: string;
pushToken: string;
}
export async function POST(request: NextRequest) {
const middlewareResponse = await middleware(request);
if (middlewareResponse) return middlewareResponse;
try {
const { appleId, pushToken } = await request.json() as UpdatePushTokenRequest;
console.log("Received request:", { appleId, pushToken });
if (!appleId || !pushToken)
return NextResponse.json({ message: "Missing required fields" }, { status: 400 });
console.log("Updating push token for user:", appleId);
const result = await updateUserPushTokenByAppleId(appleId, pushToken);
if (result.success) {
console.log("Push token updated successfully");
return NextResponse.json({ message: "Push token updated successfully" });
} else {
throw new Error("Failed to update push token");
}
} catch (error) {
console.error("Error in updatePushToken:", error);
if (error instanceof Error) {
return NextResponse.json({ message: error.message }, { status: 400 });
}
return NextResponse.json({ message: "Error updating push token" }, { status: 500 });
}
}