feat(api): 1395 allow url link to image in event creation api

This commit is contained in:
setop 2024-03-06 10:43:54 +01:00
commit f582adbb80
2 changed files with 18 additions and 7 deletions

View File

@ -57,15 +57,25 @@ defmodule Mobilizon.GraphQL.API.Events do
defp process_picture(%{media_id: _picture_id} = args, _), do: args
defp process_picture(%{media: media}, %Actor{id: actor_id}) do
with uploaded when is_map(uploaded) <-
media
|> Map.get(:file)
|> Utils.make_media_data(description: Map.get(media, :name)) do
# case url
if Map.has_key?(media, :url) do
%{
file: Map.take(uploaded, [:url, :name, :content_type, :size]),
metadata: Map.take(uploaded, [:width, :height, :blurhash]),
file: %{"url" => media.url, "name" => media.name},
actor_id: actor_id
}
# case upload
else
with uploaded when is_map(uploaded) <-
media
|> Map.get(:file)
|> Utils.make_media_data(description: Map.get(media, :name)) do
%{
file: Map.take(uploaded, [:url, :name, :content_type, :size]),
metadata: Map.take(uploaded, [:width, :height, :blurhash]),
actor_id: actor_id
}
end
end
end

View File

@ -52,8 +52,9 @@ defmodule Mobilizon.GraphQL.Schema.MediaType do
input_object :media_input_object do
field(:name, non_null(:string), description: "The media's name")
field(:alt, :string, description: "The media's alternative text")
field(:file, non_null(:upload), description: "The media file")
field(:file, :upload, description: "The media file")
field(:actor_id, :id, description: "The media owner")
field(:url, :string, description: "The media URL")
end
object :media_queries do