summaryrefslogtreecommitdiff
path: root/internal/server/api
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2025-02-05 20:00:29 +0200
committerKyren223 <Kyren223@proton.me>2025-02-05 20:00:29 +0200
commitf10f8396cca77dfa33c2c2d45063a4817b5612e5 (patch)
tree6011d71db4f1164d410b6d7e435bd57e7daf5bed /internal/server/api
parentb96118f59bb4ec7e416558046d5808aa38b1834f (diff)
Added support for editing messages in user signals
Diffstat (limited to 'internal/server/api')
-rw-r--r--internal/server/api/api.go30
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")