41 lines
861 B
Go
41 lines
861 B
Go
package application
|
|
|
|
import (
|
|
"errors"
|
|
"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
|
|
}
|
|
if id == -1 {
|
|
return nil, errors.New("Product not found")
|
|
}
|
|
|
|
claims, err := a.db.FindClaimsByProductID(id)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
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)
|
|
}
|