Merge branch 'fixAmo' into 'main'

Fix amo

See merge request backend/quiz/common!22
This commit is contained in:
Mikhail 2024-06-04 21:48:38 +00:00
commit 30422dc082
6 changed files with 40 additions and 22 deletions

@ -713,12 +713,12 @@ WITH userd AS (
SELECT AmoUserID FROM users WHERE users.AccountID = $1
),
tokend AS (
UPDATE users SET Deleted = true WHERE AmoUserID IN (SELECT AmoUserID FROM userd) RETURNING users.AccountID
UPDATE users SET Deleted = true WHERE AmoUserID IN (SELECT AmoUserID FROM userd)
)
DELETE FROM tokens WHERE tokens.AccountID IN (SELECT AccountID FROM tokend);
DELETE FROM tokens WHERE tokens.AccountID = $1;
-- name: GetCurrentAccount :one
SELECT * FROM users WHERE AccountID = $1;
SELECT * FROM users WHERE AccountID = $1 AND Deleted = false;
-- name: CheckMainUser :exec
UPDATE users SET Name = $1, "Group" = $2, Email = $3, Role = $4 WHERE AmoID = $5;
@ -926,15 +926,17 @@ SELECT * FROM tokens WHERE accountID = $1;
-- name: GetQuizRule :one
SELECT * FROM rules WHERE QuizID = $1 AND Deleted = false;
-- name: SetQuizSettings :exec
-- name: SetQuizSettings :one
INSERT INTO rules (AccountID, QuizID, PerformerID, PipelineID, StepID, FieldsRule)
SELECT u.AmoID AS AccountID,$1 AS QuizID,$2 AS PerformerID,$3 AS PipelineID,
$4 AS StepID,$5 AS FieldsRule FROM users u WHERE u.AccountID = $6;
$4 AS StepID,$5 AS FieldsRule FROM users u WHERE u.AccountID = $6 AND u.Deleted = false
RETURNING id;
-- name: ChangeQuizSettings :exec
-- name: ChangeQuizSettings :one
UPDATE rules
SET PerformerID = $1,PipelineID = $2,StepID = $3,FieldsRule = $4
WHERE AccountID = (SELECT AmoID FROM users WHERE users.AccountID = $5) AND QuizID = $6 AND Deleted = false;
WHERE AccountID = (SELECT AmoID FROM users WHERE users.AccountID = $5 AND users.Deleted = false) AND QuizID = $6 AND Deleted = false
RETURNING id;
-- name: GetQuestionListByIDs :many
SELECT * FROM question WHERE id = ANY($1::int[]) AND deleted = FALSE;

@ -0,0 +1,4 @@
DROP INDEX IF EXISTS idx_unique_users;
DROP INDEX IF EXISTS idx_unique_rules;
CREATE UNIQUE INDEX idx_unique_users ON users (amoID);
CREATE UNIQUE INDEX idx_unique_rules ON rules (accountID, QuizID);

@ -0,0 +1,4 @@
DROP INDEX IF EXISTS idx_unique_users;
DROP INDEX IF EXISTS idx_unique_rules;
CREATE UNIQUE INDEX idx_unique_users ON users (amoID) WHERE Deleted = false;
CREATE UNIQUE INDEX idx_unique_rules ON rules (accountID, QuizID) WHERE Deleted = false;

