mmday-firebase/src/handlers/userHandlers.ts
윤정민 c94ce69e4f Remove redundant .js extensions from import paths.
- TypeScript 소스 파일 내 모든 import 구문에서 불필요한 `.js` 확장자를 제거하여 모듈 참조 방식을 표준화했습니다.
- 핸들러, 서비스, 리포지토리 및 테스트 코드를 포함한 프로젝트 전반의 import 경로를 일관성 있게 정리했습니다.
2026-05-06 16:17:51 +09:00

49 lines
1.5 KiB
TypeScript

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);
}
});