summaryrefslogtreecommitdiff
path: root/internal/server
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2025-02-05 16:45:01 +0200
committerKyren223 <Kyren223@proton.me>2025-02-05 16:45:01 +0200
commit9d1158f03e63c32c426f3ee9edfce310dd4c2492 (patch)
tree5b37029312cf054676140c1afffd045874910da0 /internal/server
parentf0607f16633d266f55a4b08f7edbbc13d08121ae (diff)
Implemented deleting messages in user signals
Diffstat (limited to 'internal/server')
-rw-r--r--internal/server/api/api.go15
1 files changed, 14 insertions, 1 deletions
diff --git a/internal/server/api/api.go b/internal/server/api/api.go
index a95065c..92679b8 100644
--- a/internal/server/api/api.go
+++ b/internal/server/api/api.go
@@ -1037,7 +1037,20 @@ func DeleteMessage(ctx context.Context, sess *session.Session, request *packet.D
}
if message.ReceiverID != nil {
- return &ErrNotImplemented
+ if message.SenderID != sess.ID() {
+ return &ErrPermissionDenied
+ }
+
+ err = queries.DeleteMessage(ctx, message.ID)
+ if err != nil {
+ log.Println("database error 5:", err)
+ return &ErrInternalError
+ }
+
+ return UserPropagate(ctx, sess, *message.ReceiverID, &packet.MessagesInfo{
+ Messages: nil,
+ RemovedMessages: []snowflake.ID{message.ID},
+ })
}
assert.Never("unreachable")