package http import ( "context" "git.gocasts.ir/ebhomengo/niki/pkg/httpserver" ) type Server struct { handler Handler HTTPServer *httpserver.Server } func NewServer(handler Handler, hS *httpserver.Server) Server { return Server{handler: handler, HTTPServer: hS} } func (s Server) Serve() error { s.registerRoutes() if err := s.HTTPServer.Start(); err != nil { return err } return nil } func (s Server) Stop(ctx context.Context) error { return s.HTTPServer.Stop(ctx) } func (s Server) registerRoutes() { router := s.HTTPServer.GetRouter() router.GET("shoppingbasket/health-check", s.healthCheck) r := router.Group("shoppingbasket/cart") // Authentication is required r.GET("/", s.handler.getCart) r.DELETE("/", s.handler.removeCart) r.POST("/items", s.handler.addToBasket) r.DELETE("/items/:productID", s.handler.removeItem) r.PUT("/items/:productID/:quantity", s.handler.updateQuantity) }