Merge branch 'docs/ap_c2s' into 'develop'
authorHaelwenn <contact+git.pleroma.social@hacktivis.me>
Mon, 26 Oct 2020 02:09:20 +0000 (02:09 +0000)
committerHaelwenn <contact+git.pleroma.social@hacktivis.me>
Mon, 26 Oct 2020 02:09:20 +0000 (02:09 +0000)
AP C2S: Document our additional endpoints

See merge request pleroma/pleroma!3056

1  2 
lib/pleroma/web/activity_pub/activity_pub_controller.ex

index 44f09be75fa9db3d7773d17a1a29e76a0c6cc9a0,83215564345541eede4d849c9939b383995ef10d..31df80adbb490c5b6c0fe18619a7e346ff3756fe
@@@ -9,6 -9,7 +9,6 @@@ defmodule Pleroma.Web.ActivityPub.Activ
    alias Pleroma.Delivery
    alias Pleroma.Object
    alias Pleroma.Object.Fetcher
 -  alias Pleroma.Plugs.EnsureAuthenticatedPlug
    alias Pleroma.User
    alias Pleroma.Web.ActivityPub.ActivityPub
    alias Pleroma.Web.ActivityPub.Builder
@@@ -22,9 -23,8 +22,9 @@@
    alias Pleroma.Web.ActivityPub.Visibility
    alias Pleroma.Web.ControllerHelper
    alias Pleroma.Web.Endpoint
 -  alias Pleroma.Web.FederatingPlug
    alias Pleroma.Web.Federator
 +  alias Pleroma.Web.Plugs.EnsureAuthenticatedPlug
 +  alias Pleroma.Web.Plugs.FederatingPlug
  
    require Logger
  
      when action in [:read_inbox, :update_outbox, :whoami, :upload_media]
    )
  
 +  plug(Majic.Plug, [pool: Pleroma.MajicPool] when action in [:upload_media])
 +
    plug(
 -    Pleroma.Plugs.Cache,
 +    Pleroma.Web.Plugs.Cache,
      [query_params: false, tracking_fun: &__MODULE__.track_object_fetch/2]
      when action in [:activity, :object]
    )
        object =
          object
          |> Map.merge(Map.take(params, ["to", "cc"]))
 -        |> Map.put("attributedTo", user.ap_id())
 +        |> Map.put("attributedTo", user.ap_id)
          |> Transmogrifier.fix_object()
  
        ActivityPub.create(%{
          %{assigns: %{user: %User{nickname: nickname} = user}} = conn,
          %{"nickname" => nickname} = params
        ) do
 -    actor = user.ap_id()
 +    actor = user.ap_id
  
      params =
        params
      {new_user, for_user}
    end
  
-   @doc """
-   Endpoint based on <https://www.w3.org/wiki/SocialCG/ActivityPub/MediaUpload>
-   Parameters:
-   - (required) `file`: data of the media
-   - (optionnal) `description`: description of the media, intended for accessibility
-   Response:
-   - HTTP Code: 201 Created
-   - HTTP Body: ActivityPub object to be inserted into another's `attachment` field
-   Note: Will not point to a URL with a `Location` header because no standalone Activity has been created.
-   """
    def upload_media(%{assigns: %{user: %User{} = user}} = conn, %{"file" => file} = data) do
      with {:ok, object} <-
             ActivityPub.upload(