Upload pictures fixes

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel 2019-07-04 17:41:06 +02:00
parent 2749989a28
commit d609ccfb51
No known key found for this signature in database
GPG key ID: A061B9DDE0CA0773
3 changed files with 9 additions and 3 deletions

View file

@ -22,7 +22,8 @@ defmodule MobilizonWeb.API.Events do
category: category
} = args
) do
with %Actor{url: url} = actor <- Actors.get_local_actor_with_everything(organizer_actor_id),
with %Actor{url: url} = actor <-
Actors.get_local_actor_with_everything(organizer_actor_id),
title <- String.trim(title),
mentions <- Formatter.parse_mentions(description),
visibility <- Map.get(args, :visibility, "public"),

View file

@ -217,8 +217,13 @@ defmodule MobilizonWeb.Resolvers.Event do
# If we have an attached picture, just transmit it. It will be handled by
# Mobilizon.Service.ActivityPub.Utils.make_picture_data/1
# However, we need to pass it's actor ID
@spec save_attached_picture(map()) :: {:ok, map()}
defp save_attached_picture(%{picture: %{picture: %Plug.Upload{} = _picture}} = args), do: args
defp save_attached_picture(
%{picture: %{picture: %{file: %Plug.Upload{} = _picture} = all_pic}} = args
) do
{:ok, Map.put(args, :picture, Map.put(all_pic, :actor_id, args.organizer_actor_id))}
end
# Otherwise if we use a previously uploaded picture we need to fetch it from database
@spec save_attached_picture(map()) :: {:ok, map()}

View file

@ -208,7 +208,7 @@ defmodule Mobilizon.Service.ActivityPub.Utils do
@doc """
Save picture data from raw data and return AS Link data.
"""
def make_picture_data(%{picture: picture}) do
def make_picture_data(picture) when is_map(picture) do
with {:ok, %{"url" => [%{"href" => url, "mediaType" => content_type}], "size" => size}} <-
MobilizonWeb.Upload.store(picture.file),
{:ok, %Picture{file: _file} = pic} <-