diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-10 09:59:21 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-10 09:59:21 +0300 |
| commit | 1eefc6fc815e5fbd781e8818c61aa024821ce0d3 (patch) | |
| tree | bfab82e9e7e2d48dd1a3d23dc9eae017ab867975 /internal/api/handlers.go | |
| parent | 0af2b2bc97275b5b6168cb91dabfe30d89bd5d07 (diff) | |
Move self-deletion guard from handler into AdminService (DeleteUser) to fix SoC violation
- Add ErrCannotDeleteSelf sentinel error in service layer.
- Change DeleteUser signature to (ctx, callerID, id) across all layers.
- Move self-deletion guard from handleDeleteUser handler into userAdminService.DeleteUser.
- Update handleError to map ErrCannotDeleteSelf to 400 BadRequest.
- Adjust all affected tests to use the new signature.
Diffstat (limited to 'internal/api/handlers.go')
| -rw-r--r-- | internal/api/handlers.go | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/internal/api/handlers.go b/internal/api/handlers.go index 029d78b..b276b10 100644 --- a/internal/api/handlers.go +++ b/internal/api/handlers.go @@ -56,7 +56,8 @@ func handleError(w http.ResponseWriter, err error) { case errors.Is(err, service.ErrInvalidCredentials): writeJSON(w, http.StatusUnauthorized, map[string]string{"error": "invalid credentials"}) case errors.Is(err, service.ErrUnsupportedExtension), - errors.Is(err, service.ErrInvalidFeed): + errors.Is(err, service.ErrInvalidFeed), + errors.Is(err, service.ErrCannotDeleteSelf): badRequest(w, err.Error()) default: writeJSON(w, http.StatusInternalServerError, map[string]string{"error": err.Error()}) |
