summaryrefslogtreecommitdiff
path: root/internal/data/frequencies.sql.go
blob: ae7cd43bb4fdd596ac5c7a9b91661fb06aef2759 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
// Code generated by sqlc. DO NOT EDIT.
// versions:
//   sqlc v1.27.0
// source: frequencies.sql

package data

import (
	"context"

	"github.com/kyren223/eko/pkg/snowflake"
)

const createFrequency = `-- name: CreateFrequency :one
INSERT INTO frequencies (
  id, network_id,
  name, hex_color,
  perms, position
) VALUES (
  ?, ?, ?, ?, ?,
  (SELECT COUNT(*) FROM frequencies WHERE network_id = ?)
)
RETURNING id, network_id, name, hex_color, perms, position
`

type CreateFrequencyParams struct {
	ID        snowflake.ID
	NetworkID snowflake.ID
	Name      string
	HexColor  *string
	Perms     int64
}

func (q *Queries) CreateFrequency(ctx context.Context, arg CreateFrequencyParams) (Frequency, error) {
	row := q.db.QueryRowContext(ctx, createFrequency,
		arg.ID,
		arg.NetworkID,
		arg.Name,
		arg.HexColor,
		arg.Perms,
	)
	var i Frequency
	err := row.Scan(
		&i.ID,
		&i.NetworkID,
		&i.Name,
		&i.HexColor,
		&i.Perms,
		&i.Position,
	)
	return i, err
}

const deleteFrequency = `-- name: DeleteFrequency :exec
DELETE FROM frequencies WHERE id = ?
`

func (q *Queries) DeleteFrequency(ctx context.Context, id snowflake.ID) error {
	_, err := q.db.ExecContext(ctx, deleteFrequency, id)
	return err
}

const getNetworkFrequencies = `-- name: GetNetworkFrequencies :many
SELECT id, network_id, name, hex_color, perms, position FROM frequencies
WHERE network_id = ?
ORDER BY id
`

func (q *Queries) GetNetworkFrequencies(ctx context.Context, networkID snowflake.ID) ([]Frequency, error) {
	rows, err := q.db.QueryContext(ctx, getNetworkFrequencies, networkID)
	if err != nil {
		return nil, err
	}
	defer rows.Close()
	var items []Frequency
	for rows.Next() {
		var i Frequency
		if err := rows.Scan(
			&i.ID,
			&i.NetworkID,
			&i.Name,
			&i.HexColor,
			&i.Perms,
			&i.Position,
		); err != nil {
			return nil, err
		}
		items = append(items, i)
	}
	if err := rows.Close(); err != nil {
		return nil, err
	}
	if err := rows.Err(); err != nil {
		return nil, err
	}
	return items, nil
}

const swapFrequencies = `-- name: SwapFrequencies :exec
UPDATE frequencies SET
  position = CASE
    WHEN position = ? THEN ?
    WHEN position = ? THEN ?
  END
WHERE network_id = ? AND position IN (?, ?)
`

type SwapFrequenciesParams struct {
	Pos1      int64
	Pos2      int64
	NetworkID snowflake.ID
}

func (q *Queries) SwapFrequencies(ctx context.Context, arg SwapFrequenciesParams) error {
	_, err := q.db.ExecContext(ctx, swapFrequencies, arg.Pos1, arg.Pos2, arg.NetworkID)
	return err
}