end)
end
+ def get_replied_to_activity(id) when not is_nil(id) do
+ Repo.get(Activity, id)
+ end
+
+ def get_replied_to_activity(_), do: nil
+
def create_status(user = %User{}, data = %{"status" => status}) do
attachments = attachments_from_ids(data["media_ids"])
context = ActivityPub.generate_context_id
mentions = parse_mentions(status)
content_html = format_input(status, mentions)
to = to_for_user_and_mentions(user, mentions)
-
date = make_date()
+ inReplyTo = get_replied_to_activity(data["in_reply_to_status_id"])
+
# Wire up reply info.
[to, context, object, additional] =
- with inReplyToId when not is_nil(inReplyToId) <- data["in_reply_to_status_id"],
- inReplyTo <- Repo.get(Activity, inReplyToId),
- context <- inReplyTo.data["context"]
- do
+ if inReplyTo do
+ context = inReplyTo.data["context"]
to = to ++ [inReplyTo.data["actor"]]
object = %{
"attachment" => attachments,
"actor" => user.ap_id,
"inReplyTo" => inReplyTo.data["object"]["id"],
- "inReplyToStatusId" => inReplyToId,
+ "inReplyToStatusId" => inReplyTo.id,
"statusnetConversationId" => inReplyTo.data["statusnetConversationId"]
}
additional = %{
}
[to, context, object, additional]
- else _e ->
+ else
object = %{
"type" => "Note",
"to" => to,