Advertisement
Guest User

Untitled

a guest
Dec 24th, 2017
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Erlang 1.09 KB | None | 0 0
  1. defmodule NdtlinkWeb.ApiController do
  2.   @moduledoc """
  3.    API Main Controller
  4.  """
  5.   use NdtlinkWeb, :controller
  6.   alias Ndtlink.Guardian
  7.   alias Ndtlink.Accounts
  8.   alias Ndtlink.Accounts.User
  9.  
  10.   @doc """
  11.    Renders the API public status JSON response
  12.  """
  13.   def index(conn, _params) do
  14.     %Plug.Conn{:remote_ip => remote_ip} = conn
  15.  
  16.     app_info = %{
  17.       version: Application.get_env(:ndtlink, :version),
  18.       version_name: Application.get_env(:ndtlink, :version_name),
  19.       description: Application.get_env(:ndtlink, :description),
  20.       time: System.os_time(:seconds),
  21.       remote_ip: remote_ip
  22.     }
  23.  
  24.     render conn, "index.json", app_info
  25.   end
  26.  
  27.   # Authentication Functions
  28.  
  29.   def sign_in(conn, %{username: username, password: password}) do
  30.  
  31.     case Accounts.get_user!(username, password) do
  32.       {:ok, user} -> conn |> Guardian.Plug.sign_in(user) |> send_resp(204, "")
  33.       {:error, _} -> send_resp(conn, 404, "")
  34.     end
  35.    
  36.   end
  37.  
  38.   def sign_out(conn, _params) do
  39.     conn
  40.     |> Guardian.Plug.sign_out()
  41.     |> send_resp(204, "")
  42.   end  
  43.  
  44. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement