summaryrefslogtreecommitdiff
path: root/internal/data/users.sql.go
blob: db28ca7e80e6b90c908e99ada8071052cfdb70d3 (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
118
119
120
121
122
123
124
125
126
127
128
// Code generated by sqlc. DO NOT EDIT.
// versions:
//   sqlc v1.27.0
// source: users.sql

package data

import (
	"context"

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

const createUser = `-- name: CreateUser :one
INSERT INTO users (
  id, name, public_key
) VALUES (
  ?, ?, ?
)
RETURNING id, name, public_key, description, is_public_dm, is_deleted
`

type CreateUserParams struct {
	ID        snowflake.ID
	Name      string
	PublicKey ed25519.PublicKey
}

func (q *Queries) CreateUser(ctx context.Context, arg CreateUserParams) (User, error) {
	row := q.db.QueryRowContext(ctx, createUser, arg.ID, arg.Name, arg.PublicKey)
	var i User
	err := row.Scan(
		&i.ID,
		&i.Name,
		&i.PublicKey,
		&i.Description,
		&i.IsPublicDM,
		&i.IsDeleted,
	)
	return i, err
}

const deleteUser = `-- name: DeleteUser :exec
UPDATE users SET
  is_deleted = true
WHERE id = ? AND is_deleted = false
`

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

const getUserById = `-- name: GetUserById :one
SELECT id, name, public_key, description, is_public_dm, is_deleted FROM users
WHERE id = ? AND is_deleted = false
`

func (q *Queries) GetUserById(ctx context.Context, id snowflake.ID) (User, error) {
	row := q.db.QueryRowContext(ctx, getUserById, id)
	var i User
	err := row.Scan(
		&i.ID,
		&i.Name,
		&i.PublicKey,
		&i.Description,
		&i.IsPublicDM,
		&i.IsDeleted,
	)
	return i, err
}

const getUserByPublicKey = `-- name: GetUserByPublicKey :one
SELECT id, name, public_key, description, is_public_dm, is_deleted FROM users
WHERE public_key = ? AND is_deleted = false
`

func (q *Queries) GetUserByPublicKey(ctx context.Context, publicKey ed25519.PublicKey) (User, error) {
	row := q.db.QueryRowContext(ctx, getUserByPublicKey, publicKey)
	var i User
	err := row.Scan(
		&i.ID,
		&i.Name,
		&i.PublicKey,
		&i.Description,
		&i.IsPublicDM,
		&i.IsDeleted,
	)
	return i, err
}

const getUserData = `-- name: GetUserData :one
SELECT data FROM user_data
WHERE user_id = ?
`

func (q *Queries) GetUserData(ctx context.Context, userID snowflake.ID) (string, error) {
	row := q.db.QueryRowContext(ctx, getUserData, userID)
	var data string
	err := row.Scan(&data)
	return data, err
}

const setUserData = `-- name: SetUserData :one
INSERT INTO user_data (
  user_id, data
) VALUES (
  ?1, ?2
)
ON CONFLICT DO
UPDATE SET
  user_id = EXCLUDED.user_id, data = EXCLUDED.data
WHERE user_id = EXCLUDED.user_id
RETURNING user_id, data
`

type SetUserDataParams struct {
	UserID snowflake.ID
	Data   string
}

func (q *Queries) SetUserData(ctx context.Context, arg SetUserDataParams) (UserData, error) {
	row := q.db.QueryRowContext(ctx, setUserData, arg.UserID, arg.Data)
	var i UserData
	err := row.Scan(&i.UserID, &i.Data)
	return i, err
}