UPDATE: Try fix bug
All checks were successful
Build and Release / release (push) Successful in 1m8s

This commit is contained in:
2026-05-04 15:45:30 +07:00
parent 0744121566
commit 57c2e3b5f3
4 changed files with 45 additions and 38 deletions

View File

@@ -451,34 +451,38 @@ UPDATE submissions
SET
status = COALESCE($1, status),
reviewed_by = COALESCE($2, reviewed_by),
reviewed_at = CASE WHEN $1 IS NOT NULL THEN NOW() ELSE reviewed_at END,
review_note = COALESCE($3, review_note),
content = COALESCE($4, content)
FROM projects p, users u
LEFT JOIN user_profiles up ON u.id = up.user_id
LEFT JOIN users ru ON submissions.reviewed_by = ru.id
LEFT JOIN user_profiles rup ON ru.id = rup.user_id
WHERE submissions.id = $5
AND submissions.project_id = p.id
AND submissions.user_id = u.id
RETURNING
submissions.id, submissions.project_id, submissions.commit_id, submissions.user_id, submissions.created_at, submissions.status, submissions.reviewed_by, submissions.reviewed_at, submissions.review_note, submissions.content, submissions.is_deleted,
p.title AS project_title, p.description AS project_description,
json_build_object(
'id', u.id,
'email', u.email,
'display_name', up.display_name,
'full_name', up.full_name,
'avatar_url', up.avatar_url
(SELECT title FROM projects WHERE id = submissions.project_id) AS project_title,
(SELECT description FROM projects WHERE id = submissions.project_id) AS project_description,
(
SELECT json_build_object(
'id', u.id,
'email', u.email,
'display_name', up.display_name,
'full_name', up.full_name,
'avatar_url', up.avatar_url
)
FROM users u
LEFT JOIN user_profiles up ON u.id = up.user_id
WHERE u.id = submissions.user_id
)::json AS user,
CASE WHEN submissions.reviewed_by IS NOT NULL THEN
json_build_object(
(
SELECT json_build_object(
'id', ru.id,
'email', ru.email,
'display_name', rup.display_name,
'full_name', rup.full_name,
'avatar_url', rup.avatar_url
)::json
ELSE NULL::json END AS reviewer
)
FROM users ru
LEFT JOIN user_profiles rup ON ru.id = rup.user_id
WHERE ru.id = submissions.reviewed_by
)::json AS reviewer
`
type UpdateSubmissionParams struct {

View File

@@ -558,14 +558,13 @@ func (s *submissionService) UpdateSubmissionStatus(ctx context.Context, reviewer
}
updatedSubmission, err := submissionRepo.Update(ctx, arg)
if err != nil {
return nil, fiber.NewError(fiber.StatusInternalServerError, "Failed to update submission status")
return nil, fiber.NewError(fiber.StatusInternalServerError, "Failed to update submission status: " + err.Error())
}
err = tx.Commit(ctx)
if err != nil {
return nil, fiber.NewError(fiber.StatusInternalServerError, "Failed to commit transaction")
return nil, fiber.NewError(fiber.StatusInternalServerError, "Failed to commit transaction: " + err.Error())
}
if status == constants.StatusTypeApproved {