From 5f6845c3997bd5478a1f51a8f108b71afa427a72 Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Mon, 21 Jul 2025 13:46:40 +0300 Subject: Added the ability to delete users --- internal/server/api/api.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'internal/server/api') diff --git a/internal/server/api/api.go b/internal/server/api/api.go index 35ca44c..5f11070 100644 --- a/internal/server/api/api.go +++ b/internal/server/api/api.go @@ -842,6 +842,24 @@ func SetUserData(ctx context.Context, sess *session.Session, request *packet.Set var userPtr *data.User = nil if request.User != nil { + if request.User.IsDeleted { + // Delete user + + pubKey, _, err := ed25519.GenerateKey(nil) + assert.NoError(err, "random should never fail") + err = queries.DeleteUser(ctx, data.DeleteUserParams{ + PublicKey: pubKey, + ID: sess.ID(), + }) + if err != nil { + slog.ErrorContext(ctx, "database error", "error", err) + return &ErrInternalError + } + + sess.Close() // Close connection and respond with nothing + return nil + } + name := request.User.Name if len(name) > packet.MaxUsernameBytes { return &packet.Error{Error: fmt.Sprintf( -- cgit v1.3.1