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) }