summaryrefslogtreecommitdiff
path: root/internal/data/users_networks.sql.go
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2025-01-06 16:17:59 +0200
committerKyren223 <Kyren223@proton.me>2025-01-06 16:17:59 +0200
commit547593d3159d8772392e81b40082928094b35b8c (patch)
treec8c7a93309c1938d6de8b1fc3ccb8042d2210821 /internal/data/users_networks.sql.go
parent6be63e6df626e390565e26439b65e81088375a84 (diff)
Fleshed out and fixed issues in both the server and client for how
networks and members work
Diffstat (limited to 'internal/data/users_networks.sql.go')
-rw-r--r--internal/data/users_networks.sql.go45
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,