github.com/mikejeuga/temperature-converter@v0.0.0-20220721135550-2cf6fcec7145/src/internal/adapters/transport/server/server.go (about) 1 package server 2 3 import ( 4 "fmt" 5 "github.com/gorilla/mux" 6 "github.com/mikejeuga/temperature-converter/src/internal/adapters/transport/server/handlers" 7 "github.com/mikejeuga/temperature-converter/src/internal/domain" 8 "net/http" 9 ) 10 11 type Server struct { 12 temperatureHandler handlers.ConversionHandler 13 } 14 15 func NewServer() *http.Server { 16 17 converter := domain.NewConverter(domain.ConvertCtoF, domain.ConvertFtoC) 18 conversionHandler := handlers.NewConversionHandler(converter) 19 s := &Server{temperatureHandler: *conversionHandler} 20 21 router := mux.NewRouter() 22 23 router.HandleFunc("/", s.Home) 24 router.HandleFunc("/to-fahrenheit/{temp}", s.temperatureHandler.ConvertCtoF) 25 router.HandleFunc("/to-celsius/{temp}", s.temperatureHandler.ConvertFtoC) 26 27 return &http.Server{ 28 Addr: ":8069", 29 Handler: router, 30 } 31 } 32 33 func (s *Server) Home(w http.ResponseWriter, r *http.Request) { 34 fmt.Fprint(w, "Server is Healthy, the temperature seems perfect!") 35 }