Current section
Files
Jump to
Current section
Files
lib/fake/router.ex
defmodule Fake.Router do
@moduledoc "Application router for the `Fake` server"
use Plug.Router
require Logger
plug Plug.Logger
plug :fetch_query_params
plug Plug.Parsers,
parsers: [:urlencoded, :multipart, :json],
pass: ["*/*"],
json_decoder: Poison
plug :match
plug :dispatch
@doc false
def init(options), do: options
def read_file(file) do
File.read!(file)
|> String.replace(~r/\n/m, "")
end
match "/" do
send_resp(conn, 200, "received #{inspect(conn.params)}")
end
get "/v1/documents" do
file = read_file("test/fixtures/all_documents.json")
conn |> send_resp(200, file)
# if !is_nil(conn.params["service"]) do
# conn |> send_resp(200, "sss")
# else
# conn |> send_resp(404, "ticket not found")
# end
end
post "/v1/documents" do
IO.inspect conn
# IO.inspect conn.body_params
conn |> send_resp(200, "sss")
# if !is_nil(conn.params["service"]) do
# conn |> send_resp(200, Fake.valid_st)
# else
# conn |> send_resp(404, "ticket not found")
# end
end
post "/v1/tickets/:_tgt" do
conn |> send_resp(404, "ticket not found")
end
post "/v1/tickets" do
if {conn.params["username"], conn.params["password"]} == {Fake.valid_username, Fake.valid_password} do
conn
|> put_resp_header("location", "#{url(conn)}/#{Fake.valid_tgt}")
|> send_resp(201, Fake.valid_tgt)
else
conn
|> send_resp(400, "bad credentials")
end
end
post "/serviceValidate" do
if conn.params["ticket"] == Fake.valid_st && conn.params["service"] do
conn |> send_resp(200, Fake.Responses.success)
else
conn |> send_resp(200, Fake.Responses.failure)
end
end
match _ do
send_resp(conn, 404, "oops")
end
@spec url(Plug.Conn.t) :: Plug.Conn.t
@doc false
def url(conn) do
query_string =
conn.query_params
|> URI.encode_query
["#{conn.scheme}://#{conn.host}:#{conn.port}#{conn.request_path}", query_string]
|> Enum.reject(fn(v) -> is_nil(v) || v == "" end)
|> Enum.join("?")
end
end