Go · 2815 bytes Raw Blame History
1 // Code generated by sqlc. DO NOT EDIT.
2 // versions:
3 // sqlc v1.31.1
4 // source: workflow_disabled.sql
5
6 package actionsdb
7
8 import (
9 "context"
10
11 "github.com/jackc/pgx/v5/pgtype"
12 )
13
14 const disableWorkflow = `-- name: DisableWorkflow :exec
15 INSERT INTO workflow_disabled (repo_id, workflow_file, disabled_by_user_id)
16 VALUES ($1, $2, $3::bigint)
17 ON CONFLICT (repo_id, workflow_file) DO NOTHING
18 `
19
20 type DisableWorkflowParams struct {
21 RepoID int64
22 WorkflowFile string
23 DisabledByUserID pgtype.Int8
24 }
25
26 // Idempotent: re-disabling an already-disabled workflow is a no-op
27 // and does not bump disabled_at.
28 func (q *Queries) DisableWorkflow(ctx context.Context, db DBTX, arg DisableWorkflowParams) error {
29 _, err := db.Exec(ctx, disableWorkflow, arg.RepoID, arg.WorkflowFile, arg.DisabledByUserID)
30 return err
31 }
32
33 const enableWorkflow = `-- name: EnableWorkflow :execrows
34 DELETE FROM workflow_disabled
35 WHERE repo_id = $1 AND workflow_file = $2
36 `
37
38 type EnableWorkflowParams struct {
39 RepoID int64
40 WorkflowFile string
41 }
42
43 // Returns affected-rows so the handler can distinguish 200 (re-enabled)
44 // from 404-ish no-op.
45 func (q *Queries) EnableWorkflow(ctx context.Context, db DBTX, arg EnableWorkflowParams) (int64, error) {
46 result, err := db.Exec(ctx, enableWorkflow, arg.RepoID, arg.WorkflowFile)
47 if err != nil {
48 return 0, err
49 }
50 return result.RowsAffected(), nil
51 }
52
53 const isWorkflowDisabled = `-- name: IsWorkflowDisabled :one
54
55 SELECT EXISTS (
56 SELECT 1 FROM workflow_disabled
57 WHERE repo_id = $1 AND workflow_file = $2
58 ) AS disabled
59 `
60
61 type IsWorkflowDisabledParams struct {
62 RepoID int64
63 WorkflowFile string
64 }
65
66 // SPDX-License-Identifier: AGPL-3.0-or-later
67 // Hot path for trigger.Enqueue: skip enqueueing when the row exists.
68 func (q *Queries) IsWorkflowDisabled(ctx context.Context, db DBTX, arg IsWorkflowDisabledParams) (bool, error) {
69 row := db.QueryRow(ctx, isWorkflowDisabled, arg.RepoID, arg.WorkflowFile)
70 var disabled bool
71 err := row.Scan(&disabled)
72 return disabled, err
73 }
74
75 const listDisabledWorkflowsForRepo = `-- name: ListDisabledWorkflowsForRepo :many
76 SELECT workflow_file
77 FROM workflow_disabled
78 WHERE repo_id = $1
79 ORDER BY workflow_file
80 `
81
82 // Used by the workflows-list endpoint to mark `state: "disabled"`
83 // entries without round-tripping through Is for every file.
84 func (q *Queries) ListDisabledWorkflowsForRepo(ctx context.Context, db DBTX, repoID int64) ([]string, error) {
85 rows, err := db.Query(ctx, listDisabledWorkflowsForRepo, repoID)
86 if err != nil {
87 return nil, err
88 }
89 defer rows.Close()
90 items := []string{}
91 for rows.Next() {
92 var workflow_file string
93 if err := rows.Scan(&workflow_file); err != nil {
94 return nil, err
95 }
96 items = append(items, workflow_file)
97 }
98 if err := rows.Err(); err != nil {
99 return nil, err
100 }
101 return items, nil
102 }
103