diff --git a/src/BirdsiteLive.Domain/ActivityPubService.cs b/src/BirdsiteLive.Domain/ActivityPubService.cs index c242a99..c460a2d 100644 --- a/src/BirdsiteLive.Domain/ActivityPubService.cs +++ b/src/BirdsiteLive.Domain/ActivityPubService.cs @@ -46,7 +46,7 @@ namespace BirdsiteLive.Domain var result = await httpClient.GetAsync(objectId); if (result.StatusCode == HttpStatusCode.Gone) - throw new UserIsGoneException(); + throw new FollowerIsGoneException(); result.EnsureSuccessStatusCode(); diff --git a/src/BirdsiteLive.Domain/Exceptions/UserIsGoneException.cs b/src/BirdsiteLive.Domain/Exceptions/FollowerIsGoneException.cs similarity index 53% rename from src/BirdsiteLive.Domain/Exceptions/UserIsGoneException.cs rename to src/BirdsiteLive.Domain/Exceptions/FollowerIsGoneException.cs index 96476fe..3063cab 100644 --- a/src/BirdsiteLive.Domain/Exceptions/UserIsGoneException.cs +++ b/src/BirdsiteLive.Domain/Exceptions/FollowerIsGoneException.cs @@ -2,7 +2,7 @@ namespace BirdsiteLive.Domain { - public class UserIsGoneException : Exception + public class FollowerIsGoneException : Exception { } } \ No newline at end of file diff --git a/src/BirdsiteLive/Controllers/InboxController.cs b/src/BirdsiteLive/Controllers/InboxController.cs index f55e22b..f92a0a6 100644 --- a/src/BirdsiteLive/Controllers/InboxController.cs +++ b/src/BirdsiteLive/Controllers/InboxController.cs @@ -31,28 +31,32 @@ namespace BirdsiteLive.Controllers [HttpPost] public async Task Inbox() { - var r = Request; - using (var reader = new StreamReader(Request.Body)) + try { - var body = await reader.ReadToEndAsync(); - - _logger.LogTrace("Inbox: {Body}", body); - //System.IO.File.WriteAllText($@"C:\apdebug\inbox\{Guid.NewGuid()}.json", body); - - var activity = ApDeserializer.ProcessActivity(body); - var signature = r.Headers["Signature"].First(); - - switch (activity?.type) + var r = Request; + using (var reader = new StreamReader(Request.Body)) { - case "Delete": + var body = await reader.ReadToEndAsync(); + + _logger.LogTrace("Inbox: {Body}", body); + //System.IO.File.WriteAllText($@"C:\apdebug\inbox\{Guid.NewGuid()}.json", body); + + var activity = ApDeserializer.ProcessActivity(body); + var signature = r.Headers["Signature"].First(); + + switch (activity?.type) { - var succeeded = await _userService.DeleteRequestedAsync(signature, r.Method, r.Path, - r.QueryString.ToString(), HeaderHandler.RequestHeaders(r.Headers), activity as ActivityDelete, body); - if (succeeded) return Accepted(); - else return Unauthorized(); + case "Delete": + { + var succeeded = await _userService.DeleteRequestedAsync(signature, r.Method, r.Path, + r.QueryString.ToString(), HeaderHandler.RequestHeaders(r.Headers), activity as ActivityDelete, body); + if (succeeded) return Accepted(); + else return Unauthorized(); + } } } } + catch (FollowerIsGoneException) { } //TODO: check if user in DB return Accepted(); } diff --git a/src/BirdsiteLive/Controllers/UsersController.cs b/src/BirdsiteLive/Controllers/UsersController.cs index de63af1..24a9eb5 100644 --- a/src/BirdsiteLive/Controllers/UsersController.cs +++ b/src/BirdsiteLive/Controllers/UsersController.cs @@ -214,7 +214,7 @@ namespace BirdsiteLive.Controllers } } } - catch (UserIsGoneException) + catch (FollowerIsGoneException) //TODO: check if user in DB { return Accepted(); }