restructure application, add get endpoint
This commit is contained in:
parent
51a34008f1
commit
4ebc663d3b
16 changed files with 266 additions and 165 deletions
22
internal/application/application.go
Normal file
22
internal/application/application.go
Normal 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()
|
||||
}
|
19
internal/application/handlers.go
Normal file
19
internal/application/handlers.go
Normal 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)
|
||||
}
|
17
internal/application/routes.go
Normal file
17
internal/application/routes.go
Normal 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")
|
||||
}
|
19
internal/application/services.go
Normal file
19
internal/application/services.go
Normal 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
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue