vegan-barcode/internal/application/services.go
2025-04-21 19:13:58 -05:00

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)
}