fix db function naming, connections query, and nil map init
This commit is contained in:
+29
-41
@@ -77,21 +77,16 @@ func sendToAllMessageCloseIfTimeout(message *map[string]any) {
|
||||
}
|
||||
}
|
||||
|
||||
func WsSendToGroup(ctx context.Context, groupId uint32, senderId uint32, message string) error {
|
||||
group, err := CacheGetGroup(groupId)
|
||||
if err != nil {
|
||||
return errors.New("group invalid")
|
||||
}
|
||||
|
||||
sender, err := CacheGetUserById(senderId)
|
||||
if err != nil {
|
||||
sender = &User{Id: senderId}
|
||||
err = DbUserSetById(ctx, sender)
|
||||
if err != nil {
|
||||
return errors.New("non existing sender")
|
||||
}
|
||||
func WsSendToUser(from *User, to *User, message string) {
|
||||
var msg = map[string]any{
|
||||
"type": WsMessageToUserFrom(DirectMessage_),
|
||||
"from": from.Id,
|
||||
"content": message,
|
||||
}
|
||||
sendMessageCloseIfTimeout(from, &msg)
|
||||
}
|
||||
|
||||
func WsSendToGroup(group *Group, sender *User, message string) error {
|
||||
for groupUserId := range group.Users {
|
||||
groupUser, err := CacheGetUserById(groupUserId)
|
||||
if err != nil || groupUser.Id == sender.Id {
|
||||
@@ -99,9 +94,9 @@ func WsSendToGroup(ctx context.Context, groupId uint32, senderId uint32, message
|
||||
}
|
||||
|
||||
var msg = map[string]any{
|
||||
"from": "group",
|
||||
"group": group.Id,
|
||||
"sender": sender.Name,
|
||||
"type": WsMessageToUserFrom(Group_),
|
||||
"from": group.Id,
|
||||
"sender": sender.Id,
|
||||
"content": message,
|
||||
}
|
||||
sendMessageCloseIfTimeout(groupUser, &msg)
|
||||
@@ -118,7 +113,7 @@ func handleUnauthenticatedMessage(ctx context.Context, user *User, userMessage *
|
||||
token, ok := (*userMessage)["token"].(string)
|
||||
if !ok {
|
||||
var msg = map[string]any{
|
||||
"from": "server",
|
||||
"type": WsMessageToUserFrom(Server_),
|
||||
"error": "no token in message",
|
||||
}
|
||||
sendMessageCloseIfTimeout(user, &msg)
|
||||
@@ -128,7 +123,7 @@ func handleUnauthenticatedMessage(ctx context.Context, user *User, userMessage *
|
||||
userId, err := TokenValidateGetId(token)
|
||||
if err != nil {
|
||||
var msg = map[string]any{
|
||||
"from": "server",
|
||||
"type": WsMessageToUserFrom(Server_),
|
||||
"error": "invalid token",
|
||||
}
|
||||
sendMessageCloseIfTimeout(user, &msg)
|
||||
@@ -137,28 +132,12 @@ func handleUnauthenticatedMessage(ctx context.Context, user *User, userMessage *
|
||||
|
||||
userFromCache, err := CacheGetUserById(userId)
|
||||
if err != nil {
|
||||
dbUser := &User{Id: userId}
|
||||
err = DbUserSetByIdWithoutGroupsConnections(ctx, dbUser)
|
||||
if err != nil {
|
||||
var msg = map[string]any{
|
||||
"from": "server",
|
||||
"error": "invalid user data",
|
||||
}
|
||||
sendMessageCloseIfTimeout(user, &msg)
|
||||
return false
|
||||
var msg = map[string]any{
|
||||
"type": WsMessageToUserFrom(Server_),
|
||||
"error": "user not found",
|
||||
}
|
||||
err = DbUserSetGroups(ctx, dbUser)
|
||||
if err != nil {
|
||||
var msg = map[string]any{
|
||||
"from": "server",
|
||||
"error": "invalid user data",
|
||||
}
|
||||
sendMessageCloseIfTimeout(user, &msg)
|
||||
return false
|
||||
}
|
||||
dbUser.WsConn = user.WsConn
|
||||
CacheSaveUser(dbUser)
|
||||
userFromCache = dbUser
|
||||
sendMessageCloseIfTimeout(user, &msg)
|
||||
return false
|
||||
}
|
||||
|
||||
userFromCache.WsConn = user.WsConn
|
||||
@@ -169,10 +148,19 @@ func handleUnauthenticatedMessage(ctx context.Context, user *User, userMessage *
|
||||
if err != nil {
|
||||
dbGroup := &Group{Id: groupId}
|
||||
|
||||
err = DbGroupSetById(ctx, dbGroup)
|
||||
err = DbGroupGetById(ctx, dbGroup)
|
||||
if err != nil {
|
||||
var msg = map[string]any{
|
||||
"from": "server",
|
||||
"type": "server",
|
||||
"error": "invalid user data",
|
||||
}
|
||||
sendMessageCloseIfTimeout(user, &msg)
|
||||
return false
|
||||
}
|
||||
err = DbGroupGetMembers(ctx, dbGroup)
|
||||
if err != nil {
|
||||
var msg = map[string]any{
|
||||
"type": "server",
|
||||
"error": "invalid user data",
|
||||
}
|
||||
sendMessageCloseIfTimeout(user, &msg)
|
||||
|
||||
Reference in New Issue
Block a user