add query check tags
This commit is contained in:
parent
44291564e2
commit
ae01145ce6
@ -667,7 +667,7 @@ UPDATE tokens SET AccessToken = $1, RefreshToken = $2, Expiration = $3, CreatedA
|
|||||||
SELECT * FROM tokens;
|
SELECT * FROM tokens;
|
||||||
|
|
||||||
-- name: CheckExpired :many
|
-- name: CheckExpired :many
|
||||||
SELECT * FROM tokens WHERE Expiration <= EXTRACT(EPOCH FROM NOW()) + (10 * 60);
|
SELECT * FROM tokens WHERE Expiration <= TO_TIMESTAMP(EXTRACT(EPOCH FROM NOW()) + (10 * 60));
|
||||||
|
|
||||||
-- name: WebhookDelete :exec
|
-- name: WebhookDelete :exec
|
||||||
DELETE FROM tokens WHERE AccountID = $1;
|
DELETE FROM tokens WHERE AccountID = $1;
|
||||||
@ -683,3 +683,47 @@ UPDATE users SET Name = $1, "Group" = $2, Email = $3, Role = $4 WHERE AmoID = $5
|
|||||||
|
|
||||||
-- name: GetUsersWithPagination :many
|
-- name: GetUsersWithPagination :many
|
||||||
SELECT *, COUNT(*) OVER() as total_count FROM users WHERE Deleted = false ORDER BY ID OFFSET ($1 - 1) * $2 LIMIT $2;
|
SELECT *, COUNT(*) OVER() as total_count FROM users WHERE Deleted = false ORDER BY ID OFFSET ($1 - 1) * $2 LIMIT $2;
|
||||||
|
|
||||||
|
-- name: GetTagsWithPagination :many
|
||||||
|
SELECT *, COUNT(*) OVER() as total_count FROM tags WHERE Deleted = false ORDER BY ID OFFSET ($1 - 1) * $2 LIMIT $2;
|
||||||
|
|
||||||
|
-- name: GetStepsWithPagination :many
|
||||||
|
SELECT *, COUNT(*) OVER() as total_count FROM steps WHERE Deleted = false ORDER BY ID OFFSET ($1 - 1) * $2 LIMIT $2;
|
||||||
|
|
||||||
|
-- name: GetPipelinesWithPagination :many
|
||||||
|
SELECT *, COUNT(*) OVER() as total_count FROM pipelines WHERE Deleted = false ORDER BY ID OFFSET ($1 - 1) * $2 LIMIT $2;
|
||||||
|
|
||||||
|
-- name: GetFieldsWithPagination :many
|
||||||
|
SELECT *, COUNT(*) OVER() as total_count FROM fields WHERE Deleted = false ORDER BY ID OFFSET ($1 - 1) * $2 LIMIT $2;
|
||||||
|
|
||||||
|
-- name: CheckTags :many
|
||||||
|
WITH user_data AS (
|
||||||
|
SELECT AmoID
|
||||||
|
FROM users
|
||||||
|
WHERE AccountID = $1 -- параметр AccountID из токена для получения id аккаунта в амо
|
||||||
|
), updated_tags AS (
|
||||||
|
UPDATE tags
|
||||||
|
SET name = new_tags.name, color = new_tags.color, createdAt = CURRENT_TIMESTAMP
|
||||||
|
FROM (
|
||||||
|
SELECT t.ID, t.Name, t.Color, t.AmoID
|
||||||
|
FROM UNNEST($3::entitytype[], $4::varchar(50)[], $5::varchar(50)[]) AS t(ID INT, Name VARCHAR(50), Color VARCHAR(50), AmoID INT)
|
||||||
|
) AS new_tags
|
||||||
|
JOIN user_data ON tags.AccountID = user_data.AmoID
|
||||||
|
WHERE tags.amoID = $2
|
||||||
|
AND tags.amoID = new_tags.amoID
|
||||||
|
AND tags.accountID = user_data.AmoID -- Используем полученный AmoID из таблицы users
|
||||||
|
AND tags.entity = $3
|
||||||
|
AND tags.deleted = FALSE
|
||||||
|
RETURNING tags.id, tags.amoID
|
||||||
|
), inserted_tags AS (
|
||||||
|
INSERT INTO tags (amoID, accountID, entity, name, color, createdAt)
|
||||||
|
SELECT $2, user_data.AmoID, $3, t.Name, t.Color, CURRENT_TIMESTAMP
|
||||||
|
FROM UNNEST($3::entitytype[], $4::varchar(50)[], $5::varchar(50)[]) AS t(Name VARCHAR(50), Color VARCHAR(50))
|
||||||
|
JOIN user_data ON $1 = user_data.AmoID
|
||||||
|
WHERE (t.Name, t.Color) NOT IN (SELECT name, color FROM updated_tags)
|
||||||
|
RETURNING id, amoID
|
||||||
|
)
|
||||||
|
SELECT * FROM updated_tags
|
||||||
|
UNION ALL
|
||||||
|
SELECT * FROM inserted_tags;
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ CREATE TABLE IF NOT EXISTS tags (
|
|||||||
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||||
);
|
);
|
||||||
|
|
||||||
ALTER TABLE question
|
ALTER TABLE quiz
|
||||||
ADD COLUMN utm jsonb NOT NULL DEFAULT '{}';
|
ADD COLUMN utm jsonb NOT NULL DEFAULT '{}';
|
||||||
ALTER TABLE question
|
ALTER TABLE quiz
|
||||||
ADD COLUMN rules jsonb NOT NULL DEFAULT '{}';
|
ADD COLUMN rules jsonb NOT NULL DEFAULT '{}';
|
@ -175,7 +175,7 @@ func (r *AmoRepository) WebhookCreate(ctx context.Context, tokens model.Token) e
|
|||||||
Refreshtoken: tokens.RefreshToken,
|
Refreshtoken: tokens.RefreshToken,
|
||||||
Accesstoken: tokens.AccessToken,
|
Accesstoken: tokens.AccessToken,
|
||||||
Authcode: tokens.AuthCode,
|
Authcode: tokens.AuthCode,
|
||||||
Expiration: time.Unix(tokens.Expiration, 0),
|
Expiration: time.Unix(tokens.Expiration, 0).In(time.UTC),
|
||||||
Createdat: sql.NullTime{Time: time.Unix(tokens.CreatedAt, 0), Valid: true},
|
Createdat: sql.NullTime{Time: time.Unix(tokens.CreatedAt, 0), Valid: true},
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -191,7 +191,7 @@ func (r *AmoRepository) WebhookUpdate(ctx context.Context, tokens model.Token) e
|
|||||||
Accountid: tokens.AccountID,
|
Accountid: tokens.AccountID,
|
||||||
Accesstoken: tokens.AccessToken,
|
Accesstoken: tokens.AccessToken,
|
||||||
Refreshtoken: tokens.RefreshToken,
|
Refreshtoken: tokens.RefreshToken,
|
||||||
Expiration: time.Unix(tokens.Expiration, 0),
|
Expiration: time.Unix(tokens.Expiration, 0).In(time.UTC),
|
||||||
Createdat: sql.NullTime{Time: time.Unix(tokens.CreatedAt, 0), Valid: true},
|
Createdat: sql.NullTime{Time: time.Unix(tokens.CreatedAt, 0), Valid: true},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user