diff options
| author | Kyren223 <Kyren223@proton.me> | 2025-01-06 16:17:59 +0200 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2025-01-06 16:17:59 +0200 |
| commit | 547593d3159d8772392e81b40082928094b35b8c (patch) | |
| tree | c8c7a93309c1938d6de8b1fc3ccb8042d2210821 /internal/data | |
| parent | 6be63e6df626e390565e26439b65e81088375a84 (diff) | |
Fleshed out and fixed issues in both the server and client for how
networks and members work
Diffstat (limited to 'internal/data')
| -rw-r--r-- | internal/data/users_networks.sql.go | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/internal/data/users_networks.sql.go b/internal/data/users_networks.sql.go index 8191fa2..e180b51 100644 --- a/internal/data/users_networks.sql.go +++ b/internal/data/users_networks.sql.go @@ -7,10 +7,55 @@ 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, |
