diff --git a/middleware.go b/internal/middleware.go similarity index 97% rename from middleware.go rename to internal/middleware.go index 014e483..86657ba 100644 --- a/middleware.go +++ b/internal/middleware.go @@ -1,4 +1,4 @@ -package main +package internal import ( "context" diff --git a/pubsub.go b/internal/pubsub.go similarity index 99% rename from pubsub.go rename to internal/pubsub.go index 1148a12..d5045e0 100644 --- a/pubsub.go +++ b/internal/pubsub.go @@ -1,4 +1,4 @@ -package main +package internal import ( "encoding/json" diff --git a/internal/server.go b/internal/server.go new file mode 100644 index 0000000..6ffb446 --- /dev/null +++ b/internal/server.go @@ -0,0 +1,14 @@ +package internal + +import "net/http" + +func NewServer(port string) error { + pubsub := NewPubSub() + + r := &http.ServeMux{} + r.HandleFunc("GET /subscribe", middlewareRequestId(middlewareTopicQueryParam(pubsub.HandleSubscribe))) + r.HandleFunc("POST /publish", middlewareRequestId(middlewareTopicQueryParam(pubsub.HandlePublish))) + + server := http.Server{Addr: ":" + port, Handler: r} + return server.ListenAndServe() +} diff --git a/main.go b/main.go index bc9c432..edecc58 100644 --- a/main.go +++ b/main.go @@ -3,19 +3,14 @@ package main import ( "fmt" "log" - "net/http" + + "github.com/Tulkdan/go-sse/internal" ) func main() { - pubsub := NewPubSub() - - r := &http.ServeMux{} - r.HandleFunc("GET /subscribe", middlewareRequestId(middlewareTopicQueryParam(pubsub.HandleSubscribe))) - r.HandleFunc("POST /publish", middlewareRequestId(middlewareTopicQueryParam(pubsub.HandlePublish))) - - server := http.Server{Addr: ":8000", Handler: r} fmt.Println("Starting server on 0.0.0.0:8000") - if err := server.ListenAndServe(); err != nil { + + if err := internal.NewServer("8000"); err != nil { log.Fatal(err) } else { fmt.Println("Killing server")