diff options
| author | Kyren223 <Kyren223@proton.me> | 2025-02-05 20:00:29 +0200 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2025-02-05 20:00:29 +0200 |
| commit | f10f8396cca77dfa33c2c2d45063a4817b5612e5 (patch) | |
| tree | 6011d71db4f1164d410b6d7e435bd57e7daf5bed /internal | |
| parent | b96118f59bb4ec7e416558046d5808aa38b1834f (diff) | |
Added support for editing messages in user signals
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/server/api/api.go | 30 |
1 files changed, 21 insertions, 9 deletions
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") |
