From 67055e08cbbb0c555068668315cb3ffd2a975134 Mon Sep 17 00:00:00 2001 From: AzenKain Date: Tue, 28 Apr 2026 10:53:43 +0700 Subject: [PATCH] UPDATE: Fix bug --- db/query/project.sql | 18 +++++++++--------- db/query/submission.sql | 16 ++++++++-------- internal/gen/sqlc/project.sql.go | 18 +++++++++--------- internal/gen/sqlc/submission.sql.go | 16 ++++++++-------- 4 files changed, 34 insertions(+), 34 deletions(-) diff --git a/db/query/project.sql b/db/query/project.sql index b626ade..59d5a93 100644 --- a/db/query/project.sql +++ b/db/query/project.sql @@ -61,18 +61,18 @@ WHERE p.id = $1 AND p.is_deleted = false; -- name: UpdateProject :one UPDATE projects SET - title = COALESCE(sqlc.narg('title'), title), - description = COALESCE(sqlc.narg('description'), description), - latest_commit_id = COALESCE(sqlc.narg('latest_commit_id'), latest_commit_id), - project_status = COALESCE(sqlc.narg('status'), status), - locked_by = COALESCE(sqlc.narg('locked_by'), locked_by), + title = COALESCE(sqlc.narg('title'), projects.title), + description = COALESCE(sqlc.narg('description'), projects.description), + latest_commit_id = COALESCE(sqlc.narg('latest_commit_id'), projects.latest_commit_id), + project_status = COALESCE(sqlc.narg('status'), projects.project_status), + locked_by = COALESCE(sqlc.narg('locked_by'), projects.locked_by), updated_at = NOW() -FROM projects p -JOIN users u ON p.user_id = u.id +FROM users u LEFT JOIN user_profiles up ON u.id = up.user_id -WHERE p.id = sqlc.arg('id') AND p.is_deleted = false +WHERE projects.id = sqlc.arg('id') AND projects.is_deleted = false + AND projects.user_id = u.id RETURNING - p.*, + projects.*, json_build_object( 'id', u.id, 'email', u.email, diff --git a/db/query/submission.sql b/db/query/submission.sql index ad633e0..2983767 100644 --- a/db/query/submission.sql +++ b/db/query/submission.sql @@ -64,14 +64,14 @@ SET reviewed_by = COALESCE(sqlc.narg('reviewed_by'), reviewed_by), review_note = COALESCE(sqlc.narg('review_note'), review_note), content = COALESCE(sqlc.narg('content'), content) -FROM submissions s -JOIN users u ON s.user_id = u.id +FROM users u LEFT JOIN user_profiles up ON u.id = up.user_id -LEFT JOIN users ru ON s.reviewed_by = ru.id +LEFT JOIN users ru ON submissions.reviewed_by = ru.id LEFT JOIN user_profiles rup ON ru.id = rup.user_id -WHERE s.id = sqlc.arg('id') +WHERE submissions.id = sqlc.arg('id') + AND submissions.user_id = u.id RETURNING - s.id, s.project_id, s.commit_id, s.user_id, s.created_at, s.status, s.reviewed_by, s.reviewed_at, s.review_note, s.content, s.is_deleted, + 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, json_build_object( 'id', u.id, 'email', u.email, @@ -79,7 +79,7 @@ RETURNING 'full_name', up.full_name, 'avatar_url', up.avatar_url )::json AS user, - CASE WHEN s.reviewed_by IS NOT NULL THEN + CASE WHEN submissions.reviewed_by IS NOT NULL THEN json_build_object( 'id', ru.id, 'email', ru.email, @@ -120,7 +120,7 @@ LEFT JOIN users ru ON s.reviewed_by = ru.id LEFT JOIN user_profiles rup ON ru.id = rup.user_id WHERE s.is_deleted = false AND (sqlc.narg('project_id')::uuid IS NULL OR s.project_id = sqlc.narg('project_id')) - AND (sqlc.narg('user_ids')::uuid[] IS NULL OR uv.user_id = ANY(sqlc.narg('user_ids')::uuid[])) + AND (sqlc.narg('user_ids')::uuid[] IS NULL OR s.user_id = ANY(sqlc.narg('user_ids')::uuid[])) AND (sqlc.narg('reviewed_by')::uuid IS NULL OR s.reviewed_by = sqlc.narg('reviewed_by')) AND ( sqlc.narg('statuses')::smallint[] IS NULL @@ -150,7 +150,7 @@ SELECT count(*) FROM submissions s WHERE s.is_deleted = false AND (sqlc.narg('project_id')::uuid IS NULL OR s.project_id = sqlc.narg('project_id')) - AND (sqlc.narg('user_ids')::uuid[] IS NULL OR uv.user_id = ANY(sqlc.narg('user_ids')::uuid[])) + AND (sqlc.narg('user_ids')::uuid[] IS NULL OR s.user_id = ANY(sqlc.narg('user_ids')::uuid[])) AND (sqlc.narg('reviewed_by')::uuid IS NULL OR s.reviewed_by = sqlc.narg('reviewed_by')) AND ( sqlc.narg('statuses')::smallint[] IS NULL diff --git a/internal/gen/sqlc/project.sql.go b/internal/gen/sqlc/project.sql.go index 6b64989..02b4548 100644 --- a/internal/gen/sqlc/project.sql.go +++ b/internal/gen/sqlc/project.sql.go @@ -630,18 +630,18 @@ func (q *Queries) UpdateLatestCommit(ctx context.Context, arg UpdateLatestCommit const updateProject = `-- name: UpdateProject :one UPDATE projects SET - title = COALESCE($1, title), - description = COALESCE($2, description), - latest_commit_id = COALESCE($3, latest_commit_id), - project_status = COALESCE($4, status), - locked_by = COALESCE($5, locked_by), + title = COALESCE($1, projects.title), + description = COALESCE($2, projects.description), + latest_commit_id = COALESCE($3, projects.latest_commit_id), + project_status = COALESCE($4, projects.project_status), + locked_by = COALESCE($5, projects.locked_by), updated_at = NOW() -FROM projects p -JOIN users u ON p.user_id = u.id +FROM users u LEFT JOIN user_profiles up ON u.id = up.user_id -WHERE p.id = $6 AND p.is_deleted = false +WHERE projects.id = $6 AND projects.is_deleted = false + AND projects.user_id = u.id RETURNING - p.id, p.title, p.description, p.latest_commit_id, p.project_status, p.locked_by, p.is_deleted, p.user_id, p.created_at, p.updated_at, + projects.id, projects.title, projects.description, projects.latest_commit_id, projects.project_status, projects.locked_by, projects.is_deleted, projects.user_id, projects.created_at, projects.updated_at, json_build_object( 'id', u.id, 'email', u.email, diff --git a/internal/gen/sqlc/submission.sql.go b/internal/gen/sqlc/submission.sql.go index 9c0394f..ec919eb 100644 --- a/internal/gen/sqlc/submission.sql.go +++ b/internal/gen/sqlc/submission.sql.go @@ -16,7 +16,7 @@ SELECT count(*) FROM submissions s WHERE s.is_deleted = false AND ($1::uuid IS NULL OR s.project_id = $1) - AND ($2::uuid[] IS NULL OR uv.user_id = ANY($2::uuid[])) + AND ($2::uuid[] IS NULL OR s.user_id = ANY($2::uuid[])) AND ($3::uuid IS NULL OR s.reviewed_by = $3) AND ( $4::smallint[] IS NULL @@ -320,7 +320,7 @@ LEFT JOIN users ru ON s.reviewed_by = ru.id LEFT JOIN user_profiles rup ON ru.id = rup.user_id WHERE s.is_deleted = false AND ($1::uuid IS NULL OR s.project_id = $1) - AND ($2::uuid[] IS NULL OR uv.user_id = ANY($2::uuid[])) + AND ($2::uuid[] IS NULL OR s.user_id = ANY($2::uuid[])) AND ($3::uuid IS NULL OR s.reviewed_by = $3) AND ( $4::smallint[] IS NULL @@ -429,14 +429,14 @@ SET reviewed_by = COALESCE($2, reviewed_by), review_note = COALESCE($3, review_note), content = COALESCE($4, content) -FROM submissions s -JOIN users u ON s.user_id = u.id +FROM users u LEFT JOIN user_profiles up ON u.id = up.user_id -LEFT JOIN users ru ON s.reviewed_by = ru.id +LEFT JOIN users ru ON submissions.reviewed_by = ru.id LEFT JOIN user_profiles rup ON ru.id = rup.user_id -WHERE s.id = $5 +WHERE submissions.id = $5 + AND submissions.user_id = u.id RETURNING - s.id, s.project_id, s.commit_id, s.user_id, s.created_at, s.status, s.reviewed_by, s.reviewed_at, s.review_note, s.content, s.is_deleted, + 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, json_build_object( 'id', u.id, 'email', u.email, @@ -444,7 +444,7 @@ RETURNING 'full_name', up.full_name, 'avatar_url', up.avatar_url )::json AS user, - CASE WHEN s.reviewed_by IS NOT NULL THEN + CASE WHEN submissions.reviewed_by IS NOT NULL THEN json_build_object( 'id', ru.id, 'email', ru.email,