[#1559] Addressed code review requests.
authorIvan Tashkinov <ivantashkinov@gmail.com>
Thu, 9 Apr 2020 12:13:37 +0000 (15:13 +0300)
committerIvan Tashkinov <ivantashkinov@gmail.com>
Thu, 9 Apr 2020 12:13:37 +0000 (15:13 +0300)
lib/pleroma/activity.ex
lib/pleroma/web/mastodon_api/views/notification_view.ex
lib/pleroma/web/push/impl.ex

index 3803d8e501df5210c10b0db2c6d2d1d76bae564c..6213d0eb7cb732142325b11ec235140ca6677c4f 100644 (file)
@@ -300,6 +300,8 @@ defmodule Pleroma.Activity do
 
   def follow_accepted?(_), do: false
 
+  @spec mastodon_notification_type(Activity.t()) :: String.t() | nil
+
   for {ap_type, type} <- @mastodon_notification_types, not is_list(type) do
     def mastodon_notification_type(%Activity{data: %{"type" => unquote(ap_type)}}),
       do: unquote(type)
@@ -315,11 +317,11 @@ defmodule Pleroma.Activity do
 
   def mastodon_notification_type(%Activity{}), do: nil
 
+  @spec from_mastodon_notification_type(String.t()) :: String.t() | nil
+  @doc "Converts Mastodon notification type to AR activity type"
   def from_mastodon_notification_type(type) do
     with {k, _v} <-
-           Enum.find(@mastodon_notification_types, fn {_k, v} ->
-             v == type or (is_list(v) and type in v)
-           end) do
+           Enum.find(@mastodon_notification_types, fn {_k, v} -> type in List.wrap(v) end) do
       k
     end
   end
index feed471296f927f7b4269517e648593f5f644dc7..7001fd7b9f5976640603deec219578ea4b194112 100644 (file)
@@ -113,17 +113,14 @@ defmodule Pleroma.Web.MastodonAPI.NotificationView do
         "move" ->
           put_target(response, activity, reading_user, render_opts)
 
-        "follow" ->
-          response
-
-        "follow_request" ->
-          response
-
         "pleroma:emoji_reaction" ->
           response
           |> put_status(parent_activity_fn.(), reading_user, render_opts)
           |> put_emoji(activity)
 
+        type when type in ["follow", "follow_request"] ->
+          response
+
         _ ->
           nil
       end
index 89d45b2e1f985f0a6f7d85000f4cc0725ce2e123..f1740a6e0f2d48225c20b4f3e6922f69b1aba5be 100644 (file)
@@ -153,10 +153,10 @@ defmodule Pleroma.Web.Push.Impl do
       when type in ["Follow", "Like"] do
     mastodon_type = mastodon_type || mastodon_notification_type(notification.activity)
 
-    case {type, mastodon_type} do
-      {"Follow", "follow"} -> "@#{actor.nickname} has followed you"
-      {"Follow", "follow_request"} -> "@#{actor.nickname} has requested to follow you"
-      {"Like", _} -> "@#{actor.nickname} has favorited your post"
+    case mastodon_type do
+      "follow" -> "@#{actor.nickname} has followed you"
+      "follow_request" -> "@#{actor.nickname} has requested to follow you"
+      "favourite" -> "@#{actor.nickname} has favorited your post"
     end
   end
 
@@ -166,15 +166,16 @@ defmodule Pleroma.Web.Push.Impl do
     "New Direct Message"
   end
 
-  def format_title(%{activity: %{data: %{"type" => type}}} = notification, mastodon_type) do
-    mastodon_type = mastodon_type || mastodon_notification_type(notification.activity)
+  def format_title(%{activity: activity}, mastodon_type) do
+    mastodon_type = mastodon_type || mastodon_notification_type(activity)
 
-    case {type, mastodon_type} do
-      {"Create", _} -> "New Mention"
-      {"Follow", "follow"} -> "New Follower"
-      {"Follow", "follow_request"} -> "New Follow Request"
-      {"Announce", _} -> "New Repeat"
-      {"Like", _} -> "New Favorite"
+    case mastodon_type do
+      "mention" -> "New Mention"
+      "follow" -> "New Follower"
+      "follow_request" -> "New Follow Request"
+      "reblog" -> "New Repeat"
+      "favourite" -> "New Favorite"
+      type -> "New #{String.capitalize(type || "event")}"
     end
   end
 end