Reports admin API endpoint errors out if reported account was deleted
If you have a report on an account which you later delete, the /api/pleroma/admin/reports
endpoint can error out as it tries to fetch the reported account's details.
I was able to reproduce this on 79c88a25
To reproduce
- Report a remote account (not sure if it works with local ones)
- Delete the account (from AdminFE)
- Restart Pleroma
- Attempt to access
/api/pleroma/admin/reports?limit=1
Stack trace
Request: GET /api/pleroma/admin/reports?limit=1
** (exit) an exception was raised:
** (UndefinedFunctionError) function nil.avatar/0 is undefined
nil.avatar()
(pleroma) lib/pleroma/user.ex:86: Pleroma.User.avatar_url/2
(pleroma) lib/pleroma/web/admin_api/views/account_view.ex:23: Pleroma.Web.AdminAPI.AccountView.render/2
(pleroma) lib/pleroma/web/admin_api/views/report_view.ex:51: Pleroma.Web.AdminAPI.ReportView.merge_account_views/1
(pleroma) lib/pleroma/web/admin_api/views/report_view.ex:40: Pleroma.Web.AdminAPI.ReportView.render/2
(elixir) lib/enum.ex:1327: Enum."-map/2-lists^map/1-0-"/2
(pleroma) lib/pleroma/web/admin_api/views/report_view.ex:15: Pleroma.Web.AdminAPI.ReportView.render/2
(phoenix) lib/phoenix/view.ex:399: Phoenix.View.render_to_iodata/3
(phoenix) lib/phoenix/controller.ex:729: Phoenix.Controller.__put_render__/5
(pleroma) lib/pleroma/web/endpoint.ex:5: Pleroma.Web.Endpoint.instrument/4
(phoenix) lib/phoenix/controller.ex:746: Phoenix.Controller.instrument_render_and_send/4
(pleroma) lib/pleroma/web/admin_api/admin_api_controller.ex:5: Pleroma.Web.AdminAPI.AdminAPIController.action/2
(pleroma) lib/pleroma/web/admin_api/admin_api_controller.ex:5: Pleroma.Web.AdminAPI.AdminAPIController.phoenix_controller_pipeline/2
(pleroma) lib/pleroma/web/endpoint.ex:5: Pleroma.Web.Endpoint.instrument/4
(phoenix) lib/phoenix/router.ex:280: Phoenix.Router.__call__/2
(pleroma) lib/pleroma/web/endpoint.ex:5: Pleroma.Web.Endpoint.plug_builder_call/2
(pleroma) lib/plug/debugger.ex:122: Pleroma.Web.Endpoint."call (overridable 3)"/2
(pleroma) lib/pleroma/web/endpoint.ex:5: Pleroma.Web.Endpoint.call/2
(phoenix) lib/phoenix/endpoint/cowboy2_handler.ex:33: Phoenix.Endpoint.Cowboy2Handler.init/2
(cowboy) /home/dar/src/pleroma/deps/cowboy/src/cowboy_handler.erl:41: :cowboy_handler.execute/2