update queries

This commit is contained in:
Pavel 2024-04-22 17:13:18 +03:00
parent 4a6ed865a7
commit 8a0237ee6e
3 changed files with 66 additions and 7 deletions

@ -785,7 +785,14 @@ WITH user_data AS (
ON CONFLICT (amoID, accountID, Entity) DO NOTHING
RETURNING *
)
SELECT * FROM inserted_tags;
SELECT nt.*
FROM new_tags nt
WHERE NOT EXISTS (
SELECT *
FROM inserted_tags ins
JOIN user_data ud ON true
WHERE ins.amoID = nt.amoID AND ins.accountID = ud.amoid AND ins.Entity = nt.Entity
);
-- name: CheckPipelines :many
WITH new_pipelines AS (
@ -806,7 +813,13 @@ WITH new_pipelines AS (
ON CONFLICT (amoID, accountID) DO NOTHING
RETURNING *
)
SELECT * FROM inserted_pipelines;
SELECT np.*
FROM new_pipelines np
WHERE NOT EXISTS (
SELECT *
FROM inserted_pipelines ins
WHERE ins.amoID = np.amoID AND ins.accountID = np.accountID
);
-- name: CheckFields :many
WITH user_data AS (
@ -835,7 +848,14 @@ WITH user_data AS (
ON CONFLICT (amoID, accountID, entity) DO NOTHING
RETURNING *
)
SELECT * from inserted_fields;
SELECT nf.*
FROM new_fields nf
WHERE NOT EXISTS (
SELECT *
FROM inserted_fields ins
JOIN user_data ud ON true
WHERE ins.amoID = nf.amoID AND ins.accountID = ud.amoid AND ins.Entity = nf.Entity
);
-- name: CheckSteps :many
WITH new_steps AS (
@ -858,7 +878,13 @@ WITH new_steps AS (
ON CONFLICT (amoID, accountID, PipelineID) DO NOTHING
RETURNING *
)
SELECT * FROM inserted_steps;
SELECT ns.*
FROM new_steps ns
WHERE NOT EXISTS (
SELECT *
FROM inserted_steps ins
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)
@ -870,3 +896,36 @@ UPDATE users SET Name = $2, Email = $3, Role = $4, "Group" = $5, AmoUserID = $6
-- name: GetTokenById :one
SELECT * FROM tokens WHERE accountID = $1;
-- name: DeletingUTM :exec
UPDATE utms SET Deleted = true WHERE ID = ANY($1::int[]);
-- name: GetUTMsWithPagination :many
SELECT ut.*, COUNT(*) OVER() as total_count
FROM utms ut JOIN (SELECT AmoID FROM users WHERE users.AccountID = $1) u ON ut.AccountID = u.AmoID
WHERE ut.Deleted = false
ORDER BY ut.ID OFFSET ($2 - 1) * $3 LIMIT $3;
-- name: SaveUTMs :many
WITH user_data AS (
SELECT AmoID
FROM users
WHERE users.AccountID = $1
), new_UTMs AS (
SELECT (utm->>'AmoFieldID')::INT AS amoFieldID,
COALESCE(utm->>'QuizID', '')::INT AS quizID,
COALESCE(utm->>'Name', '')::varchar(50) AS name,
CURRENT_TIMESTAMP AS createdAt
FROM json_array_elements($2::json) AS utm
), inserted_utms AS(
INSERT INTO utms (AmoFieldID, QuizID, AccountID, Name, createdAt)
SELECT nu.amoFieldID,
nu.quizID,
ud.AmoID,
nu.name,
nu.createdAt
FROM new_UTMs nu
JOIN user_data ud ON true
RETURNING *
)
SELECT * from inserted_utms;

@ -164,7 +164,7 @@ type FieldRule struct {
type UTM struct {
/* - айдишник в нашей системе Primary Key*/
ID int `json:"ID" bson:"ID"`
ID int `json:"ID"`
/* - айдишник кастомного поля в амо*/
Amofieldid int `json:"AmoFieldID"`
/* - айдишник квиза*/

@ -615,11 +615,11 @@ func (r *AmoRepository) GettingQuizRules(ctx context.Context) (*model.Rule, erro
// методы UTMs
func (r *AmoRepository) DeletingUserUtm(ctx context.Context, request *model.ListDeleteUTMIDsReq, accountId string) error {
func (r *AmoRepository) DeletingUserUtm(ctx context.Context, request *model.ListDeleteUTMIDsReq) error {
return nil
}
func (r *AmoRepository) SavingUserUtm(ctx context.Context, request *model.SaveUserListUTMReq, accountID string, quizID int) (*model.ListSavedIDUTMResp, error) {
func (r *AmoRepository) SavingUserUtm(ctx context.Context, request *model.SaveUserListUTMReq, accountID string) (*model.ListSavedIDUTMResp, error) {
return nil, nil
}