add hub get channels and users

This commit is contained in:
cos
2026-05-02 02:21:18 +02:00
parent 89101adf2f
commit b5623feb5a
+46 -1
View File
@@ -274,7 +274,7 @@ func HandleGetChannels(response http.ResponseWriter, request *http.Request) {
return
}
ctx := request.Context()
user, hubUser, hub, err := getHubUserIfValidWithResponseOnFail(ctx, response, request)
_, _, hub, err := getHubUserIfValidWithResponseOnFail(ctx, response, request)
if err != nil {
return
}
@@ -286,6 +286,51 @@ func HandleGetChannels(response http.ResponseWriter, request *http.Request) {
}
channelMap[uint8(i)] = channel
}
hub.Mu.Unlock()
if len(channelMap) == 0 {
response.WriteHeader(http.StatusNoContent)
return
}
channels, err := json.Marshal(channelMap)
if err != nil {
http.Error(response, "json error", http.StatusInternalServerError)
return
}
response.WriteHeader(http.StatusOK)
response.Write(channels)
}
func HandleGetHubUsers(response http.ResponseWriter, request *http.Request) {
if !validCheckWithResponseOnFail(response, request, normal) {
return
}
ctx := request.Context()
_, requestor, hub, err := getHubUserIfValidWithResponseOnFail(ctx, response, request)
if {
return
}
users := make([]*types.HubUser, 0)
hub.Mu.RLock()
for userId, user := range hub.Users {
if userId == requestor.OriginalId {
continue
}
users = append(users, user)
}
hub.Mu.Unlock()
if len(users) == 0 {
response.WriteHeader(http.StatusNoContent)
return
}
channels, err := json.Marshal(users)
if err != nil {
http.Error(response, "json error", http.StatusInternalServerError)
return
}
response.WriteHeader(http.StatusOK)
response.Write(channels)
}
func hubPermissionContext(response http.ResponseWriter, request *http.Request, rt bodyLimit, needed types.Permissions) (*types.HubUser, *types.Hub, context.Context, uint8, bool) {