summaryrefslogtreecommitdiff
path: root/internal/data
diff options
context:
space:
mode:
Diffstat (limited to 'internal/data')
-rw-r--r--internal/data/members.sql.go12
-rw-r--r--internal/data/models.go5
-rw-r--r--internal/data/users.sql.go37
-rw-r--r--internal/data/users_networks.sql.go329
4 files changed, 48 insertions, 335 deletions
diff --git a/internal/data/members.sql.go b/internal/data/members.sql.go
index c9932cc..fd66dba 100644
--- a/internal/data/members.sql.go
+++ b/internal/data/members.sql.go
@@ -82,7 +82,7 @@ func (q *Queries) GetMemberById(ctx context.Context, arg GetMemberByIdParams) (M
return i, err
}
-const getMembers = `-- name: GetMembers :many
+const getNetworkMembers = `-- name: GetNetworkMembers :many
SELECT
users.id, users.name, users.public_key, users.description, users.is_public_dm, users.is_deleted,
members.user_id, members.network_id, members.joined_at, members.is_member, members.is_admin, members.is_muted, members.is_banned, members.ban_reason
@@ -91,20 +91,20 @@ JOIN users ON users.id = members.user_id
WHERE network_id = ? AND is_member = true
`
-type GetMembersRow struct {
+type GetNetworkMembersRow struct {
User User
Member Member
}
-func (q *Queries) GetMembers(ctx context.Context, networkID snowflake.ID) ([]GetMembersRow, error) {
- rows, err := q.db.QueryContext(ctx, getMembers, networkID)
+func (q *Queries) GetNetworkMembers(ctx context.Context, networkID snowflake.ID) ([]GetNetworkMembersRow, error) {
+ rows, err := q.db.QueryContext(ctx, getNetworkMembers, networkID)
if err != nil {
return nil, err
}
defer rows.Close()
- var items []GetMembersRow
+ var items []GetNetworkMembersRow
for rows.Next() {
- var i GetMembersRow
+ var i GetNetworkMembersRow
if err := rows.Scan(
&i.User.ID,
&i.User.Name,
diff --git a/internal/data/models.go b/internal/data/models.go
index bb0b271..8815e0b 100644
--- a/internal/data/models.go
+++ b/internal/data/models.go
@@ -67,3 +67,8 @@ type User struct {
IsPublicDM bool
IsDeleted bool
}
+
+type UserData struct {
+ UserID snowflake.ID
+ Data string
+}
diff --git a/internal/data/users.sql.go b/internal/data/users.sql.go
index f7a7f9a..db28ca7 100644
--- a/internal/data/users.sql.go
+++ b/internal/data/users.sql.go
@@ -89,3 +89,40 @@ func (q *Queries) GetUserByPublicKey(ctx context.Context, publicKey ed25519.Publ
)
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
+}
diff --git a/internal/data/users_networks.sql.go b/internal/data/users_networks.sql.go
deleted file mode 100644
index e180b51..0000000
--- a/internal/data/users_networks.sql.go
+++ /dev/null
@@ -1,329 +0,0 @@
-// Code generated by sqlc. DO NOT EDIT.
-// versions:
-// sqlc v1.27.0
-// source: users_networks.sql
-
-package data
-
-import (
- "context"
- "strings"
-
- "github.com/kyren223/eko/pkg/snowflake"
-)
-
-const filterUsersInNetwork = `-- name: FilterUsersInNetwork :many
-SELECT user_id FROM users_networks
-WHERE network_id = ? AND user_id IN (/*SLICE:users*/?)
-`
-
-type FilterUsersInNetworkParams struct {
- NetworkID snowflake.ID
- Users []snowflake.ID
-}
-
-func (q *Queries) FilterUsersInNetwork(ctx context.Context, arg FilterUsersInNetworkParams) ([]snowflake.ID, error) {
- query := filterUsersInNetwork
- var queryParams []interface{}
- queryParams = append(queryParams, arg.NetworkID)
- if len(arg.Users) > 0 {
- for _, v := range arg.Users {
- queryParams = append(queryParams, v)
- }
- query = strings.Replace(query, "/*SLICE:users*/?", strings.Repeat(",?", len(arg.Users))[1:], 1)
- } else {
- query = strings.Replace(query, "/*SLICE:users*/?", "NULL", 1)
- }
- rows, err := q.db.QueryContext(ctx, query, queryParams...)
- if err != nil {
- return nil, err
- }
- defer rows.Close()
- var items []snowflake.ID
- for rows.Next() {
- var user_id snowflake.ID
- if err := rows.Scan(&user_id); err != nil {
- return nil, err
- }
- items = append(items, user_id)
- }
- if err := rows.Close(); err != nil {
- return nil, err
- }
- if err := rows.Err(); err != nil {
- return nil, err
- }
- return items, nil
-}
-
-const getNetworkBannedUsers = `-- name: GetNetworkBannedUsers :many
-SELECT
- users.id, users.name, users.public_key, users.description, users.is_public_dm, users.is_deleted,
- users_networks.ban_reason
-FROM users_networks
-JOIN users ON users.id = users_networks.user_id
-WHERE users_networks.network_id = ?
-`
-
-type GetNetworkBannedUsersRow struct {
- User User
- BanReason *string
-}
-
-func (q *Queries) GetNetworkBannedUsers(ctx context.Context, networkID snowflake.ID) ([]GetNetworkBannedUsersRow, error) {
- rows, err := q.db.QueryContext(ctx, getNetworkBannedUsers, networkID)
- if err != nil {
- return nil, err
- }
- defer rows.Close()
- var items []GetNetworkBannedUsersRow
- for rows.Next() {
- var i GetNetworkBannedUsersRow
- if err := rows.Scan(
- &i.User.ID,
- &i.User.Name,
- &i.User.PublicKey,
- &i.User.Description,
- &i.User.IsPublicDM,
- &i.User.IsDeleted,
- &i.BanReason,
- ); 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 getNetworkMemberById = `-- name: GetNetworkMemberById :one
-SELECT user_id, network_id, joined_at, is_member, is_admin, is_muted, is_banned, ban_reason, position
-FROM users_networks
-WHERE users_networks.network_id = ? AND users_networks.user_id = ?
-`
-
-type GetNetworkMemberByIdParams struct {
- NetworkID snowflake.ID
- UserID snowflake.ID
-}
-
-func (q *Queries) GetNetworkMemberById(ctx context.Context, arg GetNetworkMemberByIdParams) (UserNetwork, error) {
- row := q.db.QueryRowContext(ctx, getNetworkMemberById, arg.NetworkID, arg.UserID)
- var i UserNetwork
- err := row.Scan(
- &i.UserID,
- &i.NetworkID,
- &i.JoinedAt,
- &i.IsMember,
- &i.IsAdmin,
- &i.IsMuted,
- &i.IsBanned,
- &i.BanReason,
- &i.Position,
- )
- return i, err
-}
-
-const getNetworkMembers = `-- name: GetNetworkMembers :many
-SELECT
- users.id, users.name, users.public_key, users.description, users.is_public_dm, users.is_deleted,
- users_networks.joined_at,
- users_networks.is_admin,
- users_networks.is_muted
-FROM users_networks
-JOIN users ON users.id = users_networks.user_id
-WHERE users_networks.network_id = ? AND is_member = true
-`
-
-type GetNetworkMembersRow struct {
- User User
- JoinedAt string
- IsAdmin bool
- IsMuted bool
-}
-
-func (q *Queries) GetNetworkMembers(ctx context.Context, networkID snowflake.ID) ([]GetNetworkMembersRow, error) {
- rows, err := q.db.QueryContext(ctx, getNetworkMembers, networkID)
- if err != nil {
- return nil, err
- }
- defer rows.Close()
- var items []GetNetworkMembersRow
- for rows.Next() {
- var i GetNetworkMembersRow
- if err := rows.Scan(
- &i.User.ID,
- &i.User.Name,
- &i.User.PublicKey,
- &i.User.Description,
- &i.User.IsPublicDM,
- &i.User.IsDeleted,
- &i.JoinedAt,
- &i.IsAdmin,
- &i.IsMuted,
- ); 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 getUserNetwork = `-- name: GetUserNetwork :one
-SELECT user_id, network_id, joined_at, is_member, is_admin, is_muted, is_banned, ban_reason, position FROM users_networks
-WHERE user_id = ? AND network_id = ?
-`
-
-type GetUserNetworkParams struct {
- UserID snowflake.ID
- NetworkID snowflake.ID
-}
-
-func (q *Queries) GetUserNetwork(ctx context.Context, arg GetUserNetworkParams) (UserNetwork, error) {
- row := q.db.QueryRowContext(ctx, getUserNetwork, arg.UserID, arg.NetworkID)
- var i UserNetwork
- err := row.Scan(
- &i.UserID,
- &i.NetworkID,
- &i.JoinedAt,
- &i.IsMember,
- &i.IsAdmin,
- &i.IsMuted,
- &i.IsBanned,
- &i.BanReason,
- &i.Position,
- )
- return i, err
-}
-
-const getUserNetworks = `-- name: GetUserNetworks :many
-SELECT networks.id, networks.owner_id, networks.name, networks.icon, networks.bg_hex_color, networks.fg_hex_color, networks.is_public, users_networks.position FROM networks
-JOIN users_networks ON networks.id = users_networks.network_id
-WHERE users_networks.user_id = ?
-ORDER BY users_networks.position
-`
-
-type GetUserNetworksRow struct {
- Network Network
- Position *int64
-}
-
-func (q *Queries) GetUserNetworks(ctx context.Context, userID snowflake.ID) ([]GetUserNetworksRow, error) {
- rows, err := q.db.QueryContext(ctx, getUserNetworks, userID)
- if err != nil {
- return nil, err
- }
- defer rows.Close()
- var items []GetUserNetworksRow
- for rows.Next() {
- var i GetUserNetworksRow
- if err := rows.Scan(
- &i.Network.ID,
- &i.Network.OwnerID,
- &i.Network.Name,
- &i.Network.Icon,
- &i.Network.BgHexColor,
- &i.Network.FgHexColor,
- &i.Network.IsPublic,
- &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 setMember = `-- name: SetMember :one
-INSERT INTO users_networks (
- user_id, network_id,
- is_member, is_admin, is_muted,
- is_banned, ban_reason, position
-) VALUES (
- ?1, ?2,
- ?3, ?4, ?5,
- ?6, ?7,
- CASE
- WHEN ?3 = false THEN NULL
- ELSE (SELECT COUNT(*) FROM users_networks WHERE user_id = ?1)
- END
-)
-ON CONFLICT DO
-UPDATE SET
- is_member = EXCLUDED.is_member, is_admin = EXCLUDED.is_admin, is_muted = EXCLUDED.is_muted,
- is_banned = EXCLUDED.is_banned, ban_reason = EXCLUDED.ban_reason, position = EXCLUDED.position
-WHERE user_id = EXCLUDED.user_id AND network_id = EXCLUDED.network_id
-RETURNING user_id, network_id, joined_at, is_member, is_admin, is_muted, is_banned, ban_reason, position
-`
-
-type SetMemberParams struct {
- UserID snowflake.ID
- NetworkID snowflake.ID
- IsMember bool
- IsAdmin bool
- IsMuted bool
- IsBanned bool
- BanReason *string
-}
-
-func (q *Queries) SetMember(ctx context.Context, arg SetMemberParams) (UserNetwork, error) {
- row := q.db.QueryRowContext(ctx, setMember,
- arg.UserID,
- arg.NetworkID,
- arg.IsMember,
- arg.IsAdmin,
- arg.IsMuted,
- arg.IsBanned,
- arg.BanReason,
- )
- var i UserNetwork
- err := row.Scan(
- &i.UserID,
- &i.NetworkID,
- &i.JoinedAt,
- &i.IsMember,
- &i.IsAdmin,
- &i.IsMuted,
- &i.IsBanned,
- &i.BanReason,
- &i.Position,
- )
- return i, err
-}
-
-const swapUserNetworks = `-- name: SwapUserNetworks :exec
-UPDATE users_networks SET
- position = CASE
- WHEN position = ?1 THEN ?2
- WHEN position = ?2 THEN ?1
- END
-WHERE user_id = ?3 AND position IN (?1, ?2)
-`
-
-type SwapUserNetworksParams struct {
- Pos1 *int64
- Pos2 *int64
- UserID snowflake.ID
-}
-
-func (q *Queries) SwapUserNetworks(ctx context.Context, arg SwapUserNetworksParams) error {
- _, err := q.db.ExecContext(ctx, swapUserNetworks, arg.Pos1, arg.Pos2, arg.UserID)
- return err
-}