Packages
maru
0.10.3
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/helpers/response.ex
defmodule Maru.Helpers.Response do
@moduledoc """
This module is a wrapper for request and response of maru.
"""
@doc false
defmacro __using__(_) do
quote do
import unquote(__MODULE__)
import Plug.Conn
end
end
@doc """
Get params.
"""
defmacro params do
quote do
var!(conn).private[:maru_params] || %{}
end
end
@doc """
Make response by url redirect.
"""
def redirect(%Plug.Conn{}=conn, url, opts \\ []) do
code = opts[:permanent] && 301 || 302
conn
|> Plug.Conn.put_resp_header("location", url)
|> Plug.Conn.send_resp(code, "")
|> Plug.Conn.halt
end
@doc """
Make json format response.
"""
def json(%Plug.Conn{}=conn, data) do
conn
|> Plug.Conn.put_resp_content_type("application/json")
|> Plug.Conn.send_resp(conn.status || 200, Poison.encode_to_iodata!(data))
|> Plug.Conn.halt
end
@doc """
Make html format response.
"""
def html(%Plug.Conn{}=conn, data) do
conn
|> Plug.Conn.put_resp_content_type("text/html")
|> Plug.Conn.send_resp(conn.status || 200, to_string(data))
|> Plug.Conn.halt
end
@doc """
Make text format response.
"""
def text(%Plug.Conn{}=conn, data) do
conn
|> Plug.Conn.put_resp_content_type("text/plain")
|> Plug.Conn.send_resp(conn.status || 200, to_string(data))
|> Plug.Conn.halt
end
@doc """
Put conn to process dict.
"""
def put_maru_conn(conn) do
Process.put(:maru_conn, conn)
end
@doc """
Get conn from process dict.
"""
def get_maru_conn do
Process.get(:maru_conn)
end
end