summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Felder <feld@feld.me>2024-05-28 09:58:44 -0400
committerMark Felder <feld@feld.me>2024-05-28 10:19:35 -0400
commit1b3c84e241f8ed1066d113346365ce489971ac14 (patch)
treee2d3debe0d21e03de61b0b3829df580d22624e75
parent17ebb2df8404474ef66c6a38e974143166b5e49b (diff)
downloadpleroma-1b3c84e241f8ed1066d113346365ce489971ac14.tar.gz
pleroma-1b3c84e241f8ed1066d113346365ce489971ac14.zip
Dialyzer: no_local_return
WebPushEncryption.send_web_push/4 was written to raise on erroroneus input, so we must guard against that. lib/pleroma/web/push/impl.ex:65:no_return Function push_message/4 has no local return.
-rw-r--r--lib/pleroma/web/push/impl.ex32
1 files changed, 19 insertions, 13 deletions
diff --git a/lib/pleroma/web/push/impl.ex b/lib/pleroma/web/push/impl.ex
index 9e68d827b..53334e72c 100644
--- a/lib/pleroma/web/push/impl.ex
+++ b/lib/pleroma/web/push/impl.ex
@@ -63,19 +63,25 @@ defmodule Pleroma.Web.Push.Impl do
@doc "Push message to web"
def push_message(body, sub, api_key, subscription) do
- case WebPushEncryption.send_web_push(body, sub, api_key) do
- {:ok, %{status: code}} when code in 400..499 ->
- Logger.debug("Removing subscription record")
- Repo.delete!(subscription)
- :ok
-
- {:ok, %{status: code}} when code in 200..299 ->
- :ok
-
- {:ok, %{status: code}} ->
- Logger.error("Web Push Notification failed with code: #{code}")
- :error
-
+ try do
+ case WebPushEncryption.send_web_push(body, sub, api_key) do
+ {:ok, %{status: code}} when code in 400..499 ->
+ Logger.debug("Removing subscription record")
+ Repo.delete!(subscription)
+ :ok
+
+ {:ok, %{status: code}} when code in 200..299 ->
+ :ok
+
+ {:ok, %{status: code}} ->
+ Logger.error("Web Push Notification failed with code: #{code}")
+ :error
+
+ error ->
+ Logger.error("Web Push Notification failed with #{inspect(error)}")
+ :error
+ end
+ rescue
error ->
Logger.error("Web Push Notification failed with #{inspect(error)}")
:error