34 lines
900 B
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)
|
|
}
|