aboutsummaryrefslogtreecommitdiff
path: root/app/server.go
diff options
context:
space:
mode:
authorjet2tlf <jet2tlf@gmail.com>2024-06-03 16:48:36 +0000
committerjet2tlf <jet2tlf@gmail.com>2024-06-03 16:48:36 +0000
commitb3dd001bc8cc282c75105ba229e0c55e5a4b3252 (patch)
tree1351303952ba7ee16a494db4c069d38747bf3528 /app/server.go
parent8a94110728cca144388958d4bd322045f8bfb9e4 (diff)
downloadhttp-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.go54
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)
}