summaryrefslogtreecommitdiff
path: root/internal/server/api
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2025-02-13 16:49:07 +0200
committerKyren223 <Kyren223@proton.me>2025-02-13 16:49:07 +0200
commitcfc5fa3d5e9036400b33a2835cc284f26a872ad9 (patch)
tree9d2ba0ba3d87ad98443383358075e6e299e8bb77 /internal/server/api
parentab4b010e95360405d344e2859df423dc9d3b02fe (diff)
Users that are no longer members (left/kicked/banned) now get fetched
and show their names properly in messages
Diffstat (limited to 'internal/server/api')
-rw-r--r--internal/server/api/api.go24
1 files changed, 24 insertions, 0 deletions
diff --git a/internal/server/api/api.go b/internal/server/api/api.go
index 6b33ab8..fe5542a 100644
--- a/internal/server/api/api.go
+++ b/internal/server/api/api.go
@@ -288,6 +288,11 @@ func CreateOrGetUser(ctx context.Context, node *snowflake.Node, pubKey ed25519.P
}
func CreateNetwork(ctx context.Context, sess *session.Session, request *packet.CreateNetwork) packet.Payload {
+ // TODO: implement private servers
+ if !request.IsPublic {
+ return &ErrNotImplemented
+ }
+
name := strings.TrimSpace(request.Name)
if name == "" {
return &packet.Error{Error: "server name must not be blank"}
@@ -1536,3 +1541,22 @@ func GetBlockedUsers(ctx context.Context, sess *session.Session) packet.Payload
RemovedBlockingUsers: nil,
}
}
+
+func GetUsers(ctx context.Context, sess *session.Session, request *packet.GetUsers) packet.Payload {
+ if len(request.Users) > packet.MaxUsersInGetUsers {
+ return &packet.Error{Error: fmt.Sprintf(
+ "Max users per request may not exceed %v", packet.MaxUsersInGetUsers,
+ )}
+ }
+
+ queries := data.New(db)
+ users, err := queries.GetUsersByIds(ctx, request.Users)
+ if err != nil {
+ log.Println("database error 1:", err)
+ return &ErrInternalError
+ }
+
+ return &packet.UsersInfo{
+ Users: users,
+ }
+}