summaryrefslogtreecommitdiff
path: root/internal/api/handlers.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-10 09:59:21 +0300
committerPaul Buetow <paul@buetow.org>2026-05-10 09:59:21 +0300
commit1eefc6fc815e5fbd781e8818c61aa024821ce0d3 (patch)
treebfab82e9e7e2d48dd1a3d23dc9eae017ab867975 /internal/api/handlers.go
parent0af2b2bc97275b5b6168cb91dabfe30d89bd5d07 (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.go3
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()})