Merge branch 'tmplCopy' into 'main'

Tmpl copy

See merge request backend/quiz/common!18
This commit is contained in:
Mikhail 2024-05-17 18:25:35 +00:00
commit 705fca0ed2
3 changed files with 15 additions and 11 deletions

@ -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 quiz_id;
-- amo methods:

@ -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

@ -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
}