diff options
| author | Kyren223 <Kyren223@proton.me> | 2024-11-27 17:34:28 +0200 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2024-11-27 17:34:28 +0200 |
| commit | be22bb89db0b952ea0545e7c65b46e92ebb205d2 (patch) | |
| tree | da9b2123d826a2ab61ab8c4e53ee102c5f966f32 /internal/data | |
| parent | 6a34d7be01256df472015564a655d8253acd8724 (diff) | |
Added create network to server api
Diffstat (limited to 'internal/data')
| -rw-r--r-- | internal/data/networks.sql.go | 148 |
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 = ? |
