Packages
maru
0.8.2
0.14.0-pre.1
0.13.2
0.13.1
0.13.0
0.12.5
0.12.4
0.12.3
0.12.2
0.12.1
0.12.0
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.6
0.10.5
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.9.6
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.0
0.5.1
0.5.0
0.4.1
0.4.0
0.3.1
0.3.0
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
REST-like API micro-framework for elixir inspired by grape.
Current section
Files
Jump to
Current section
Files
lib/maru/plugs/prepare.ex
defmodule Maru.Plugs.Prepare do
@moduledoc """
This module is a plug, prepare private variable.
"""
alias Plug.Conn
@doc false
def init(_), do: []
@doc false
def call(conn, []) do
conn |> check_path |> check_route_path |> check_param_context |> check_version
end
defp check_path(%Conn{private: %{maru_resource_path: _}}=conn), do: conn
defp check_path(conn), do: Conn.put_private(conn, :maru_resource_path, conn.path_info)
defp check_route_path(%Conn{private: %{maru_route_path: _}}=conn), do: conn
defp check_route_path(conn), do: Conn.put_private(conn, :maru_route_path, [])
defp check_param_context(%Conn{private: %{maru_param_context: _}}=conn), do: conn
defp check_param_context(conn), do: Conn.put_private(conn, :maru_param_context, [])
defp check_version(%Conn{private: %{maru_version: _}}=conn), do: conn
defp check_version(conn), do: Conn.put_private(conn, :maru_version, nil)
end