vegan-barcode/internal/application/handlers.go
2025-04-23 16:23:59 -05:00

48 lines
1.1 KiB
Go

package application
import (
"net/http"
"vegan-barcode/internal/models"
"github.com/gin-gonic/gin"
log "github.com/sirupsen/logrus"
)
func (a *Application) TestHandler(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"message": "Hello World!"})
}
func (a *Application) GetClaimsHandler(c *gin.Context) {
system := c.Param("system")
barcode := c.Param("barcode")
productClaims, err := a.GetClaims(system, barcode)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}
c.JSON(http.StatusOK, productClaims)
}
// PostClaimHandler takes the parameters and body form
func (a *Application) PostClaimHandler(c *gin.Context) {
system := c.Param("system")
barcode := c.Param("barcode")
var requestBody models.UserClaimForm
err := c.BindJSON(&requestBody)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
log.Debugf("requestbody: %v", requestBody)
claim, err := a.CreateUserClaim(system, barcode, requestBody)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}
c.JSON(http.StatusOK, claim)
}