diff --git a/Makefile b/Makefile index 4e36e71..324d6ac 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,17 @@ migrateup: .PHONY: run # Run all services run: - go run ./service_a/server/main.go & go run ./service_b/server/main.go + cd $(SERVICE_A) && go run ./server/main.go & cd $(SERVICE_B) && go run ./server/main.go + +.PHONY: run-a +# Run service_a only +run-a: + cd $(SERVICE_A) && go run ./server/main.go + +.PHONY: run-b +# Run service_b only +run-b: + cd $(SERVICE_B) && go run ./server/main.go .PHONY: test # Run all tests with coverage diff --git a/service_a/internal/domains/meteo/handlers.go b/service_a/internal/domains/meteo/handlers.go new file mode 100644 index 0000000..70862a1 --- /dev/null +++ b/service_a/internal/domains/meteo/handlers.go @@ -0,0 +1,20 @@ +package meteo + +import ( + "fmt" + "net/http" +) + +type Handler struct{} + +func NewHandler() *Handler { + return &Handler{} +} + +func (h *Handler) IngestCSV(w http.ResponseWriter, r *http.Request) { + fmt.Fprintf(w, "hello from csv") +} + +func (h *Handler) IngestExcel(w http.ResponseWriter, r *http.Request) { + fmt.Fprintf(w, "hello from excel") +} diff --git a/service_a/internal/domains/meteo/router.go b/service_a/internal/domains/meteo/router.go new file mode 100644 index 0000000..9fa8cf2 --- /dev/null +++ b/service_a/internal/domains/meteo/router.go @@ -0,0 +1,8 @@ +package meteo + +import "net/http" + +func RegisterRoutes(mux *http.ServeMux, handler *Handler) { + mux.HandleFunc("POST /ingest/csv", handler.IngestCSV) + mux.HandleFunc("POST /ingest/excel", handler.IngestExcel) +} diff --git a/service_a/internal/router/router.go b/service_a/internal/router/router.go new file mode 100644 index 0000000..a2001c8 --- /dev/null +++ b/service_a/internal/router/router.go @@ -0,0 +1,16 @@ +package router + +import ( + "fmt" + "net/http" +) + +func SetupRoutes() *http.ServeMux { + mux := http.NewServeMux() + + mux.HandleFunc("GET /", func(w http.ResponseWriter, r *http.Request) { + fmt.Fprintf(w, "hello world") + }) + + return mux +} diff --git a/service_a/server/main.go b/service_a/server/main.go index 7883799..d9a6133 100644 --- a/service_a/server/main.go +++ b/service_a/server/main.go @@ -1,18 +1,18 @@ package main import ( - "fmt" - "log" + "log/slog" "net/http" + "servicea/internal/domains/meteo" + "servicea/internal/router" ) func main() { - mux := http.NewServeMux() + mux := router.SetupRoutes() - mux.HandleFunc("GET /hello", func(w http.ResponseWriter, r *http.Request) { - log.Println("Received request on /hello endpoint") - fmt.Fprintf(w, "Hello world from service A") - }) + meteoHandler := meteo.NewHandler() + meteo.RegisterRoutes(mux, meteoHandler) + slog.Info("server starting on :8080") http.ListenAndServe(":8080", mux) }