add endpoint for channel unread messages count
This commit is contained in:
@@ -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))
|
||||||
|
|||||||
@@ -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()
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user