FMT: mix fmt
This commit is contained in:
parent
1d671b3e5e
commit
55c7c87ebf
|
@ -1,5 +1,6 @@
|
|||
defmodule RlRepo.ClientHandler do
|
||||
require Logger
|
||||
|
||||
@moduledoc """
|
||||
"""
|
||||
|
||||
|
@ -7,11 +8,10 @@ defmodule RlRepo.ClientHandler do
|
|||
Logger.info("Processing client request.")
|
||||
|
||||
client_socket
|
||||
|> read_request
|
||||
|> create_response()
|
||||
|> create_response_header()
|
||||
|> write_response(client_socket)
|
||||
|
||||
|> read_request
|
||||
|> create_response()
|
||||
|> create_response_header()
|
||||
|> write_response(client_socket)
|
||||
end
|
||||
|
||||
def read_request(client_socket) do
|
||||
|
@ -30,36 +30,41 @@ defmodule RlRepo.ClientHandler do
|
|||
end
|
||||
|
||||
# TODO: Handle routing here.
|
||||
a = String.split(request, "\n\r");
|
||||
a = String.split(request, "\n\r")
|
||||
# Logger.info a
|
||||
[get_line | rest] = a
|
||||
|
||||
b = String.split(get_line, " ");
|
||||
b = String.split(get_line, " ")
|
||||
[request_type | rest] = b
|
||||
[path | rest] = rest
|
||||
Logger.info "#{request_type} #{path}"
|
||||
Logger.info("#{request_type} #{path}")
|
||||
|
||||
# Parse path
|
||||
split_path = String.split(path, "/", trim: true);
|
||||
split_path = String.split(path, "/", trim: true)
|
||||
# Ignore the first slash.
|
||||
# [_ | rest ] = split_path
|
||||
|
||||
split_path_length = length(split_path)
|
||||
|
||||
ret = case split_path_length do
|
||||
1 -> RlRepo.Router.parse_1_segment_path(rest)
|
||||
ret =
|
||||
case split_path_length do
|
||||
1 ->
|
||||
RlRepo.Router.parse_1_segment_path(rest)
|
||||
|> RlRepo.Router.route_1(request_type)
|
||||
3 ->
|
||||
RlRepo.Router.parse_3_segment_path(rest)
|
||||
|> RlRepo.Router.route_3(request_type)
|
||||
4 ->
|
||||
RlRepo.Router.parse_4_segment_path(rest)
|
||||
|> RlRepo.Router.route_4(request_type)
|
||||
# Note: Error handling.
|
||||
_ -> RlRepo.Router.status_404()
|
||||
end
|
||||
end
|
||||
|
||||
3 ->
|
||||
RlRepo.Router.parse_3_segment_path(rest)
|
||||
|> RlRepo.Router.route_3(request_type)
|
||||
|
||||
4 ->
|
||||
RlRepo.Router.parse_4_segment_path(rest)
|
||||
|> RlRepo.Router.route_4(request_type)
|
||||
|
||||
# Note: Error handling.
|
||||
_ ->
|
||||
RlRepo.Router.status_404()
|
||||
end
|
||||
end
|
||||
|
||||
def create_return_code_string(return_code) do
|
||||
case return_code do
|
||||
|
@ -80,7 +85,6 @@ defmodule RlRepo.ClientHandler do
|
|||
"""
|
||||
end
|
||||
|
||||
|
||||
def write_response(response, client_socket) do
|
||||
:ok = :gen_tcp.send(client_socket, response)
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
defmodule RlRepo.Json do
|
||||
require Logger
|
||||
|
||||
@moduledoc """
|
||||
"""
|
||||
def fmt_json(a) do
|
||||
|
|
|
@ -1,30 +1,31 @@
|
|||
defmodule RlRepo do
|
||||
require Logger
|
||||
|
||||
@moduledoc """
|
||||
"""
|
||||
|
||||
@doc """
|
||||
"""
|
||||
def start(port) do
|
||||
{:ok, listener_socket} = :gen_tcp.listen(port, [:binary, packet: :raw, active: false, reuseaddr: true])
|
||||
{:ok, listener_socket} =
|
||||
:gen_tcp.listen(port, [:binary, packet: :raw, active: false, reuseaddr: true])
|
||||
|
||||
Logger.info("Listening on port #{port}")
|
||||
|
||||
loop_acceptor(listener_socket)
|
||||
end
|
||||
|
||||
|
||||
def loop_acceptor(listener_socket) do
|
||||
Logger.debug "Waiting for connection."
|
||||
Logger.debug("Waiting for connection.")
|
||||
|
||||
# TODO: error handle this
|
||||
{:ok, client_socket} = :gen_tcp.accept(listener_socket)
|
||||
|
||||
Logger.info "Client Connected."
|
||||
Logger.info("Client Connected.")
|
||||
|
||||
process_pid = spawn(fn -> RlRepo.ClientHandler.process_request(client_socket) end)
|
||||
Logger.info "Handling client connection at PID #{inspect(process_pid)}"
|
||||
Logger.info "Handing over socket control."
|
||||
Logger.info("Handling client connection at PID #{inspect(process_pid)}")
|
||||
Logger.info("Handing over socket control.")
|
||||
:ok = :gen_tcp.controlling_process(client_socket, process_pid)
|
||||
|
||||
loop_acceptor(listener_socket)
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
defmodule RlRepo.Router do
|
||||
require Logger
|
||||
|
||||
@moduledoc """
|
||||
|
||||
"""
|
||||
|
@ -13,47 +14,45 @@ defmodule RlRepo.Router do
|
|||
{200, "text/html", "Hi"}
|
||||
end
|
||||
|
||||
|
||||
def route_3( path, request_type) do
|
||||
Logger.info "#{request_type}"
|
||||
def route_3(path, request_type) do
|
||||
Logger.info("#{request_type}")
|
||||
{repo_name, pkg_name, action} = path
|
||||
|
||||
if action == "info" do
|
||||
Logger.info "fetching json"
|
||||
Logger.info("fetching json")
|
||||
end
|
||||
|
||||
{200, "application/json", "{\"pkg_name\": \"#{pkg_name}\"}"}
|
||||
end
|
||||
|
||||
def route_4(path, request_type) do
|
||||
Logger.info "#{request_type}"
|
||||
Logger.info("#{request_type}")
|
||||
{repo_name, sub_repo_name, pkg_name, action} = path
|
||||
{200, "text/html", "<p>Hi</p>"}
|
||||
end
|
||||
|
||||
def parse_1_segment_path(path) do
|
||||
[repo_name | _ ] = path
|
||||
[repo_name | _] = path
|
||||
{repo_name}
|
||||
end
|
||||
|
||||
def parse_3_segment_path(path) do
|
||||
[repo_name | rest ] = path
|
||||
[repo_name | rest] = path
|
||||
[pkg_name | rest] = rest
|
||||
[action | _ ] = rest
|
||||
[action | _] = rest
|
||||
|
||||
Logger.info "REPO #{repo_name} PKG #{pkg_name} ACTION #{action}"
|
||||
Logger.info("REPO #{repo_name} PKG #{pkg_name} ACTION #{action}")
|
||||
|
||||
{repo_name, pkg_name, action}
|
||||
end
|
||||
|
||||
|
||||
def parse_4_segment_path(path) do
|
||||
[repo_name | rest ] = path
|
||||
[repo_name | rest] = path
|
||||
[sub_repo_name | rest] = rest
|
||||
[pkg_name | rest] = rest
|
||||
[action | _ ] = rest
|
||||
[action | _] = rest
|
||||
|
||||
Logger.info "REPO #{repo_name} SUB_REPO #{sub_repo_name} PKG #{pkg_name} ACTION #{action}"
|
||||
Logger.info("REPO #{repo_name} SUB_REPO #{sub_repo_name} PKG #{pkg_name} ACTION #{action}")
|
||||
|
||||
{repo_name, sub_repo_name, pkg_name, action}
|
||||
end
|
||||
|
|
|
@ -2,7 +2,7 @@ defmodule RlRepo.Template do
|
|||
require Logger
|
||||
|
||||
def template(template_name, replacements) do
|
||||
Logger.info "Loading template #{template_name}"
|
||||
Logger.info("Loading template #{template_name}")
|
||||
{:ok, body} = File.read("assets/html/#{template_name}.html")
|
||||
|
||||
len = body |> String.split("~(") |> length()
|
||||
|
@ -10,23 +10,22 @@ defmodule RlRepo.Template do
|
|||
template_step(replacements, body, len)
|
||||
end
|
||||
|
||||
|
||||
def template_step(replacements, body, steps_left) do
|
||||
[before_placeholder | rest] = split_path = String.split(body, "~(", parts: 2);
|
||||
[before_placeholder | rest] = split_path = String.split(body, "~(", parts: 2)
|
||||
[remains | _] = rest
|
||||
[placeholder_name | after_placeholder] = String.split(remains, ")", parts: 2);
|
||||
[after_placeholder | _ ] = after_placeholder
|
||||
[placeholder_name | after_placeholder] = String.split(remains, ")", parts: 2)
|
||||
[after_placeholder | _] = after_placeholder
|
||||
|
||||
{:ok, replace} = Map.fetch(replacements, placeholder_name)
|
||||
{:ok, replace} = Map.fetch(replacements, placeholder_name)
|
||||
|
||||
body = before_placeholder <> replace <> after_placeholder
|
||||
|
||||
steps_left = steps_left - 1
|
||||
|
||||
if steps_left == 1 do
|
||||
body
|
||||
else
|
||||
template_step(replacements, body, steps_left)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue