From 526a1ca20f1d057ccad77985f6d4cd19e6c8acf5 Mon Sep 17 00:00:00 2001 From: Pavel Date: Fri, 17 May 2024 17:03:02 +0300 Subject: [PATCH 1/3] refactor template copy --- dal/db_query/queries.sql | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/dal/db_query/queries.sql b/dal/db_query/queries.sql index ae33bc6..220d2c8 100644 --- a/dal/db_query/queries.sql +++ b/dal/db_query/queries.sql @@ -657,7 +657,7 @@ SELECT id FROM quiz WHERE accountid = $1; --- name: TemplateCopy :exec +-- name: TemplateCopy :one WITH copied_quiz AS ( INSERT INTO quiz (accountid, name,fingerprinting,repeatable,note_prevented,mail_notifications,unique_answers,super,group_id, description, config, status,limit_answers,due_to,time_of_passing,pausable,version,version_comment, parent_ids) SELECT $1 AS accountid,name,fingerprinting,repeatable,note_prevented,mail_notifications,unique_answers,super,group_id, description, config, 'stop' AS status,limit_answers,due_to,time_of_passing,pausable,version,version_comment, parent_ids @@ -669,7 +669,8 @@ INSERT INTO question (quiz_id, title, description, questiontype, required, delet SELECT cq.id AS quiz_id, q.title, q.description, q.questiontype, q.required, q.deleted, q.page, q.content, q.version, q.parent_ids FROM question q JOIN quiz old ON q.quiz_id = old.id - JOIN copied_quiz cq ON old.qid = $2; + JOIN copied_quiz cq ON old.qid = $2 +RETURNING cq.id; -- amo methods: From 7cc340ddf942705bedd1f9ca4d34e304bd007392 Mon Sep 17 00:00:00 2001 From: Pavel Date: Mon, 13 May 2024 15:36:12 +0300 Subject: [PATCH 2/3] update sqlcgen --- dal/db_query/queries.sql | 2 +- dal/sqlcgen/queries.sql.go | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/dal/db_query/queries.sql b/dal/db_query/queries.sql index 220d2c8..59d4ea4 100644 --- a/dal/db_query/queries.sql +++ b/dal/db_query/queries.sql @@ -670,7 +670,7 @@ SELECT cq.id AS quiz_id, q.title, q.description, q.questiontype, q.required, q.d FROM question q JOIN quiz old ON q.quiz_id = old.id JOIN copied_quiz cq ON old.qid = $2 -RETURNING cq.id; +RETURNING quiz_id; -- amo methods: diff --git a/dal/sqlcgen/queries.sql.go b/dal/sqlcgen/queries.sql.go index 50df311..9bf7baf 100644 --- a/dal/sqlcgen/queries.sql.go +++ b/dal/sqlcgen/queries.sql.go @@ -3506,7 +3506,7 @@ func (q *Queries) SoftDeleteResultByID(ctx context.Context, id int64) error { return err } -const templateCopy = `-- name: TemplateCopy :exec +const templateCopy = `-- name: TemplateCopy :one WITH copied_quiz AS ( INSERT INTO quiz (accountid, name,fingerprinting,repeatable,note_prevented,mail_notifications,unique_answers,super,group_id, description, config, status,limit_answers,due_to,time_of_passing,pausable,version,version_comment, parent_ids) SELECT $1 AS accountid,name,fingerprinting,repeatable,note_prevented,mail_notifications,unique_answers,super,group_id, description, config, 'stop' AS status,limit_answers,due_to,time_of_passing,pausable,version,version_comment, parent_ids @@ -3519,6 +3519,7 @@ SELECT cq.id AS quiz_id, q.title, q.description, q.questiontype, q.required, q.d FROM question q JOIN quiz old ON q.quiz_id = old.id JOIN copied_quiz cq ON old.qid = $2 +RETURNING quiz_id ` type TemplateCopyParams struct { @@ -3526,9 +3527,11 @@ type TemplateCopyParams struct { Qid uuid.NullUUID `db:"qid" json:"qid"` } -func (q *Queries) TemplateCopy(ctx context.Context, arg TemplateCopyParams) error { - _, err := q.db.ExecContext(ctx, templateCopy, arg.Accountid, arg.Qid) - return err +func (q *Queries) TemplateCopy(ctx context.Context, arg TemplateCopyParams) (int64, error) { + row := q.db.QueryRowContext(ctx, templateCopy, arg.Accountid, arg.Qid) + var quiz_id int64 + err := row.Scan(&quiz_id) + return quiz_id, err } const updateFieldRules = `-- name: UpdateFieldRules :exec From 18672a757abcdbdf50fe73cde890bdf769a67e7b Mon Sep 17 00:00:00 2001 From: Pavel Date: Fri, 17 May 2024 17:11:41 +0300 Subject: [PATCH 3/3] update quiz repo method tmplCopy --- repository/quiz/quiz.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/repository/quiz/quiz.go b/repository/quiz/quiz.go index ac27e9c..4257cb3 100644 --- a/repository/quiz/quiz.go +++ b/repository/quiz/quiz.go @@ -632,22 +632,22 @@ func (r *QuizRepository) GetStartedQuizzesID(ctx context.Context, accountID stri return ids, nil } -func (r *QuizRepository) TemplateCopy(ctx context.Context, accountID, qID string) error { +func (r *QuizRepository) TemplateCopy(ctx context.Context, accountID, qID string) (int64, error) { qUUID, err := uuid.Parse(qID) if err != nil { - return err + return 0, err } qNullUUID := uuid.NullUUID{UUID: qUUID, Valid: true} - err = r.queries.TemplateCopy(ctx, sqlcgen.TemplateCopyParams{ + quizID, err := r.queries.TemplateCopy(ctx, sqlcgen.TemplateCopyParams{ Accountid: accountID, Qid: qNullUUID, }) if err != nil { - return err + return 0, err } - return nil + return quizID, nil }