diff options
| author | Kyren223 <Kyren223@proton.me> | 2024-11-23 20:27:10 +0200 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2024-11-23 20:27:10 +0200 |
| commit | b67ab26b89e16d4492145702b0ef899d3d6b7416 (patch) | |
| tree | 457e88f976e1812a01face1c0096b826ac6d8805 /internal | |
| parent | 77d9971982e336aa6c0b816d84f2d37780c02de6 (diff) | |
Added frequency queries
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/data/frequencies.sql.go | 46 | ||||
| -rw-r--r-- | internal/data/models.go | 2 | ||||
| -rw-r--r-- | internal/data/networks.sql.go | 110 | ||||
| -rw-r--r-- | internal/data/users.sql.go | 38 |
4 files changed, 166 insertions, 30 deletions
diff --git a/internal/data/frequencies.sql.go b/internal/data/frequencies.sql.go index d978f1f..ae7cd43 100644 --- a/internal/data/frequencies.sql.go +++ b/internal/data/frequencies.sql.go @@ -13,9 +13,12 @@ import ( const createFrequency = `-- name: CreateFrequency :one INSERT INTO frequencies ( - id, network_id, name + 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 ` @@ -24,10 +27,18 @@ 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) + row := q.db.QueryRowContext(ctx, createFrequency, + arg.ID, + arg.NetworkID, + arg.Name, + arg.HexColor, + arg.Perms, + ) var i Frequency err := row.Scan( &i.ID, @@ -40,6 +51,15 @@ func (q *Queries) CreateFrequency(ctx context.Context, arg CreateFrequencyParams 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 = ? @@ -75,3 +95,23 @@ func (q *Queries) GetNetworkFrequencies(ctx context.Context, networkID snowflake } 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 +} diff --git a/internal/data/models.go b/internal/data/models.go index 193b0f5..fab7489 100644 --- a/internal/data/models.go +++ b/internal/data/models.go @@ -49,7 +49,7 @@ type User struct { Name string PublicKey ed25519.PublicKey Description *string - IsPublicDm bool + IsPublicDM bool IsDeleted bool } diff --git a/internal/data/networks.sql.go b/internal/data/networks.sql.go index 5a9457a..0752609 100644 --- a/internal/data/networks.sql.go +++ b/internal/data/networks.sql.go @@ -11,8 +11,63 @@ import ( "github.com/kyren223/eko/pkg/snowflake" ) +const createNetwork = `-- name: CreateNetwork :one +INSERT INTO networks ( + id, owner_id, name, is_public, + icon, bg_hex_color, fg_hex_color +) VALUES ( + ?, ?, ?, ?, ?, ?, ? +) +RETURNING id, owner_id, name, icon, bg_hex_color, fg_hex_color, is_public +` + +type CreateNetworkParams struct { + ID snowflake.ID + OwnerID snowflake.ID + Name string + IsPublic bool + Icon string + BgHexColor *string + FgHexColor string +} + +func (q *Queries) CreateNetwork(ctx context.Context, arg CreateNetworkParams) (Network, error) { + row := q.db.QueryRowContext(ctx, createNetwork, + arg.ID, + arg.OwnerID, + arg.Name, + arg.IsPublic, + arg.Icon, + arg.BgHexColor, + arg.FgHexColor, + ) + var i Network + err := row.Scan( + &i.ID, + &i.OwnerID, + &i.Name, + &i.Icon, + &i.BgHexColor, + &i.FgHexColor, + &i.IsPublic, + ) + return i, err +} + +const deleteNetwork = `-- name: DeleteNetwork :exec +DELETE FROM networks WHERE id = ? +` + +func (q *Queries) DeleteNetwork(ctx context.Context, id snowflake.ID) error { + _, err := q.db.ExecContext(ctx, deleteNetwork, id) + return err +} + const getBannedUsersInNetwork = `-- name: GetBannedUsersInNetwork :many -SELECT users.id, users.name, users.public_key, users.description, users.is_public_dm, users.is_deleted, network_banned_users.banned_at, network_banned_users.reason +SELECT + users.id, users.name, users.public_key, users.description, users.is_public_dm, users.is_deleted, + network_banned_users.banned_at, + network_banned_users.reason FROM network_banned_users JOIN users ON users.id = network_banned_users.banned_user_id WHERE network_banned_users.network_id = ? @@ -38,7 +93,7 @@ func (q *Queries) GetBannedUsersInNetwork(ctx context.Context, networkID snowfla &i.User.Name, &i.User.PublicKey, &i.User.Description, - &i.User.IsPublicDm, + &i.User.IsPublicDM, &i.User.IsDeleted, &i.BannedAt, &i.Reason, @@ -111,3 +166,54 @@ func (q *Queries) GetPublicNetworks(ctx context.Context) ([]Network, error) { } return items, nil } + +const getUsersInNetwork = `-- name: GetUsersInNetwork :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 = ? +` + +type GetUsersInNetworkRow 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) + if err != nil { + return nil, err + } + defer rows.Close() + var items []GetUsersInNetworkRow + for rows.Next() { + var i GetUsersInNetworkRow + 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 +} diff --git a/internal/data/users.sql.go b/internal/data/users.sql.go index 9728c21..4411a80 100644 --- a/internal/data/users.sql.go +++ b/internal/data/users.sql.go @@ -35,31 +35,21 @@ func (q *Queries) CreateUser(ctx context.Context, arg CreateUserParams) (User, e &i.Name, &i.PublicKey, &i.Description, - &i.IsPublicDm, + &i.IsPublicDM, &i.IsDeleted, ) return i, err } -const deleteUser = `-- name: DeleteUser :one +const deleteUser = `-- name: DeleteUser :exec UPDATE users SET is_deleted = true WHERE id = ? AND is_deleted = false -RETURNING id, name, public_key, description, is_public_dm, is_deleted ` -func (q *Queries) DeleteUser(ctx context.Context, id snowflake.ID) (User, error) { - row := q.db.QueryRowContext(ctx, deleteUser, id) - var i User - err := row.Scan( - &i.ID, - &i.Name, - &i.PublicKey, - &i.Description, - &i.IsPublicDm, - &i.IsDeleted, - ) - return i, err +func (q *Queries) DeleteUser(ctx context.Context, id snowflake.ID) error { + _, err := q.db.ExecContext(ctx, deleteUser, id) + return err } const getDeletedUserById = `-- name: GetDeletedUserById :one @@ -75,7 +65,7 @@ func (q *Queries) GetDeletedUserById(ctx context.Context, id snowflake.ID) (User &i.Name, &i.PublicKey, &i.Description, - &i.IsPublicDm, + &i.IsPublicDM, &i.IsDeleted, ) return i, err @@ -94,7 +84,7 @@ func (q *Queries) GetUserById(ctx context.Context, id snowflake.ID) (User, error &i.Name, &i.PublicKey, &i.Description, - &i.IsPublicDm, + &i.IsPublicDM, &i.IsDeleted, ) return i, err @@ -113,7 +103,7 @@ func (q *Queries) GetUserByPublicKey(ctx context.Context, publicKey ed25519.Publ &i.Name, &i.PublicKey, &i.Description, - &i.IsPublicDm, + &i.IsPublicDM, &i.IsDeleted, ) return i, err @@ -139,7 +129,7 @@ func (q *Queries) SetUserDescription(ctx context.Context, arg SetUserDescription &i.Name, &i.PublicKey, &i.Description, - &i.IsPublicDm, + &i.IsPublicDM, &i.IsDeleted, ) return i, err @@ -165,7 +155,7 @@ func (q *Queries) SetUserName(ctx context.Context, arg SetUserNameParams) (User, &i.Name, &i.PublicKey, &i.Description, - &i.IsPublicDm, + &i.IsPublicDM, &i.IsDeleted, ) return i, err @@ -179,19 +169,19 @@ RETURNING id, name, public_key, description, is_public_dm, is_deleted ` type SetUserPublicDMsParams struct { - IsPublicDm bool + IsPublicDM bool ID snowflake.ID } func (q *Queries) SetUserPublicDMs(ctx context.Context, arg SetUserPublicDMsParams) (User, error) { - row := q.db.QueryRowContext(ctx, setUserPublicDMs, arg.IsPublicDm, arg.ID) + row := q.db.QueryRowContext(ctx, setUserPublicDMs, arg.IsPublicDM, arg.ID) var i User err := row.Scan( &i.ID, &i.Name, &i.PublicKey, &i.Description, - &i.IsPublicDm, + &i.IsPublicDM, &i.IsDeleted, ) return i, err @@ -217,7 +207,7 @@ func (q *Queries) SetUserPublicKey(ctx context.Context, arg SetUserPublicKeyPara &i.Name, &i.PublicKey, &i.Description, - &i.IsPublicDm, + &i.IsPublicDM, &i.IsDeleted, ) return i, err |
