update queries

This commit is contained in:
Pavel 2024-05-03 17:58:28 +03:00
parent f6c3470bd8
commit 450d3330d6

@ -733,8 +733,7 @@ ORDER BY f.ID OFFSET ($2 - 1) * $3 LIMIT $3;
-- name: UpdateTags :exec
UPDATE tags AS t
SET name = (update_data ->> 'Name')::varchar(512),
color = (update_data ->> 'Color')::varchar(50),
createdAt = CURRENT_TIMESTAMP
color = (update_data ->> 'Color')::varchar(50)
FROM json_array_elements($1::json) AS update_data
WHERE t.amoID = (update_data ->> 'AmoID')::INT
AND t.accountID = (update_data ->> 'AccountID')::INT
@ -743,8 +742,7 @@ WHERE t.amoID = (update_data ->> 'AmoID')::INT
-- name: UpdatePipelines :exec
UPDATE pipelines AS p
SET name = (update_data ->> 'Name')::varchar(512),
isArchive = CASE WHEN (update_data ->> 'IsArchive') = 'true' THEN TRUE ELSE FALSE END,
createdAt = CURRENT_TIMESTAMP
isArchive = CASE WHEN (update_data ->> 'IsArchive') = 'true' THEN TRUE ELSE FALSE END
FROM json_array_elements($1::json) AS update_data
WHERE p.amoID = (update_data ->> 'AmoID')::INT
AND p.accountID = (update_data ->> 'AccountID')::INT;
@ -752,8 +750,7 @@ WHERE p.amoID = (update_data ->> 'AmoID')::INT
-- name: UpdateSteps :exec
UPDATE steps AS s
SET name = (update_data ->> 'Name')::varchar(512),
color = (update_data ->> 'Color')::varchar(50),
createdAt = CURRENT_TIMESTAMP
color = (update_data ->> 'Color')::varchar(50)
FROM json_array_elements($1::json) AS update_data
WHERE s.amoID = (update_data ->> 'AmoID')::INT
AND s.accountID = (update_data ->> 'AccountID')::INT
@ -763,8 +760,7 @@ WHERE s.amoID = (update_data ->> 'AmoID')::INT
UPDATE fields AS f
SET name = (update_data ->> 'Name')::varchar(512),
code = (update_data ->> 'Code')::varchar(255),
type = (update_data ->> 'Type')::fieldtype,
createdAt = CURRENT_TIMESTAMP
type = (update_data ->> 'Type')::fieldtype
FROM json_array_elements($1::json) AS update_data
WHERE f.amoID = (update_data ->> 'AmoID')::INT
AND f.accountID = (update_data ->> 'AccountID')::INT
@ -897,14 +893,6 @@ WHERE NOT EXISTS (
WHERE ins.amoID = ns.amoID AND ins.accountID = ns.accountID AND ins.pipelineID = ns.pipelineID
);
-- name: CheckUsers :exec
INSERT INTO users (AmoID, Name, Email, Role, "Group", AmoUserID)
VALUES ($1, $2, $3, $4, $5, $6)
ON CONFLICT (AmoID) DO NOTHING;
-- name: UpdateUsers :exec
UPDATE users SET Name = $2, Email = $3, Role = $4, "Group" = $5, AmoUserID = $6 WHERE AmoID = $1;
-- name: GetTokenById :one
SELECT * FROM tokens WHERE accountID = $1;
@ -982,3 +970,44 @@ SELECT * FROM question WHERE id = ANY($1::int[]) AND deleted = FALSE;
-- name: UpdateFieldRules :exec
UPDATE rules SET FieldsRule = $1
WHERE AccountID = (SELECT AmoID FROM users WHERE users.AccountID = $2) AND QuizID = $3 AND Deleted = false;
-- name: UpdateUsers :exec
UPDATE users AS u
SET Name = (update_data ->> 'Name')::varchar(512),
Email = (update_data ->> 'Email')::varchar(50),
Role = (update_data ->> 'Role')::INT,
"Group" = (update_data ->> 'Group')::INT,
AmoUserID= (update_data ->> 'AmoUserID')::INT
FROM json_array_elements($1::json) AS update_data
WHERE u.AmoID = (update_data ->> 'AmocrmID')::INT;
-- name: CheckUsers :many
WITH new_users AS (
SELECT (u->>'AmocrmID')::INT AS AmoID,
(u->>'Name')::VARCHAR(512) AS Name,
(u->>'Group')::INT AS "Group",
(u->>'Role')::INT AS Role,
(u->>'Email')::VARCHAR(50) AS Email,
(u->>'AmoUserID')::INT AS AmoUserID,
CURRENT_TIMESTAMP AS createdAt
FROM json_array_elements($1::json) AS u
), inserted_users AS (
INSERT INTO users (AmoID, Name, "Group", Role, Email, AmoUserID,createdAt)
SELECT nu.AmoID,
nu.Name,
nu."Group",
nu.Role,
nu.Email,
nu.AmoUserID,
nu.createdAt
FROM new_users nu
ON CONFLICT (amoID) DO NOTHING
RETURNING *
)
SELECT nu.*
FROM new_users nu
WHERE NOT EXISTS (
SELECT *
FROM inserted_users ins
WHERE ins.amoID = nu.amoID
);