Skip to content

Commit 9d35c23

Browse files
committed
feat(feedback): included feeback components
1 parent 4c53e4b commit 9d35c23

3 files changed

Lines changed: 27 additions & 26 deletions

File tree

apps/api/src/lib/emails/FeedbackEmail.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,4 +71,3 @@ export const FeedbackEmail = ({
7171
</Html>
7272
);
7373
};
74-

apps/api/src/lib/validations/project.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,8 @@ export const updateRoleSchema = z.object({
3131
});
3232

3333
export const feedbackSchema = z.object({
34-
feedback: z.string().min(1, "Feedback is required").max(5000, "Feedback must be less than 5000 characters"),
34+
feedback: z
35+
.string()
36+
.min(1, "Feedback is required")
37+
.max(5000, "Feedback must be less than 5000 characters"),
3538
});

apps/api/src/routes/project/route.ts

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -136,37 +136,36 @@ router.get("/", async (req: RequestWithSession, res: Response) => {
136136
}
137137
});
138138

139-
router.post(
140-
"/feedback",
141-
async (req: RequestWithSession, res: Response) => {
142-
const session = req.session;
139+
router.post("/feedback", async (req: RequestWithSession, res: Response) => {
140+
const session = req.session;
143141

144-
if (!session || !session.user) {
145-
return res.status(401).json({ error: "unauthenticated" });
146-
}
142+
if (!session || !session.user) {
143+
return res.status(401).json({ error: "unauthenticated" });
144+
}
147145

148-
const userEmail = session.user.email;
149-
const userName = session.user.name;
146+
const userEmail = session.user.email;
147+
const userName = session.user.name;
150148

151-
try {
152-
const body = feedbackSchema.parse(req.body);
149+
try {
150+
const body = feedbackSchema.parse(req.body);
153151

154-
await sendFeedbackEmail({
155-
userEmail,
156-
userName,
157-
feedback: body.feedback,
158-
});
152+
await sendFeedbackEmail({
153+
userEmail,
154+
userName,
155+
feedback: body.feedback,
156+
});
159157

160-
res.status(200).json({ success: true, message: "Feedback submitted successfully" });
161-
} catch (error) {
162-
console.error("Failed to submit feedback:", error);
163-
if (error instanceof Error && error.name === "ZodError") {
164-
return res.status(400).json({ error: "Invalid feedback data" });
165-
}
166-
res.status(500).json({ error: "Failed to submit feedback" });
158+
res
159+
.status(200)
160+
.json({ success: true, message: "Feedback submitted successfully" });
161+
} catch (error) {
162+
console.error("Failed to submit feedback:", error);
163+
if (error instanceof Error && error.name === "ZodError") {
164+
return res.status(400).json({ error: "Invalid feedback data" });
167165
}
166+
res.status(500).json({ error: "Failed to submit feedback" });
168167
}
169-
);
168+
});
170169

171170
router.use("/:projectId", resolveRoleByProjectParams);
172171

0 commit comments

Comments
 (0)