From f10f8396cca77dfa33c2c2d45063a4817b5612e5 Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Wed, 5 Feb 2025 20:00:29 +0200 Subject: Added support for editing messages in user signals --- internal/server/api/api.go | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) (limited to 'internal/server/api') diff --git a/internal/server/api/api.go b/internal/server/api/api.go index e087268..38d3b47 100644 --- a/internal/server/api/api.go +++ b/internal/server/api/api.go @@ -1091,6 +1091,14 @@ func EditMessage(ctx context.Context, sess *session.Session, request *packet.Edi return &ErrInternalError } + // Note: it is possible to edit your messages in any context + // regardless if you are in the network or if you have access to + // the frequency (or a user signal), as long as you know the message ID + // This should be fine but may be changed later to be more strict + if message.SenderID != sess.ID() { + return &ErrPermissionDenied + } + if message.FrequencyID != nil { frequency, err := queries.GetFrequencyById(ctx, *message.FrequencyID) if err != nil { @@ -1098,14 +1106,6 @@ func EditMessage(ctx context.Context, sess *session.Session, request *packet.Edi return &ErrInternalError } - // Note: it is possible to edit your messages in any frequency - // regardless if you are in the network or if you have access to - // the frequency, as long as you know the message ID - // This should be fine but may be changed later to be more strict - if message.SenderID != sess.ID() { - return &ErrPermissionDenied - } - editedMessage, err := queries.EditMessage(ctx, data.EditMessageParams{ Content: content, ID: message.ID, @@ -1128,7 +1128,19 @@ func EditMessage(ctx context.Context, sess *session.Session, request *packet.Edi } if message.ReceiverID != nil { - return &ErrNotImplemented + editedMessage, err := queries.EditMessage(ctx, data.EditMessageParams{ + Content: content, + ID: message.ID, + }) + if err != nil { + log.Println("database error 4:", err) + return &ErrInternalError + } + + return UserPropagate(ctx, sess, *message.ReceiverID, &packet.MessagesInfo{ + Messages: []data.Message{editedMessage}, + RemovedMessages: nil, + }) } assert.Never("unreachable") -- cgit v1.3.1