Allow to properly move group resources

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2020-06-25 18:47:17 +02:00
parent fa5483f081
commit 39c03301c9
10 changed files with 298 additions and 19 deletions

View File

@@ -5,7 +5,18 @@ defmodule Mobilizon.GraphQL.Schema do
use Absinthe.Schema
alias Mobilizon.{Actors, Addresses, Conversations, Events, Media, Reports, Todos, Users}
alias Mobilizon.{
Actors,
Addresses,
Conversations,
Events,
Media,
Reports,
Resources,
Todos,
Users
}
alias Mobilizon.Actors.{Actor, Follower, Member}
alias Mobilizon.Conversations.Comment
alias Mobilizon.Events.{Event, Participant}
@@ -109,6 +120,7 @@ defmodule Mobilizon.GraphQL.Schema do
|> Dataloader.add_source(Addresses, default_source)
|> Dataloader.add_source(Media, default_source)
|> Dataloader.add_source(Reports, default_source)
|> Dataloader.add_source(Resources, default_source)
|> Dataloader.add_source(Todos, default_source)
Map.put(ctx, :loader, loader)

View File

@@ -4,6 +4,8 @@ defmodule Mobilizon.GraphQL.Schema.ResourceType do
"""
use Absinthe.Schema.Notation
alias Mobilizon.GraphQL.Resolvers.Resource
alias Mobilizon.Resources
import Absinthe.Resolution.Helpers, only: [dataloader: 1]
@desc "A resource"
object :resource do
@@ -19,7 +21,8 @@ defmodule Mobilizon.GraphQL.Schema.ResourceType do
field(:updated_at, :naive_datetime, description: "The resource's last update date")
field(:type, :string, description: "The resource's type (if it's a folder)")
field(:path, :string, description: "The resource's path")
field(:parent, :resource, description: "The resource's parent")
field(:parent, :resource, description: "The resource's parent", resolve: dataloader(Resources))
field :children, :paginated_resource_list do
description("Children resources in folder")

View File

@@ -30,7 +30,16 @@ defmodule Mobilizon.Service.RichMedia.Parsers.OGP do
defp transform_tags(data) do
data
|> Map.put(:image_remote_url, Map.get(data, :image))
|> Map.put(:width, Map.get(data, :"image:width"))
|> Map.put(:height, Map.get(data, :"image:height"))
|> Map.put(:width, get_integer_value(data, :"image:width"))
|> Map.put(:height, get_integer_value(data, :"image:height"))
end
defp get_integer_value(data, key) do
with value <- Map.get(data, key),
{value, ""} <- Integer.parse(value) do
value
else
_ -> nil
end
end
end