add hub get channels and users
This commit is contained in:
@@ -274,7 +274,7 @@ func HandleGetChannels(response http.ResponseWriter, request *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
ctx := request.Context()
|
ctx := request.Context()
|
||||||
user, hubUser, hub, err := getHubUserIfValidWithResponseOnFail(ctx, response, request)
|
_, _, hub, err := getHubUserIfValidWithResponseOnFail(ctx, response, request)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -286,6 +286,51 @@ func HandleGetChannels(response http.ResponseWriter, request *http.Request) {
|
|||||||
}
|
}
|
||||||
channelMap[uint8(i)] = channel
|
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) {
|
func hubPermissionContext(response http.ResponseWriter, request *http.Request, rt bodyLimit, needed types.Permissions) (*types.HubUser, *types.Hub, context.Context, uint8, bool) {
|
||||||
|
|||||||
Reference in New Issue
Block a user