summaryrefslogtreecommitdiff
path: root/internal/data
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2024-11-27 17:34:28 +0200
committerKyren223 <Kyren223@proton.me>2024-11-27 17:34:28 +0200
commitbe22bb89db0b952ea0545e7c65b46e92ebb205d2 (patch)
treeda9b2123d826a2ab61ab8c4e53ee102c5f966f32 /internal/data
parent6a34d7be01256df472015564a655d8253acd8724 (diff)
Added create network to server api
Diffstat (limited to 'internal/data')
-rw-r--r--internal/data/networks.sql.go148
1 files changed, 100 insertions, 48 deletions
diff --git a/internal/data/networks.sql.go b/internal/data/networks.sql.go
index 8064fa9..5e1e0db 100644
--- a/internal/data/networks.sql.go
+++ b/internal/data/networks.sql.go
@@ -64,7 +64,7 @@ func (q *Queries) DeleteNetwork(ctx context.Context, id snowflake.ID) error {
return err
}
-const getBannedUsersInNetwork = `-- name: GetBannedUsersInNetwork :many
+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
@@ -73,20 +73,20 @@ JOIN users ON users.id = users_networks.user_id
WHERE users_networks.network_id = ?
`
-type GetBannedUsersInNetworkRow struct {
+type GetNetworkBannedUsersRow struct {
User User
BanReason *string
}
-func (q *Queries) GetBannedUsersInNetwork(ctx context.Context, networkID snowflake.ID) ([]GetBannedUsersInNetworkRow, error) {
- rows, err := q.db.QueryContext(ctx, getBannedUsersInNetwork, networkID)
+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 []GetBannedUsersInNetworkRow
+ var items []GetNetworkBannedUsersRow
for rows.Next() {
- var i GetBannedUsersInNetworkRow
+ var i GetNetworkBannedUsersRow
if err := rows.Scan(
&i.User.ID,
&i.User.Name,
@@ -129,43 +129,7 @@ func (q *Queries) GetNetworkById(ctx context.Context, id snowflake.ID) (Network,
return i, err
}
-const getPublicNetworks = `-- name: GetPublicNetworks :many
-SELECT id, owner_id, name, icon, bg_hex_color, fg_hex_color, is_public FROM networks
-WHERE is_public = true
-`
-
-func (q *Queries) GetPublicNetworks(ctx context.Context) ([]Network, error) {
- rows, err := q.db.QueryContext(ctx, getPublicNetworks)
- if err != nil {
- return nil, err
- }
- defer rows.Close()
- var items []Network
- for rows.Next() {
- var i Network
- if err := rows.Scan(
- &i.ID,
- &i.OwnerID,
- &i.Name,
- &i.Icon,
- &i.BgHexColor,
- &i.FgHexColor,
- &i.IsPublic,
- ); 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 getUsersInNetwork = `-- name: GetUsersInNetwork :many
+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,
@@ -176,22 +140,22 @@ JOIN users ON users.id = users_networks.user_id
WHERE users_networks.network_id = ? AND is_member = true
`
-type GetUsersInNetworkRow struct {
+type GetNetworkMembersRow struct {
User User
JoinedAt string
IsAdmin bool
IsMuted bool
}
-func (q *Queries) GetUsersInNetwork(ctx context.Context, networkID snowflake.ID) ([]GetUsersInNetworkRow, error) {
- rows, err := q.db.QueryContext(ctx, getUsersInNetwork, 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 []GetUsersInNetworkRow
+ var items []GetNetworkMembersRow
for rows.Next() {
- var i GetUsersInNetworkRow
+ var i GetNetworkMembersRow
if err := rows.Scan(
&i.User.ID,
&i.User.Name,
@@ -216,6 +180,42 @@ func (q *Queries) GetUsersInNetwork(ctx context.Context, networkID snowflake.ID)
return items, nil
}
+const getPublicNetworks = `-- name: GetPublicNetworks :many
+SELECT id, owner_id, name, icon, bg_hex_color, fg_hex_color, is_public FROM networks
+WHERE is_public = true
+`
+
+func (q *Queries) GetPublicNetworks(ctx context.Context) ([]Network, error) {
+ rows, err := q.db.QueryContext(ctx, getPublicNetworks)
+ if err != nil {
+ return nil, err
+ }
+ defer rows.Close()
+ var items []Network
+ for rows.Next() {
+ var i Network
+ if err := rows.Scan(
+ &i.ID,
+ &i.OwnerID,
+ &i.Name,
+ &i.Icon,
+ &i.BgHexColor,
+ &i.FgHexColor,
+ &i.IsPublic,
+ ); 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 setNetworkIcon = `-- name: SetNetworkIcon :one
UPDATE networks SET
icon = ?,
@@ -306,6 +306,58 @@ func (q *Queries) SetNetworkName(ctx context.Context, arg SetNetworkNameParams)
return i, err
}
+const setNetworkUser = `-- name: SetNetworkUser :one
+INSERT INTO users_networks (
+ user_id, network_id,
+ is_member, is_admin, is_muted,
+ is_banned, ban_reason
+) VALUES (
+ ?, ?,
+ ?, ?, ?,
+ ?, ?
+)
+ON CONFLICT DO
+UPDATE SET
+ is_member = ?, is_admin = ?, is_muted = ?,
+ is_banned = ?, ban_reason = ?
+WHERE user_id = ? AND network_id = ?
+RETURNING user_id, network_id, joined_at, is_member, is_admin, is_muted, is_banned, ban_reason
+`
+
+type SetNetworkUserParams struct {
+ UserID snowflake.ID
+ NetworkID snowflake.ID
+ IsMember bool
+ IsAdmin bool
+ IsMuted bool
+ IsBanned bool
+ BanReason *string
+}
+
+func (q *Queries) SetNetworkUser(ctx context.Context, arg SetNetworkUserParams) (UsersNetwork, error) {
+ row := q.db.QueryRowContext(ctx, setNetworkUser,
+ arg.UserID,
+ arg.NetworkID,
+ arg.IsMember,
+ arg.IsAdmin,
+ arg.IsMuted,
+ arg.IsBanned,
+ arg.BanReason,
+ )
+ var i UsersNetwork
+ err := row.Scan(
+ &i.UserID,
+ &i.NetworkID,
+ &i.JoinedAt,
+ &i.IsMember,
+ &i.IsAdmin,
+ &i.IsMuted,
+ &i.IsBanned,
+ &i.BanReason,
+ )
+ return i, err
+}
+
const transferNetwork = `-- name: TransferNetwork :one
UPDATE networks SET
owner_id = ?