1 defmodule Pleroma.Web do
3 A module that keeps using definitions for controllers,
6 This can be used in your application as:
8 use Pleroma.Web, :controller
11 The definitions below will be executed for every view,
12 controller, etc, so keep them short and clean, focused
13 on imports, uses and aliases.
15 Do NOT define functions inside the quoted expressions
21 use Phoenix.Controller, namespace: Pleroma.Web
23 import Pleroma.Web.Router.Helpers
24 import Pleroma.Web.Gettext
30 use Phoenix.View, root: "lib/pleroma/web/templates",
31 namespace: Pleroma.Web
33 # Import convenience functions from controllers
34 import Phoenix.Controller, only: [get_csrf_token: 0, get_flash: 2, view_module: 1]
36 import Pleroma.Web.Router.Helpers
37 import Pleroma.Web.ErrorHelpers
38 import Pleroma.Web.Gettext
46 import Phoenix.Controller
53 import Pleroma.Web.Gettext
58 When used, dispatch to the appropriate controller/view/etc.
60 defmacro __using__(which) when is_atom(which) do
61 apply(__MODULE__, which, [])
65 settings = Application.get_env(:pleroma, Pleroma.Web.Endpoint)
67 |> Keyword.fetch!(:url)
68 |> Keyword.fetch!(:host)
72 settings = Application.get_env(:pleroma, Pleroma.Web.Endpoint)
76 protocol = settings |> Keyword.fetch!(:protocol)
78 port_fragment = with {:ok, protocol_info} <- settings |> Keyword.fetch(String.to_atom(protocol)),
79 {:ok, port} <- protocol_info |> Keyword.fetch(:port)
85 "#{protocol}://#{host}#{port_fragment}"