Fix writing a message to an offline user causes an error log on the

backend
This commit is contained in:
2025-08-09 10:47:41 +03:00
parent 375cd7a0f5
commit 959290d2ff
3 changed files with 13 additions and 8 deletions

View File

@@ -1 +1 @@
v0.1.1
v0.1.2

View File

@@ -217,7 +217,7 @@ func SendMessage(ctx context.Context, sess *session.Session, request *packet.Sen
return UserPropagate(ctx, sess, user.ID, &packet.MessagesInfo{
Messages: []data.Message{message},
RemovedMessages: nil,
})
}, false)
}
assert.Never("already checked in the first line for the case where both are nil")
@@ -769,7 +769,7 @@ func SetMember(ctx context.Context, sess *session.Session, request *packet.SetMe
if newMember.UserID == sess.ID() {
return networksInfoPayload
} else {
UserPropagate(ctx, sess, newMember.UserID, networksInfoPayload)
UserPropagate(ctx, sess, newMember.UserID, networksInfoPayload, true)
return membersInfoPayload
}
}
@@ -1117,7 +1117,7 @@ func DeleteMessage(ctx context.Context, sess *session.Session, request *packet.D
return UserPropagate(ctx, sess, *message.ReceiverID, &packet.MessagesInfo{
Messages: nil,
RemovedMessages: []snowflake.ID{message.ID},
})
}, false)
}
assert.Never("unreachable")
@@ -1197,7 +1197,7 @@ func EditMessage(ctx context.Context, sess *session.Session, request *packet.Edi
return UserPropagate(ctx, sess, *message.ReceiverID, &packet.MessagesInfo{
Messages: []data.Message{editedMessage},
RemovedMessages: nil,
})
}, false)
}
assert.Never("unreachable")
@@ -1494,7 +1494,7 @@ func BlockUser(ctx context.Context, sess *session.Session, request *packet.Block
RemovedBlockedUsers: nil,
BlockingUsers: []snowflake.ID{sess.ID()},
RemovedBlockingUsers: nil,
})
}, false)
return &packet.BlockInfo{
BlockedUsers: []snowflake.ID{user.ID},
@@ -1534,7 +1534,7 @@ func BlockUser(ctx context.Context, sess *session.Session, request *packet.Block
RemovedBlockedUsers: nil,
BlockingUsers: nil,
RemovedBlockingUsers: []snowflake.ID{sess.ID()},
})
}, false)
return &packet.BlockInfo{
BlockedUsers: nil,

View File

@@ -129,10 +129,15 @@ func SplitMembersAndUsers(membersAndUsers []data.GetNetworkMembersRow) ([]data.M
func UserPropagate(
ctx context.Context, sess *session.Session,
userId snowflake.ID, payload packet.Payload,
errorOnNil bool,
) packet.Payload {
session := sess.Manager().Session(userId)
if session == nil {
slog.ErrorContext(ctx, "propagation failed", ctxkeys.UserID.String(), userId, "reason", "session is nil")
if errorOnNil {
slog.ErrorContext(ctx, "propagation failed", ctxkeys.UserID.String(), userId, "reason", "session is nil")
} else {
slog.InfoContext(ctx, "propagation failed", ctxkeys.UserID.String(), userId, "reason", "session is nil")
}
return payload
}
timeout := 1 * time.Second