order-service/src/internal/server/order_handler.go

34 lines
900 B
Go

package server
import (
"net/http"
"github.com/gofiber/fiber/v2"
def "git.pbiernat.io/egommerce/api-entities/http"
"git.pbiernat.io/egommerce/order-service/internal/service"
"git.pbiernat.io/egommerce/order-service/internal/ui"
)
func (s *Server) UpdateOrderStatusHandler(c *fiber.Ctx) error {
reqID, _ := s.GetRequestID(c)
req := new(def.UpdateOrderStatusRequest)
if err := c.BodyParser(req); err != nil {
return s.Error(c, 400, err.Error())
}
// check if order exists in DB service...
orderID := c.Params("orderId", "")
if orderID == "" {
return s.Error(c, 400, "Empty orderId")
}
orderSrv := service.NewOrderService(s.GetDatabase(), s.GetCache(), s.GetEventBus(), s.GetLogger())
_, err := ui.UpdateOrderStatus(orderSrv, req.Status, orderID, reqID)
if err != nil {
return s.Error(c, 400, "Failed to update order status")
}
return c.SendStatus(http.StatusNoContent)
}