This commit is contained in:
parent
50ffd267f3
commit
524bbc7708
@ -17,6 +17,7 @@ func main() {
|
||||
}
|
||||
|
||||
c := common.NewConfig()
|
||||
fmt.Printf("config main: %v\n", c.Base.AppID)
|
||||
srv := server.New(
|
||||
c,
|
||||
server.WithCache(c),
|
||||
|
@ -14,7 +14,7 @@ import (
|
||||
func (s *Server) GetBasketHandler(c *fiber.Ctx) error {
|
||||
req := new(http.GetBasketRequest)
|
||||
if err := c.BodyParser(req); err != nil {
|
||||
return s.Base.Error400(c, err.Error())
|
||||
return s.Base.Error(c, 400, err.Error())
|
||||
}
|
||||
|
||||
basketID := req.BasketID
|
||||
@ -22,7 +22,7 @@ func (s *Server) GetBasketHandler(c *fiber.Ctx) error {
|
||||
ctx := context.Background()
|
||||
basket, err := basketSrv.FetchFromDB(ctx, basketID)
|
||||
if err != nil {
|
||||
return s.Base.Error400(c, "Failed to retrieve basket")
|
||||
return s.Base.Error(c, 400, "Failed to retrieve basket")
|
||||
}
|
||||
|
||||
res := &http.GetBasketResponse{
|
||||
@ -43,7 +43,7 @@ func (s *Server) GetBasketItemsHandler(c *fiber.Ctx) error {
|
||||
ctx := context.Background()
|
||||
items, err := basketSrv.FetchItems(ctx, basketID)
|
||||
if err != nil {
|
||||
return s.Base.Error400(c, "Failed to retrieve basket items")
|
||||
return s.Base.Error(c, 400, "Failed to retrieve basket")
|
||||
}
|
||||
|
||||
var res []*http.GetBasketItemsResponse
|
||||
@ -69,14 +69,14 @@ func (s *Server) CheckoutHandler(c *fiber.Ctx) error {
|
||||
reqID, _ := s.Base.GetRequestID(c)
|
||||
req := new(http.BasketCheckoutRequest)
|
||||
if err := c.BodyParser(req); err != nil {
|
||||
return s.Base.Error400(c, err.Error())
|
||||
return s.Base.Error(c, 400, err.Error())
|
||||
}
|
||||
|
||||
basketID := req.BasketID
|
||||
basketSrv := service.NewBasketService(s.Database, s.Cache, s.Eventbus, s.Logger)
|
||||
res, err := ui.CheckoutBasket(basketSrv, basketID, reqID)
|
||||
if err != nil {
|
||||
return s.Base.Error400(c, "Failed to create order")
|
||||
return s.Base.Error(c, 400, "Failed to create order")
|
||||
}
|
||||
|
||||
return c.JSON(res)
|
||||
|
@ -43,6 +43,7 @@ type (
|
||||
func New(c *common.Config, opts ...OptionFn) *Server {
|
||||
svr := &Server{
|
||||
Base: srv.New(c.Base),
|
||||
Config: c,
|
||||
}
|
||||
|
||||
for _, opt := range opts {
|
||||
@ -128,7 +129,6 @@ func WithLogger(c *common.Config) OptionFn {
|
||||
}
|
||||
|
||||
func WithRegistry(c *common.Config) OptionFn {
|
||||
// fmt.Printf("WithRegistry constructor: config: %v", c.Base)
|
||||
port, _ := strconv.Atoi(c.Base.NetAddr[1:]) // FIXME: can be IP:PORT which now will cause error
|
||||
registry, err := consul.NewService(c.RegistryAddr, c.Base.AppID, c.Base.AppName, c.Base.AppID, c.Base.AppName, c.Base.PathPrefix, port)
|
||||
if err != nil {
|
||||
@ -143,19 +143,20 @@ func WithRegistry(c *common.Config) OptionFn {
|
||||
return func(s *Server) error {
|
||||
s.Registry = registry
|
||||
|
||||
go func(s *Server) { // Consul KV updater
|
||||
go func( /*s *Server*/ ) { // Consul KV updater
|
||||
ticker := time.NewTicker(time.Second * 15)
|
||||
for range ticker.C {
|
||||
s.updateKVConfig()
|
||||
}
|
||||
}(s)
|
||||
}()
|
||||
|
||||
go func(s *Server) { // Server metadata cache updater
|
||||
go func( /*s *Server*/ ) { // Server metadata cache updater
|
||||
ticker := time.NewTicker(time.Second * 5)
|
||||
for range ticker.C {
|
||||
fmt.Printf("config: %v\n", s.Base.Config)
|
||||
s.cacheMetadata()
|
||||
}
|
||||
}(s)
|
||||
}()
|
||||
|
||||
return nil
|
||||
}
|
||||
@ -177,7 +178,6 @@ func WithRegistry(c *common.Config) OptionFn {
|
||||
|
||||
func (s *Server) Shutdown() srv.PurgeFn {
|
||||
return func(srv *srv.Server) error {
|
||||
fmt.Printf("%v", s.Base)
|
||||
// s.Logger.Log("Server is going down... Unregistering service: %s", s.Base.AppID)
|
||||
s.Logger.Log("Server is going down... Unregistering service...")
|
||||
|
||||
@ -228,6 +228,7 @@ func (s *Server) clearMetadataCache() {
|
||||
}
|
||||
|
||||
func (s *Server) getMetadataIPsKey() string {
|
||||
fmt.Printf("getMetadataIPsKey: %s", s.Base.Config)
|
||||
return "internal__" + s.Base.Config.AppName + "__ips"
|
||||
}
|
||||
|
||||
|
@ -43,6 +43,7 @@ func New(conf *Config) *Server {
|
||||
WriteTimeout: conf.WriteTimeout * time.Millisecond,
|
||||
IdleTimeout: conf.IdleTimeout * time.Millisecond,
|
||||
}),
|
||||
Config: conf,
|
||||
addr: conf.NetAddr,
|
||||
}
|
||||
}
|
||||
@ -56,29 +57,13 @@ func (s *Server) GetRequestID(c *fiber.Ctx) (string, error) {
|
||||
return hdr.RequestID, nil
|
||||
}
|
||||
|
||||
// @Refactor make single func with error message and optional http status code...
|
||||
func (s *Server) Error400(c *fiber.Ctx, msg string) error {
|
||||
return c.Status(fiber.StatusBadRequest).JSON(http.ErrorResponse{Error: msg})
|
||||
// test with &(reference) before http.ErrorMessage, but probably it's gonna be erroneous
|
||||
func (s *Server) Error(c *fiber.Ctx, code int, msg string) error {
|
||||
return c.Status(code).JSON(http.ErrorResponse{Error: msg})
|
||||
}
|
||||
|
||||
func (s *Server) Error401(c *fiber.Ctx, msg string) error {
|
||||
return c.Status(fiber.StatusUnauthorized).JSON(http.ErrorResponse{Error: msg})
|
||||
}
|
||||
|
||||
func (s *Server) Error403(c *fiber.Ctx, msg string) error {
|
||||
return c.Status(fiber.StatusForbidden).JSON(http.ErrorResponse{Error: msg})
|
||||
}
|
||||
|
||||
func (s *Server) Error404(c *fiber.Ctx, msg string) error {
|
||||
return c.Status(fiber.StatusNotFound).JSON(http.ErrorResponse{Error: msg})
|
||||
}
|
||||
|
||||
// @EndRefactor
|
||||
|
||||
func (s *Server) Start(forever chan struct{}, prgFn PurgeFn) error {
|
||||
go func() {
|
||||
fmt.Println("Starting...")
|
||||
fmt.Printf("config at starting point: %v\n", s.Config)
|
||||
sigint := make(chan os.Signal, 1)
|
||||
signal.Notify(sigint, os.Interrupt, syscall.SIGINT, syscall.SIGTERM)
|
||||
<-sigint
|
||||
|
Loading…
Reference in New Issue
Block a user