forked from potsda.mn/mobilizon
Fix tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
parent
5520e2e5f9
commit
9abb2f3526
|
@ -3,6 +3,7 @@ defmodule MobilizonWeb.API.Events do
|
|||
API for Events
|
||||
"""
|
||||
alias Mobilizon.Events.Event
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Service.ActivityPub
|
||||
alias Mobilizon.Service.ActivityPub.Utils, as: ActivityPubUtils
|
||||
alias Mobilizon.Service.ActivityPub.Activity
|
||||
|
@ -13,39 +14,19 @@ defmodule MobilizonWeb.API.Events do
|
|||
"""
|
||||
@spec create_event(map()) :: {:ok, Activity.t(), Event.t()} | any()
|
||||
def create_event(%{organizer_actor: organizer_actor} = args) do
|
||||
with %{
|
||||
title: title,
|
||||
physical_address: physical_address,
|
||||
picture: picture,
|
||||
content_html: content_html,
|
||||
tags: tags,
|
||||
to: to,
|
||||
cc: cc,
|
||||
begins_on: begins_on,
|
||||
ends_on: ends_on,
|
||||
category: category,
|
||||
join_options: join_options,
|
||||
options: options
|
||||
} <- prepare_args(args),
|
||||
with args <- prepare_args(args),
|
||||
event <-
|
||||
ActivityPubUtils.make_event_data(
|
||||
organizer_actor.url,
|
||||
%{to: to, cc: cc},
|
||||
title,
|
||||
content_html,
|
||||
picture,
|
||||
tags,
|
||||
%{
|
||||
begins_on: begins_on,
|
||||
ends_on: ends_on,
|
||||
physical_address: physical_address,
|
||||
category: category,
|
||||
options: options,
|
||||
join_options: join_options
|
||||
}
|
||||
args.organizer_actor.url,
|
||||
%{to: args.to, cc: args.cc},
|
||||
args.title,
|
||||
args.content_html,
|
||||
args.picture,
|
||||
args.tags,
|
||||
args.metadata
|
||||
) do
|
||||
ActivityPub.create(%{
|
||||
to: ["https://www.w3.org/ns/activitystreams#Public"],
|
||||
to: args.to,
|
||||
actor: organizer_actor,
|
||||
object: event,
|
||||
local: true
|
||||
|
@ -64,42 +45,21 @@ defmodule MobilizonWeb.API.Events do
|
|||
%Event{} = event
|
||||
) do
|
||||
with args <- Map.put(args, :tags, Map.get(args, :tags, [])),
|
||||
%{
|
||||
title: title,
|
||||
physical_address: physical_address,
|
||||
picture: picture,
|
||||
content_html: content_html,
|
||||
tags: tags,
|
||||
to: to,
|
||||
cc: cc,
|
||||
begins_on: begins_on,
|
||||
ends_on: ends_on,
|
||||
category: category,
|
||||
join_options: join_options,
|
||||
options: options
|
||||
} <-
|
||||
prepare_args(Map.merge(event, args)),
|
||||
args <- prepare_args(Map.merge(event, args)),
|
||||
event <-
|
||||
ActivityPubUtils.make_event_data(
|
||||
organizer_actor.url,
|
||||
%{to: to, cc: cc},
|
||||
title,
|
||||
content_html,
|
||||
picture,
|
||||
tags,
|
||||
%{
|
||||
begins_on: begins_on,
|
||||
ends_on: ends_on,
|
||||
physical_address: physical_address,
|
||||
category: category,
|
||||
join_options: join_options,
|
||||
options: options
|
||||
},
|
||||
args.organizer_actor.url,
|
||||
%{to: args.to, cc: args.cc},
|
||||
args.title,
|
||||
args.content_html,
|
||||
args.picture,
|
||||
args.tags,
|
||||
args.metadata,
|
||||
event.uuid,
|
||||
event.url
|
||||
) do
|
||||
ActivityPub.update(%{
|
||||
to: ["https://www.w3.org/ns/activitystreams#Public"],
|
||||
to: args.to,
|
||||
actor: organizer_actor.url,
|
||||
cc: [],
|
||||
object: event,
|
||||
|
@ -108,37 +68,33 @@ defmodule MobilizonWeb.API.Events do
|
|||
end
|
||||
end
|
||||
|
||||
defp prepare_args(
|
||||
%{
|
||||
organizer_actor: organizer_actor,
|
||||
title: title,
|
||||
description: description,
|
||||
options: options,
|
||||
tags: tags,
|
||||
begins_on: begins_on,
|
||||
category: category,
|
||||
join_options: join_options
|
||||
} = args
|
||||
) do
|
||||
with physical_address <- Map.get(args, :physical_address, nil),
|
||||
title <- String.trim(title),
|
||||
defp prepare_args(args) do
|
||||
with %Actor{} = organizer_actor <- Map.get(args, :organizer_actor),
|
||||
title <- args |> Map.get(:title, "") |> String.trim(),
|
||||
visibility <- Map.get(args, :visibility, :public),
|
||||
picture <- Map.get(args, :picture, nil),
|
||||
description <- Map.get(args, :description),
|
||||
tags <- Map.get(args, :tags),
|
||||
{content_html, tags, to, cc} <-
|
||||
Utils.prepare_content(organizer_actor, description, visibility, tags, nil) do
|
||||
%{
|
||||
title: title,
|
||||
physical_address: physical_address,
|
||||
picture: picture,
|
||||
content_html: content_html,
|
||||
picture: Map.get(args, :picture),
|
||||
tags: tags,
|
||||
organizer_actor: organizer_actor,
|
||||
to: to,
|
||||
cc: cc,
|
||||
begins_on: begins_on,
|
||||
ends_on: Map.get(args, :ends_on, nil),
|
||||
category: category,
|
||||
join_options: join_options,
|
||||
options: options
|
||||
metadata: %{
|
||||
begins_on: Map.get(args, :begins_on),
|
||||
ends_on: Map.get(args, :ends_on),
|
||||
physical_address: Map.get(args, :physical_address),
|
||||
category: Map.get(args, :category),
|
||||
options: Map.get(args, :options),
|
||||
join_options: Map.get(args, :join_options),
|
||||
status: Map.get(args, :status),
|
||||
online_address: Map.get(args, :online_address),
|
||||
phone_address: Map.get(args, :phone_address)
|
||||
}
|
||||
}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -62,6 +62,9 @@ defmodule Mobilizon.Service.ActivityPub.Converters.Event do
|
|||
"category" => object["category"],
|
||||
"visibility" => visibility,
|
||||
"join_options" => object["joinOptions"],
|
||||
"status" => object["status"],
|
||||
"online_address" => object["onlineAddress"],
|
||||
"phone_address" => object["phoneAddress"],
|
||||
"url" => object["id"],
|
||||
"uuid" => object["uuid"],
|
||||
"tags" => tags,
|
||||
|
|
|
@ -329,6 +329,9 @@ defmodule Mobilizon.Service.ActivityPub.Utils do
|
|||
"actor" => actor,
|
||||
"id" => url || Routes.page_url(Endpoint, :event, uuid),
|
||||
"joinOptions" => metadata.join_options,
|
||||
"status" => metadata.status,
|
||||
"onlineAddress" => metadata.online_address,
|
||||
"phoneAddress" => metadata.phone_address,
|
||||
"uuid" => uuid,
|
||||
"tag" =>
|
||||
tags |> Enum.uniq() |> Enum.map(fn tag -> %{"type" => "Hashtag", "name" => "##{tag}"} end)
|
||||
|
|
|
@ -173,11 +173,11 @@ defmodule MobilizonWeb.Resolvers.EventResolverTest do
|
|||
assert event["description"] == "it will be fine"
|
||||
assert event["begins_on"] == begins_on
|
||||
assert event["ends_on"] == ends_on
|
||||
# assert event["status"] == "TENTATIVE"
|
||||
# assert event["visibility"] == "UNLISTED"
|
||||
assert event["status"] == "TENTATIVE"
|
||||
assert event["visibility"] == "UNLISTED"
|
||||
assert event["organizer_actor"]["id"] == "#{actor.id}"
|
||||
# assert event["online_address"] == "toto@example.com"
|
||||
# assert event["phone_address"] == "0000000000"
|
||||
assert event["online_address"] == "toto@example.com"
|
||||
assert event["phone_address"] == "0000000000"
|
||||
assert event["category"] == "super_category"
|
||||
assert event["options"]["maximumAttendeeCapacity"] == 30
|
||||
assert event["options"]["showRemainingAttendeeCapacity"] == true
|
||||
|
@ -566,9 +566,9 @@ defmodule MobilizonWeb.Resolvers.EventResolverTest do
|
|||
assert event_res["description"] == "description updated"
|
||||
assert event_res["begins_on"] == "#{begins_on}"
|
||||
assert event_res["ends_on"] == "#{ends_on}"
|
||||
# assert eventResponse["status"] == "TENTATIVE"
|
||||
# assert eventResponse["online_address"] == "toto@example.com"
|
||||
# assert eventResponse["phone_address"] == "0000000000"
|
||||
assert event_res["status"] == "TENTATIVE"
|
||||
assert event_res["online_address"] == "toto@example.com"
|
||||
assert event_res["phone_address"] == "0000000000"
|
||||
assert event_res["category"] == "birthday"
|
||||
|
||||
assert event_res["options"]["maximumAttendeeCapacity"] == 30
|
||||
|
|
Loading…
Reference in a new issue