add endpoint for channel unread messages count

This commit is contained in:
2026-05-09 22:25:24 +02:00
parent 6e3e27e63d
commit c50ca3f78e
2 changed files with 25 additions and 0 deletions
+1
View File
@@ -62,6 +62,7 @@ func main() {
http.HandleFunc("GET /hub", withCORS(httpRequest.GetHubData)) http.HandleFunc("GET /hub", withCORS(httpRequest.GetHubData))
http.HandleFunc("POST /hub/channel/message", withCORS(httpRequest.HandleHubChannelMessage)) http.HandleFunc("POST /hub/channel/message", withCORS(httpRequest.HandleHubChannelMessage))
http.HandleFunc("GET /hub/channel/messages", withCORS(httpRequest.HandleHubChannelGetMessages)) http.HandleFunc("GET /hub/channel/messages", withCORS(httpRequest.HandleHubChannelGetMessages))
http.HandleFunc("GET /hub/channel/unreadcount", withCORS(httpRequest.HandleGetChannelUnreadMessagesCount))
http.HandleFunc("GET /hub/channel", withCORS(httpRequest.GetChannelData)) http.HandleFunc("GET /hub/channel", withCORS(httpRequest.GetChannelData))
http.HandleFunc("GET /hubs", withCORS(httpRequest.HandleGetHubs)) http.HandleFunc("GET /hubs", withCORS(httpRequest.HandleGetHubs))
http.HandleFunc("GET /hub/channels", withCORS(httpRequest.HandleGetChannels)) http.HandleFunc("GET /hub/channels", withCORS(httpRequest.HandleGetChannels))
+24
View File
@@ -2,6 +2,7 @@ package httpRequest
import ( import (
"encoding/json" "encoding/json"
"fmt"
"maps" "maps"
"net/http" "net/http"
"slices" "slices"
@@ -345,3 +346,26 @@ func HandleGetHubs(response http.ResponseWriter, request *http.Request) {
response.WriteHeader(http.StatusOK) response.WriteHeader(http.StatusOK)
response.Write(converted) response.Write(converted)
} }
func HandleGetChannelUnreadMessagesCount(response http.ResponseWriter, request *http.Request) {
if !validCheckWithResponseOnFail(response, request, normal) {
return
}
ctx := request.Context()
user, err := getUserByToken(ctx, request.Header.Get("token"))
if err != nil {
http.Error(response, "invalid token", http.StatusUnauthorized)
return
}
targetId, err := convertions.StringToUuid(request.URL.Query().Get("target_id"))
if err != nil {
http.Error(response, "invalid targetid", http.StatusBadRequest)
return
}
response.WriteHeader(http.StatusOK)
user.Mu.Lock()
response.Write([]byte(fmt.Sprintf("%d", user.ChannelUnreadMessage[targetId])))
user.ChannelUnreadMessage[targetId] = 0
user.Mu.Unlock()
}