summaryrefslogtreecommitdiff
path: root/internal/server/api
diff options
context:
space:
mode:
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")