21 lines
492 B
Elixir
21 lines
492 B
Elixir
|
defmodule WabanexWeb.IMCController do
|
||
|
use WabanexWeb, :controller
|
||
|
|
||
|
alias Wabanex.IMC
|
||
|
|
||
|
def index(conn, params) do
|
||
|
params
|
||
|
|> IMC.calculate()
|
||
|
|> handle_response(conn)
|
||
|
end
|
||
|
|
||
|
def handle_response({:ok, result}, conn), do: render_response(conn, :ok, result)
|
||
|
def handle_response({:error, result}, conn), do: render_response(conn, :bad_request, result)
|
||
|
|
||
|
defp render_response(conn, status, result) do
|
||
|
conn
|
||
|
|> put_status(status)
|
||
|
|> json(%{result: result})
|
||
|
end
|
||
|
end
|