@ -114,10 +114,11 @@ func (q *Queries) ArchiveQuiz(ctx context.Context, arg ArchiveQuizParams) error
return err
}
const changeQuizSettings = `-- name: ChangeQuizSettings :exec
const changeQuizSettings = `-- name: ChangeQuizSettings :one
UPDATE rules
SET PerformerID = $1,PipelineID = $2,StepID = $3,FieldsRule = $4
WHERE AccountID = (SELECT AmoID FROM users WHERE users.AccountID = $5) AND QuizID = $6 AND Deleted = false
WHERE AccountID = (SELECT AmoID FROM users WHERE users.AccountID = $5 AND users.Deleted = false) AND QuizID = $6 AND Deleted = false
RETURNING id
`
type ChangeQuizSettingsParams struct {
@ -129,8 +130,8 @@ type ChangeQuizSettingsParams struct {
Quizid int32 `db:"quizid" json:"quizid"`
}
func (q *Queries) ChangeQuizSettings(ctx context.Context, arg ChangeQuizSettingsParams) error {
_, err := q.db.ExecContext(ctx, changeQuizSettings,
func (q *Queries) ChangeQuizSettings(ctx context.Context, arg ChangeQuizSettingsParams) (int64, error) {
row := q.db.QueryRowContext(ctx, changeQuizSettings,
arg.Performerid,
arg.Pipelineid,
arg.Stepid,
@ -138,7 +139,9 @@ func (q *Queries) ChangeQuizSettings(ctx context.Context, arg ChangeQuizSettings
arg.Accountid,
arg.Quizid,
)
return err
var id int64
err := row.Scan(&id)
return id, err
}
const checkAndAddDefault = `-- name: CheckAndAddDefault :exec
@ -1454,7 +1457,7 @@ func (q *Queries) GetAllTokens(ctx context.Context) ([]Token, error) {
}
const getCurrentAccount = `-- name: GetCurrentAccount :one
SELECT id, accountid, amoid, name, email, role, "Group", deleted, createdat, subdomain, amouserid, country FROM users WHERE AccountID = $1
SELECT id, accountid, amoid, name, email, role, "Group", deleted, createdat, subdomain, amouserid, country FROM users WHERE AccountID = $1 AND Deleted = false
`
func (q *Queries) GetCurrentAccount(ctx context.Context, accountid string) (User, error) {
@ -3297,10 +3300,11 @@ func (q *Queries) QuizCopyQid(ctx context.Context, arg QuizCopyQidParams) (QuizC
return i, err
}
const setQuizSettings = `-- name: SetQuizSettings :exec
const setQuizSettings = `-- name: SetQuizSettings :one
INSERT INTO rules (AccountID, QuizID, PerformerID, PipelineID, StepID, FieldsRule)
SELECT u.AmoID AS AccountID,$1 AS QuizID,$2 AS PerformerID,$3 AS PipelineID,
$4 AS StepID,$5 AS FieldsRule FROM users u WHERE u.AccountID = $6
$4 AS StepID,$5 AS FieldsRule FROM users u WHERE u.AccountID = $6 AND u.Deleted = false
RETURNING id
`
type SetQuizSettingsParams struct {
@ -3312,8 +3316,8 @@ type SetQuizSettingsParams struct {
Accountid string `db:"accountid" json:"accountid"`
}
func (q *Queries) SetQuizSettings(ctx context.Context, arg SetQuizSettingsParams) error {
_, err := q.db.ExecContext(ctx, setQuizSettings,
func (q *Queries) SetQuizSettings(ctx context.Context, arg SetQuizSettingsParams) (int64, error) {
row := q.db.QueryRowContext(ctx, setQuizSettings,
arg.Quizid,
arg.Performerid,
arg.Pipelineid,
@ -3321,7 +3325,9 @@ func (q *Queries) SetQuizSettings(ctx context.Context, arg SetQuizSettingsParams
arg.Fieldsrule,
arg.Accountid,
)
return err
var id int64
err := row.Scan(&id)
return id, err
}
const settingDealAmoStatus = `-- name: SettingDealAmoStatus :exec
@ -3354,9 +3360,9 @@ WITH userd AS (
SELECT AmoUserID FROM users WHERE users.AccountID = $1
),
tokend AS (
UPDATE users SET Deleted = true WHERE AmoUserID IN (SELECT AmoUserID FROM userd) RETURNING users.AccountID
UPDATE users SET Deleted = true WHERE AmoUserID IN (SELECT AmoUserID FROM userd)
)
DELETE FROM tokens WHERE tokens.AccountID IN (SELECT AccountID FROM tokend)
DELETE FROM tokens WHERE tokens.AccountID = $1
`
func (q *Queries) SoftDeleteAccount(ctx context.Context, accountid string) error {

@ -807,7 +807,7 @@ func (r *AmoRepository) ChangeQuizSettings(ctx context.Context, request *model.R
if err != nil {
return err
}
err = r.queries.ChangeQuizSettings(ctx, sqlcgen.ChangeQuizSettingsParams{
_, err = r.queries.ChangeQuizSettings(ctx, sqlcgen.ChangeQuizSettingsParams{
Performerid: request.PerformerID,
Pipelineid: request.PipelineID,
Stepid: request.StepID,
@ -829,7 +829,7 @@ func (r *AmoRepository) SetQuizSettings(ctx context.Context, request *model.Rule
if err != nil {
return err
}
err = r.queries.SetQuizSettings(ctx, sqlcgen.SetQuizSettingsParams{
_, err = r.queries.SetQuizSettings(ctx, sqlcgen.SetQuizSettingsParams{
Performerid: request.PerformerID,
Pipelineid: request.PipelineID,
Stepid: request.StepID,

@ -26,6 +26,8 @@ packages:
- "./dal/schema/000010_init.down.sql"
- "./dal/schema/000011_init.up.sql"
- "./dal/schema/000011_init.down.sql"
- "./dal/schema/000012_init.up.sql"
- "./dal/schema/000012_init.down.sql"
engine: "postgresql"
emit_json_tags: true
emit_db_tags: true