diff --git a/functions/src/routers/reactionRouter.ts b/functions/src/routers/reactionRouter.ts index b3b98b8..043733c 100644 --- a/functions/src/routers/reactionRouter.ts +++ b/functions/src/routers/reactionRouter.ts @@ -1,7 +1,7 @@ import express, { Request, Response } from "express"; import admin from "firebase-admin"; import { logger } from "firebase-functions"; -import { Reaction, reactionTypeMap } from "../types"; +import { Reaction, ReactionTypeMap } from "../types"; const router = express.Router(); const db = admin.firestore(); @@ -27,15 +27,16 @@ router.put("/:goalId", async (req: Request, res: Response) => { const goalData = goalDoc.data(); - const currentReactions = goalData?.post?.reaction || {}; + const currentReactions = goalData?.reaction || {}; // 元のリアクションデータ if (!reactionType) { // リアクション削除 delete currentReactions[userId]; } else { // リアクション追加 + // リアクションタイプが正しいか確認 const validReactionTypes = [ - ...reactionTypeMap.success, - ...reactionTypeMap.failed, + ...ReactionTypeMap.success, + ...ReactionTypeMap.failed, ]; if (!validReactionTypes.includes(reactionType)) { return res.status(400).json({ message: "Invalid reactionType" }); @@ -45,10 +46,8 @@ router.put("/:goalId", async (req: Request, res: Response) => { } await goalRef.update({ - post: { - ...goalData?.post, - reaction: currentReactions, - }, + ...goalData, + reaction: currentReactions, }); return res.json({ message: "Reaction updated successfully", goalId }); diff --git a/functions/src/types.ts b/functions/src/types.ts index 45f04b8..d7e5433 100644 --- a/functions/src/types.ts +++ b/functions/src/types.ts @@ -44,7 +44,7 @@ export interface ReactionType { failed: "sad" | "angry" | "muscle"; } -export const reactionTypeMap = { +export const ReactionTypeMap = { success: ["laugh", "surprised", "clap"] as const, failed: ["sad", "angry", "muscle"] as const, };