add create product endpoint
This commit is contained in:
parent
43c183c29a
commit
561b8841fc
7 changed files with 104 additions and 23 deletions
|
@ -2,12 +2,13 @@ package application
|
|||
|
||||
import (
|
||||
"net/http"
|
||||
"vegan-barcode/internal/models"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func (a *Application) GetClaimsHandler(c *gin.Context) {
|
||||
system := c.DefaultQuery("system", "upc")
|
||||
system := c.Query("system")
|
||||
barcode := c.Query("barcode")
|
||||
|
||||
productClaims, err := a.GetClaims(system, barcode)
|
||||
|
@ -17,3 +18,13 @@ func (a *Application) GetClaimsHandler(c *gin.Context) {
|
|||
}
|
||||
c.JSON(http.StatusOK, productClaims)
|
||||
}
|
||||
|
||||
func (a *Application) PostClaimHandler(c *gin.Context) {
|
||||
system := c.Query("system")
|
||||
barcode := c.Query("barcode")
|
||||
|
||||
var requestBody models.UserClaimForm
|
||||
c.BindJSON(&requestBody)
|
||||
|
||||
a.CreateClaim(system, barcode, requestBody)
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package application
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"vegan-barcode/internal/models"
|
||||
)
|
||||
|
||||
|
@ -9,6 +10,9 @@ func (a *Application) GetClaims(system string, barcode string) (*models.ProductC
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if id == -1 {
|
||||
return nil, errors.New("Product not found")
|
||||
}
|
||||
|
||||
claims, err := a.db.FindClaimsByProductID(id)
|
||||
if err != nil {
|
||||
|
@ -17,3 +21,20 @@ func (a *Application) GetClaims(system string, barcode string) (*models.ProductC
|
|||
|
||||
return &models.ProductClaims{Id: id, Claims: claims}, nil
|
||||
}
|
||||
|
||||
func (a *Application) CreateClaim(system string, barcode string, form models.UserClaimForm) {
|
||||
id, err := a.db.FindProductIDByBarcode(system, barcode)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// no product, create new
|
||||
if id == -1 {
|
||||
product, err := a.db.CreateProduct()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
id = product.ID
|
||||
}
|
||||
|
||||
claim, err := a.db.CreateUserClaim(id, form)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue