Fix software design suggestions
This commit is contained in:
committed by
Thomas Citharel
parent
aed824f1aa
commit
0a0d07cf38
@@ -11,7 +11,7 @@ defmodule MobilizonWeb.API.Reports do
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Events
|
||||
alias Mobilizon.Reports, as: ReportsAction
|
||||
alias Mobilizon.Reports.{Note, Report}
|
||||
alias Mobilizon.Reports.{Note, Report, ReportStatus}
|
||||
alias Mobilizon.Service.ActivityPub
|
||||
alias Mobilizon.Service.ActivityPub.Activity
|
||||
alias Mobilizon.Users
|
||||
@@ -63,7 +63,7 @@ defmodule MobilizonWeb.API.Reports do
|
||||
"""
|
||||
def update_report_status(%Actor{} = actor, %Report{} = report, state) do
|
||||
with {:valid_state, true} <-
|
||||
{:valid_state, Mobilizon.Reports.ReportStatus.valid_value?(state)},
|
||||
{:valid_state, ReportStatus.valid_value?(state)},
|
||||
{:ok, report} <- ReportsAction.update_report(report, %{"status" => state}),
|
||||
{:ok, _} <- log_action(actor, "update", report) do
|
||||
{:ok, report}
|
||||
|
||||
3
lib/mobilizon_web/cache/activity_pub.ex
vendored
3
lib/mobilizon_web/cache/activity_pub.ex
vendored
@@ -6,6 +6,7 @@ defmodule MobilizonWeb.Cache.ActivityPub do
|
||||
alias Mobilizon.{Actors, Events, Service}
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Events.{Comment, Event}
|
||||
alias Service.ActivityPub
|
||||
|
||||
@cache :activity_pub
|
||||
|
||||
@@ -65,6 +66,6 @@ defmodule MobilizonWeb.Cache.ActivityPub do
|
||||
"""
|
||||
@spec get_relay :: {:commit, Actor.t()} | {:ignore, nil}
|
||||
def get_relay do
|
||||
Cachex.fetch(@cache, "relay_actor", &Service.ActivityPub.Relay.get_actor/0)
|
||||
Cachex.fetch(@cache, "relay_actor", &ActivityPub.Relay.get_actor/0)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
defmodule MobilizonWeb.MediaProxyController do
|
||||
use MobilizonWeb, :controller
|
||||
|
||||
alias Plug.Conn
|
||||
|
||||
alias Mobilizon.Config
|
||||
|
||||
alias MobilizonWeb.MediaProxy
|
||||
@@ -21,10 +23,10 @@ defmodule MobilizonWeb.MediaProxyController do
|
||||
ReverseProxy.call(conn, url, Keyword.get(config, :proxy_opts, @default_proxy_opts))
|
||||
else
|
||||
false ->
|
||||
send_resp(conn, 404, Plug.Conn.Status.reason_phrase(404))
|
||||
send_resp(conn, 404, Conn.Status.reason_phrase(404))
|
||||
|
||||
{:error, :invalid_signature} ->
|
||||
send_resp(conn, 403, Plug.Conn.Status.reason_phrase(403))
|
||||
send_resp(conn, 403, Conn.Status.reason_phrase(403))
|
||||
|
||||
{:wrong_filename, filename} ->
|
||||
redirect(conn, external: MediaProxy.build_url(sig64, url64, filename))
|
||||
|
||||
@@ -9,6 +9,9 @@ defmodule MobilizonWeb.NodeInfoController do
|
||||
alias Mobilizon.Config
|
||||
alias Mobilizon.Service.Statistics
|
||||
|
||||
alias MobilizonWeb.Endpoint
|
||||
alias MobilizonWeb.Router.Helpers, as: Routes
|
||||
|
||||
@node_info_supported_versions ["2.0", "2.1"]
|
||||
@node_info_schema_uri "http://nodeinfo.diaspora.software/ns/schema/"
|
||||
|
||||
@@ -18,8 +21,7 @@ defmodule MobilizonWeb.NodeInfoController do
|
||||
|> Enum.map(fn version ->
|
||||
%{
|
||||
rel: @node_info_schema_uri <> version,
|
||||
href:
|
||||
MobilizonWeb.Router.Helpers.node_info_url(MobilizonWeb.Endpoint, :nodeinfo, version)
|
||||
href: Routes.node_info_url(Endpoint, :nodeinfo, version)
|
||||
}
|
||||
end)
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ defmodule MobilizonWeb.Resolvers.Event do
|
||||
alias Mobilizon.Service.ActivityPub.Activity
|
||||
alias Mobilizon.Users.User
|
||||
|
||||
alias MobilizonWeb.API
|
||||
alias MobilizonWeb.Resolvers.Person
|
||||
|
||||
# We limit the max number of events that can be retrieved
|
||||
@@ -144,7 +145,7 @@ defmodule MobilizonWeb.Resolvers.Event do
|
||||
{:has_event, {:ok, %Event{} = event}} <-
|
||||
{:has_event, Mobilizon.Events.get_event_with_preload(event_id)},
|
||||
{:error, :participant_not_found} <- Mobilizon.Events.get_participant(event_id, actor_id),
|
||||
{:ok, _activity, participant} <- MobilizonWeb.API.Participations.join(event, actor),
|
||||
{:ok, _activity, participant} <- API.Participations.join(event, actor),
|
||||
participant <-
|
||||
participant
|
||||
|> Map.put(:event, event)
|
||||
@@ -180,7 +181,7 @@ defmodule MobilizonWeb.Resolvers.Event do
|
||||
with {:is_owned, %Actor{} = actor} <- User.owns_actor(user, actor_id),
|
||||
{:has_event, {:ok, %Event{} = event}} <-
|
||||
{:has_event, Mobilizon.Events.get_event_with_preload(event_id)},
|
||||
{:ok, _activity, _participant} <- MobilizonWeb.API.Participations.leave(event, actor) do
|
||||
{:ok, _activity, _participant} <- API.Participations.leave(event, actor) do
|
||||
{:ok, %{event: %{id: event_id}, actor: %{id: actor_id}}}
|
||||
else
|
||||
{:has_event, _} ->
|
||||
|
||||
@@ -9,6 +9,7 @@ defmodule MobilizonWeb.Resolvers.Group do
|
||||
alias Mobilizon.Service.ActivityPub.Activity
|
||||
alias Mobilizon.Users.User
|
||||
|
||||
alias MobilizonWeb.API
|
||||
alias MobilizonWeb.Resolvers.Person
|
||||
|
||||
require Logger
|
||||
@@ -51,7 +52,7 @@ defmodule MobilizonWeb.Resolvers.Group do
|
||||
%Activity{data: %{"object" => %{"type" => "Group"} = _object}},
|
||||
%Actor{} = group
|
||||
} <-
|
||||
MobilizonWeb.API.Groups.create_group(
|
||||
API.Groups.create_group(
|
||||
user,
|
||||
%{
|
||||
preferred_username: args.preferred_username,
|
||||
|
||||
@@ -67,6 +67,8 @@ defmodule MobilizonWeb.ReverseProxy do
|
||||
|
||||
import Plug.Conn
|
||||
|
||||
alias Plug.Conn
|
||||
|
||||
require Logger
|
||||
|
||||
@type option ::
|
||||
@@ -131,7 +133,7 @@ defmodule MobilizonWeb.ReverseProxy do
|
||||
|> error_or_redirect(
|
||||
url,
|
||||
code,
|
||||
"Request failed: " <> Plug.Conn.Status.reason_phrase(code),
|
||||
"Request failed: " <> Conn.Status.reason_phrase(code),
|
||||
opts
|
||||
)
|
||||
|> halt()
|
||||
@@ -147,7 +149,7 @@ defmodule MobilizonWeb.ReverseProxy do
|
||||
|
||||
def call(conn, _, _) do
|
||||
conn
|
||||
|> send_resp(400, Plug.Conn.Status.reason_phrase(400))
|
||||
|> send_resp(400, Conn.Status.reason_phrase(400))
|
||||
|> halt()
|
||||
end
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ defmodule MobilizonWeb.Upload do
|
||||
|
||||
alias Mobilizon.Config
|
||||
|
||||
alias MobilizonWeb.MIME
|
||||
alias MobilizonWeb.{MIME, Upload, Uploaders}
|
||||
|
||||
require Logger
|
||||
|
||||
@@ -69,8 +69,8 @@ defmodule MobilizonWeb.Upload do
|
||||
|
||||
with {:ok, upload} <- prepare_upload(upload, opts),
|
||||
upload = %__MODULE__{upload | path: upload.path || "#{upload.id}/#{upload.name}"},
|
||||
{:ok, upload} <- MobilizonWeb.Upload.Filter.filter(opts.filters, upload),
|
||||
{:ok, url_spec} <- MobilizonWeb.Uploaders.Uploader.put_file(opts.uploader, upload) do
|
||||
{:ok, upload} <- Upload.Filter.filter(opts.filters, upload),
|
||||
{:ok, url_spec} <- Uploaders.Uploader.put_file(opts.uploader, upload) do
|
||||
{:ok,
|
||||
%{
|
||||
"type" => opts.activity_type || get_type(upload.content_type),
|
||||
@@ -98,7 +98,7 @@ defmodule MobilizonWeb.Upload do
|
||||
with opts <- get_opts(opts),
|
||||
%URI{path: "/media/" <> path, host: host} <- URI.parse(url),
|
||||
{:same_host, true} <- {:same_host, host == MobilizonWeb.Endpoint.host()} do
|
||||
MobilizonWeb.Uploaders.Uploader.remove_file(opts.uploader, path)
|
||||
Uploaders.Uploader.remove_file(opts.uploader, path)
|
||||
else
|
||||
%URI{} = _uri ->
|
||||
{:error, "URL doesn't match pattern"}
|
||||
|
||||
@@ -9,7 +9,7 @@ defmodule MobilizonWeb.ActivityPub.ActorView do
|
||||
@private_visibility_empty_collection %{elements: [], total: 0}
|
||||
|
||||
def render("actor.json", %{actor: actor}) do
|
||||
public_key = Mobilizon.Service.ActivityPub.Utils.pem_to_public_key_pem(actor.keys)
|
||||
public_key = Utils.pem_to_public_key_pem(actor.keys)
|
||||
|
||||
%{
|
||||
"id" => actor.url,
|
||||
|
||||
@@ -4,12 +4,12 @@ defmodule MobilizonWeb.PageView do
|
||||
"""
|
||||
use MobilizonWeb, :view
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Service.ActivityPub.Utils
|
||||
alias Mobilizon.Service.ActivityPub.{Converter, Utils}
|
||||
alias Mobilizon.Service.Metadata
|
||||
alias Mobilizon.Service.MetadataUtils
|
||||
|
||||
def render("actor.activity-json", %{conn: %{assigns: %{object: actor}}}) do
|
||||
public_key = Mobilizon.Service.ActivityPub.Utils.pem_to_public_key_pem(actor.keys)
|
||||
public_key = Utils.pem_to_public_key_pem(actor.keys)
|
||||
|
||||
%{
|
||||
"id" => Actor.build_url(actor.preferred_username, :page),
|
||||
@@ -47,12 +47,12 @@ defmodule MobilizonWeb.PageView do
|
||||
|
||||
def render("event.activity-json", %{conn: %{assigns: %{object: event}}}) do
|
||||
event
|
||||
|> Mobilizon.Service.ActivityPub.Converters.Event.model_to_as()
|
||||
|> Converter.Event.model_to_as()
|
||||
|> Map.merge(Utils.make_json_ld_header())
|
||||
end
|
||||
|
||||
def render("comment.activity-json", %{conn: %{assigns: %{object: comment}}}) do
|
||||
comment = Mobilizon.Service.ActivityPub.Converters.Comment.model_to_as(comment)
|
||||
comment = Converter.Comment.model_to_as(comment)
|
||||
|
||||
%{
|
||||
"actor" => comment["actor"],
|
||||
|
||||
Reference in New Issue
Block a user