From b3dd001bc8cc282c75105ba229e0c55e5a4b3252 Mon Sep 17 00:00:00 2001 From: jet2tlf Date: Mon, 3 Jun 2024 13:48:36 -0300 Subject: codecrafters submit [skip ci] --- app/server.go | 54 +++++++++--------------------------------------------- 1 file changed, 9 insertions(+), 45 deletions(-) (limited to 'app/server.go') diff --git a/app/server.go b/app/server.go index b4dd7ee..4a0c364 100644 --- a/app/server.go +++ b/app/server.go @@ -4,10 +4,17 @@ import ( "fmt" "net" "os" - "strings" ) +func createRouter() *Router { + builder := NewRouterBuilder() + Register(builder) + return builder.Build() +} + func main() { + router := createRouter() + l, err := net.Listen("tcp", "0.0.0.0:4221") if err != nil { fmt.Println("Failed to bind to port 4221") @@ -20,48 +27,5 @@ func main() { os.Exit(1) } - request, err := NewRequest(conn) - if err != nil { - fmt.Println("Error getting target: ", err.Error()) - os.Exit(1) - } - - if request.Target == "/" { - _, err = conn.Write([]byte("HTTP/1.1 200 OK\r\n\r\n")) - if err != nil { - fmt.Println("Error connection write: ", err.Error()) - } - } else if strings.HasPrefix(request.Target, "/echo/") { - message := strings.SplitN(request.Target, "/", 3)[2] - - _, err = conn.Write([]byte("HTTP/1.1 200 OK\r\n")) - if err != nil { - fmt.Println("Error connection write: ", err.Error()) - } - - _, err = conn.Write([]byte("Content-Type: text/plain\r\n")) - if err != nil { - fmt.Println("Error connection write: ", err.Error()) - } - - _, err = conn.Write([]byte(fmt.Sprintf("Content-Length: %d\r\n", len(message)))) - if err != nil { - fmt.Println("Error connection write: ", err.Error()) - } - - _, err = conn.Write([]byte("\r\n")) - if err != nil { - fmt.Println("Error connection write: ", err.Error()) - } - - _, err = conn.Write([]byte(message)) - if err != nil { - fmt.Println("Error connection write: ", err.Error()) - } - } else { - _, err = conn.Write([]byte("HTTP/1.1 404 Not Found\r\n\r\n")) - if err != nil { - fmt.Println("Error connection write: ", err.Error()) - } - } + router.Handle(conn) } -- cgit v1.2.3