update naming of functions, add option to get count of unread messages of user
This commit is contained in:
@@ -21,7 +21,7 @@ import (
|
||||
)
|
||||
|
||||
func HandleDm(response http.ResponseWriter, request *http.Request) {
|
||||
if !validCheckWithResponseOnFail(&response, request, postNormal) {
|
||||
if !validCheckWithResponseOnFail(&response, request, normal) {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -74,10 +74,14 @@ func HandleDm(response http.ResponseWriter, request *http.Request) {
|
||||
Receiver: conn.Id,
|
||||
}
|
||||
|
||||
wsServer.WsSendMessageCloseIfTimeout(target, types.WsEventMessage{
|
||||
Type: WsEventType.DirectMessage,
|
||||
Event: message,
|
||||
})
|
||||
if user.WsConn != nil {
|
||||
wsServer.WsSendMessageCloseIfTimeout(target, types.WsEventMessage{
|
||||
Type: WsEventType.DirectMessage,
|
||||
Event: message,
|
||||
})
|
||||
} else {
|
||||
cache.IncrementConnectionsUnreadMessages(user.Id, conn.Id)
|
||||
}
|
||||
|
||||
err = postgresql.ConnectionMessageSave(ctx, message)
|
||||
if err != nil {
|
||||
@@ -88,8 +92,52 @@ func HandleDm(response http.ResponseWriter, request *http.Request) {
|
||||
response.WriteHeader(http.StatusAccepted)
|
||||
}
|
||||
|
||||
func HandleUserGetConnectionsUnreadMessages(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
|
||||
}
|
||||
|
||||
connectionIds, err := convertions.StringToUuidSlice(request.URL.Query().Get("connections"))
|
||||
if err != nil {
|
||||
http.Error(response, "invalid uuid format", http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
result := make([]uint32, len(*connectionIds))
|
||||
|
||||
for _, connId := range *connectionIds {
|
||||
_, ok := cache.GetConnection(user, connId)
|
||||
if !ok {
|
||||
http.Error(response, "no such connection: "+connId.String(), http.StatusUnauthorized)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
for _, connId := range *connectionIds {
|
||||
count, _ := cache.GetConnectionsUnreadMessages(user.Id, connId)
|
||||
cache.DeallocateConnectionsUnreadMessages(user.Id, connId)
|
||||
result = append(result, count)
|
||||
}
|
||||
|
||||
json, err := json2.Marshal(result)
|
||||
if err != nil {
|
||||
http.Error(response, "internal server error", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
response.WriteHeader(http.StatusAccepted)
|
||||
response.Write(json)
|
||||
}
|
||||
|
||||
func HandleUserGetConnectionMessages(response http.ResponseWriter, request *http.Request) {
|
||||
if !validCheckWithResponseOnFail(&response, request, postNormal) {
|
||||
if !validCheckWithResponseOnFail(&response, request, normal) {
|
||||
return
|
||||
}
|
||||
ctx := request.Context()
|
||||
@@ -104,7 +152,7 @@ func HandleUserGetConnectionMessages(response http.ResponseWriter, request *http
|
||||
return
|
||||
}
|
||||
|
||||
before, err := convertions.ConvertStringTimestamp(request.URL.Query().Get("before"))
|
||||
before, err := convertions.StringToTimestamp(request.URL.Query().Get("before"))
|
||||
if err != nil {
|
||||
before = time.Now()
|
||||
}
|
||||
@@ -158,7 +206,7 @@ func HandleUserGetConnectionMessages(response http.ResponseWriter, request *http
|
||||
}
|
||||
|
||||
func HandleUserNewConnection(response http.ResponseWriter, request *http.Request) {
|
||||
if !validCheckWithResponseOnFail(&response, request, postNormal) {
|
||||
if !validCheckWithResponseOnFail(&response, request, normal) {
|
||||
return
|
||||
}
|
||||
ctx := request.Context()
|
||||
@@ -167,7 +215,7 @@ func HandleUserNewConnection(response http.ResponseWriter, request *http.Request
|
||||
http.Error(response, "invalid token", http.StatusUnauthorized)
|
||||
return
|
||||
}
|
||||
recipientId, err := convertions.ConvertStringUuid(request.FormValue("recipient"))
|
||||
recipientId, err := convertions.StringToUuid(request.FormValue("recipient"))
|
||||
if err != nil {
|
||||
http.Error(response, "no such user", http.StatusUnauthorized)
|
||||
return
|
||||
@@ -205,7 +253,7 @@ func HandleUserNewConnection(response http.ResponseWriter, request *http.Request
|
||||
http.Error(response, "internal server error", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
cache.CacheAddConnection(requestor, recipient, connection)
|
||||
cache.AddConnection(requestor, recipient, connection)
|
||||
|
||||
wsServer.WsSendMessageCloseIfTimeout(recipient, types.WsEventMessage{
|
||||
Type: WsEventType.ConnectionCreated,
|
||||
@@ -217,7 +265,7 @@ func HandleUserNewConnection(response http.ResponseWriter, request *http.Request
|
||||
}
|
||||
|
||||
func HandleUserDeleteConnection(response http.ResponseWriter, request *http.Request) {
|
||||
if !validCheckWithResponseOnFail(&response, request, postNormal) {
|
||||
if !validCheckWithResponseOnFail(&response, request, normal) {
|
||||
return
|
||||
}
|
||||
ctx := request.Context()
|
||||
@@ -259,7 +307,7 @@ func HandleUserDeleteConnection(response http.ResponseWriter, request *http.Requ
|
||||
return
|
||||
}
|
||||
|
||||
cache.CacheDeleteConnection(user, user2, conn.Id)
|
||||
cache.DeleteConnection(user, user2, conn.Id)
|
||||
wsServer.WsSendMessageCloseIfTimeout(user2, types.WsEventMessage{
|
||||
Type: WsEventType.ConnectionDeleted,
|
||||
Event: conn.Id,
|
||||
@@ -270,7 +318,7 @@ func HandleUserDeleteConnection(response http.ResponseWriter, request *http.Requ
|
||||
}
|
||||
|
||||
func HandleUserElevateConnection(response http.ResponseWriter, request *http.Request) {
|
||||
if !validCheckWithResponseOnFail(&response, request, postNormal) {
|
||||
if !validCheckWithResponseOnFail(&response, request, normal) {
|
||||
return
|
||||
}
|
||||
ctx := request.Context()
|
||||
@@ -330,7 +378,7 @@ func HandleUserElevateConnection(response http.ResponseWriter, request *http.Req
|
||||
}
|
||||
|
||||
func HandleUserDeElevateConnection(response http.ResponseWriter, request *http.Request) {
|
||||
if !validCheckWithResponseOnFail(&response, request, postNormal) {
|
||||
if !validCheckWithResponseOnFail(&response, request, normal) {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -377,7 +425,7 @@ func HandleUserDeElevateConnection(response http.ResponseWriter, request *http.R
|
||||
}
|
||||
|
||||
func HandleUserGetConnections(response http.ResponseWriter, request *http.Request) {
|
||||
if !validCheckWithResponseOnFail(&response, request, postNormal) {
|
||||
if !validCheckWithResponseOnFail(&response, request, normal) {
|
||||
return
|
||||
}
|
||||
ctx := request.Context()
|
||||
|
||||
Reference in New Issue
Block a user