FMT: mix fmt

This commit is contained in:
Able 2025-02-18 12:24:00 -06:00
parent 1d671b3e5e
commit 55c7c87ebf
5 changed files with 52 additions and 48 deletions

View file

@ -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)

View file

@ -1,5 +1,6 @@
defmodule RlRepo.Json do
require Logger
@moduledoc """
"""
def fmt_json(a) do

View file

@ -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)

View file

@ -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

View file

@ -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