package linkqu import ( "enaklo-pos-be/internal/entity" "enaklo-pos-be/internal/handlers/request" "enaklo-pos-be/internal/handlers/response" "enaklo-pos-be/internal/services" "encoding/json" "fmt" "github.com/gin-gonic/gin" "net/http" ) type Handler struct { service services.Order } func (h *Handler) Route(group *gin.RouterGroup, jwt gin.HandlerFunc) { route := group.Group("/linkqu") route.POST("/callback", h.Callback) } func NewHandler(service services.Order) *Handler { return &Handler{ service: service, } } func (h *Handler) Callback(c *gin.Context) { var callbackData request.LinQuCallback if err := c.ShouldBindJSON(&callbackData); err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return } data, _ := json.Marshal(callbackData) fmt.Println(string(data)) err := h.service.ProcessLinkQuCallback(c, &entity.LinkQuCallback{ PaymentReff: callbackData.PartnerReff2, Status: callbackData.Status, Signature: callbackData.Signature, PartnerReff: callbackData.PartnerReff, }) if err != nil { c.JSON(http.StatusBadRequest, response.BaseResponse{ Success: false, Status: http.StatusBadRequest, Message: err.Error(), Data: nil, }) return } c.JSON(http.StatusOK, response.BaseResponse{ Success: true, Status: http.StatusOK, Message: "order", Response: "00", }) }