package order import ( "cls/internal/application/order" "cls/internal/interfaces" "cls/pkg/logger" "github.com/gin-gonic/gin" "net/http" ) type OrderHandler struct { service *order.OrderService log logger.Logger } func NewOrderHandler(service *order.OrderService, log logger.New) *OrderHandler { return &OrderHandler{service, log("cls:interfaces:order")} } var _ interfaces.Handler = (*OrderHandler)(nil) func (o *OrderHandler) RegisterRouters(app gin.IRouter) { auth := app.Group("/order") { auth.POST("/create", o.create) } } func (o *OrderHandler) create(c *gin.Context) { dto := &order.CreateOrderRequest{} err := c.ShouldBindJSON(dto) if err != nil { o.log.Error(err.Error()) c.AbortWithStatus(http.StatusInternalServerError) return } data, err := o.service.CreateOrder(dto) if err != nil { c.AbortWithStatus(http.StatusInternalServerError) } else { c.AbortWithStatusJSON(http.StatusOK, data) } }