Add Follow Activity representer
authordtluna <dtluna@openmailbox.org>
Tue, 4 Apr 2017 23:04:54 +0000 (02:04 +0300)
committerdtluna <dtluna@openmailbox.org>
Tue, 4 Apr 2017 23:04:54 +0000 (02:04 +0300)
lib/pleroma/web/twitter_api/representers/activity_representer.ex
lib/pleroma/web/twitter_api/twitter_api.ex

index 32c6a48e9437cc4e5fd0c0749c56f630dd3734bb..5fe0df359f0a772d07bc61cf3f7f84a97bbd3f15 100644 (file)
@@ -3,6 +3,20 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do
   alias Pleroma.Web.TwitterAPI.Representers.{UserRepresenter, ObjectRepresenter}
   alias Pleroma.Activity
 
+  def to_map(%Activity{data: %{"type" => "Follow"}} = activity, %{user: user} = opts) do
+    %{
+      "id" => activity.id,
+      "user" => UserRepresenter.to_map(user, opts),
+      "attentions" => [],
+      "statusnet_html" => "",  # TODO: add summary
+      "text" => "",
+      "is_local" => true,
+      "is_post_verb" => false,
+      "created_at" => get_in(activity.data, ["published"]),
+      "in_reply_to_status_id" => nil,
+    }
+  end
+
   def to_map(%Activity{} = activity, %{user: user} = opts) do
     content = get_in(activity.data, ["object", "content"])
     published = get_in(activity.data, ["object", "published"])
index e1b6f248713c5fadbaeff35200d48d2f65dd4e6c..932bef5efa7a5127d14cc96bdbadb7550b7346a8 100644 (file)
@@ -6,8 +6,6 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
   import Ecto.Query
 
   def create_status(user = %User{}, data = %{}) do
-    date = DateTime.utc_now() |> DateTime.to_iso8601
-
     attachments = Enum.map(data["media_ids"] || [], fn (media_id) ->
       Repo.get(Object, media_id).data
     end)
@@ -35,11 +33,11 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
         "type" => "Note",
         "to" => to,
         "content" => content_html,
-        "published" => date,
+        "published" => make_date,
         "context" => context,
         "attachment" => attachments
       },
-      "published" => date,
+      "published" => make_date,
       "context" => context
     }
 
@@ -107,7 +105,8 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
          { :ok, activity } <- ActivityPub.insert(%{
            "type" => "Follow",
            "actor" => follower.ap_id,
-           "object" => followed.ap_id
+           "object" => followed.ap_id,
+           "published" => make_date
          })
     do
       { :ok, follower, followed, activity }
@@ -183,4 +182,8 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
     mentioned_users = Repo.all(from user in User, where: user.ap_id in ^activity.data["to"])
     ActivityRepresenter.to_map(activity, Map.merge(opts, %{user: user, mentioned: mentioned_users}))
   end
+
+  defp make_date do
+    DateTime.utc_now() |> DateTime.to_iso8601
+  end
 end