import { onRequest } from "firebase-functions/https"; import { requireAuthToken } from "../middleware/auth"; import { sendError } from "../middleware/errors"; import { checkNickname, createMe, deleteMe, getMe, updateMe, } from "../services/userService"; export const user = onRequest(async (req, res) => { try { if (req.method === "GET" && req.path === "/check-nickname") { const token = await requireAuthToken(req); const result = await checkNickname(token, req.query.displayName); res.status(200).json(result); return; } if (req.method === "GET" && req.path === "/") { const token = await requireAuthToken(req); const u = await getMe(token); res.status(200).json({ user: { uid: token.uid, ...u } }); return; } if (req.method === "POST" && req.path === "/") { const token = await requireAuthToken(req); const u = await createMe(token, req.body ?? {}); res.status(201).json({ user: { uid: token.uid, ...u } }); return; } if (req.method === "PATCH" && req.path === "/") { const token = await requireAuthToken(req); const u = await updateMe(token, req.body ?? {}); res.status(200).json({ user: { uid: token.uid, ...u } }); return; } if (req.method === "DELETE" && req.path === "/") { const token = await requireAuthToken(req); await deleteMe(token); res.status(204).send(); return; } res.status(404).json({ error: "not found" }); } catch (err) { sendError(res, err); } });