- TypeScript 소스 파일 내 모든 import 구문에서 불필요한 `.js` 확장자를 제거하여 모듈 참조 방식을 표준화했습니다. - 핸들러, 서비스, 리포지토리 및 테스트 코드를 포함한 프로젝트 전반의 import 경로를 일관성 있게 정리했습니다.
49 lines
1.5 KiB
TypeScript
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);
|
|
}
|
|
});
|