diff options
| author | jet2tlf <jet2tlf@gmail.com> | 2024-06-03 16:48:36 +0000 |
|---|---|---|
| committer | jet2tlf <jet2tlf@gmail.com> | 2024-06-03 16:48:36 +0000 |
| commit | b3dd001bc8cc282c75105ba229e0c55e5a4b3252 (patch) | |
| tree | 1351303952ba7ee16a494db4c069d38747bf3528 /app/server.go | |
| parent | 8a94110728cca144388958d4bd322045f8bfb9e4 (diff) | |
| download | http-server-go-b3dd001bc8cc282c75105ba229e0c55e5a4b3252.tar.gz http-server-go-b3dd001bc8cc282c75105ba229e0c55e5a4b3252.zip | |
codecrafters submit [skip ci]
Diffstat (limited to 'app/server.go')
| -rw-r--r-- | app/server.go | 54 |
1 files changed, 9 insertions, 45 deletions
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) } |