restructure application, add get endpoint

This commit is contained in:
katefort 2025-04-21 18:30:12 -05:00
parent 51a34008f1
commit 4ebc663d3b
16 changed files with 266 additions and 165 deletions

View file

@ -0,0 +1,22 @@
package application
import (
"vegan-barcode/internal/database"
"vegan-barcode/internal/utils"
"github.com/sirupsen/logrus"
)
type Application struct {
db database.Database
log *logrus.Logger
}
func Start() {
application := Application{
db: database.InitializeDatabase(),
log: utils.InitializeLogger(),
}
application.bindRoutes()
}

View file

@ -0,0 +1,19 @@
package application
import (
"net/http"
"github.com/gin-gonic/gin"
)
func (a *Application) GetClaimsHandler(c *gin.Context) {
system := c.DefaultQuery("system", "upc")
barcode := c.Query("barcode")
productClaims, err := a.GetClaims(system, barcode)
if err != nil {
c.JSON(http.StatusInternalServerError, nil)
return
}
c.JSON(http.StatusOK, productClaims)
}

View file

@ -0,0 +1,17 @@
package application
import (
"github.com/gin-gonic/gin"
)
func (application *Application) bindRoutes() {
router := gin.Default()
router.Group("/claims")
{
router.GET("/:barcode", application.GetClaimsHandler)
}
router.Run("localhost:8080")
}

View file

@ -0,0 +1,19 @@
package application
import (
"vegan-barcode/internal/models"
)
func (a *Application) GetClaims(system string, barcode string) (*models.ProductClaims, error) {
id, err := a.db.FindProductIDByBarcode(system, barcode)
if err != nil {
return nil, err
}
claims, err := a.db.FindClaimsByProductID(id)
if err != nil {
return nil, err
}
return &models.ProductClaims{Id: id, Claims: claims}, nil
}