diff --git a/api/src/routes/discussion.ts b/api/src/routes/discussion.ts index 0a8bc55..3b1a4bf 100644 --- a/api/src/routes/discussion.ts +++ b/api/src/routes/discussion.ts @@ -17,10 +17,12 @@ router.post('/comment', async (req: Request, res: Response) => { try { let comment = req.body as DiscussionComment; - console.log(comment); + if (!comment.content || comment.content.trim() === '') { + return res.status(400).json({ error: 'Comment content cannot be empty' }); + } - await postComment(comment, req.user.id); - + let rowID = await postComment(comment, req.user.id); + audit.discussion('comment_posted', { actorId: req.user.id, targetId: rowID }, { parent: comment.post_id }) res.sendStatus(201); } catch (error) { logger.error('app', "Failed to post comments", error); diff --git a/api/src/services/db/discussionService.ts b/api/src/services/db/discussionService.ts index 62d7298..25c4676 100644 --- a/api/src/services/db/discussionService.ts +++ b/api/src/services/db/discussionService.ts @@ -145,4 +145,6 @@ export async function postComment(commentData: DiscussionComment, poster: number if (!result.affectedRows || result.affectedRows !== 1) { throw new Error('Failed to insert comment: expected 1 row to be inserted'); } + + return Number(result.insertId); } \ No newline at end of file diff --git a/api/src/services/logging/auditLog.ts b/api/src/services/logging/auditLog.ts index d70109a..f2fab6a 100644 --- a/api/src/services/logging/auditLog.ts +++ b/api/src/services/logging/auditLog.ts @@ -57,7 +57,7 @@ class AuditLogger { return this.record('course', action, context, data); } - discussion(action: 'created', context: AuditContext, data: any = {}) { + discussion(action: 'created' | 'comment_posted', context: AuditContext, data: any = {}) { return this.record('discussion', action, context, data); } }