File size: 987 Bytes
8da2481
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
defmodule PlausibleWeb.Api.Helpers do
  @moduledoc """
  Helper functions for API controllers.
  """

  import Plug.Conn

  def unauthorized(conn, msg) do
    conn
    |> put_status(401)
    |> Phoenix.Controller.json(%{error: msg})
    |> halt()
  end

  def not_enough_permissions(conn, msg) do
    conn
    |> put_status(403)
    |> Phoenix.Controller.json(%{error: msg})
    |> halt()
  end

  def bad_request(conn, msg, extra \\ %{}) do
    payload = Map.merge(extra, %{error: msg})

    conn
    |> put_status(400)
    |> Phoenix.Controller.json(payload)
    |> halt()
  end

  def not_found(conn, msg) do
    conn
    |> put_status(404)
    |> Phoenix.Controller.json(%{error: msg})
    |> halt()
  end

  def too_many_requests(conn, msg) do
    conn
    |> put_status(429)
    |> Phoenix.Controller.json(%{error: msg})
    |> halt()
  end

  def payment_required(conn, msg) do
    conn
    |> put_status(402)
    |> Phoenix.Controller.json(%{error: msg})
    |> halt()
  end
end