update db
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
20a2f975fd
commit
f2aedd7a98
|
@ -9,6 +9,21 @@ import (
|
|||
"os"
|
||||
)
|
||||
|
||||
type Product struct {
|
||||
Id int64 `json:"id"`
|
||||
Article string `json:"article"`
|
||||
Name string `json:"name"`
|
||||
Uri string `json:"uri"`
|
||||
Images []string `json:"images"`
|
||||
Description string `json:"description"`
|
||||
Group int64 `json:"group"`
|
||||
Unit string `json:"unit"`
|
||||
Inventory float64 `json:"inventory"`
|
||||
Variants []*crm.Variant `json:"variants"`
|
||||
Characteristics []*crm.Characteristic `json:"characteristics"`
|
||||
Category int64 `json:"category"`
|
||||
}
|
||||
|
||||
var (
|
||||
ErrProductNotFound = errors.New("product not found")
|
||||
)
|
||||
|
@ -54,17 +69,49 @@ func (s *storageFile) GetProduct(_ context.Context, id int64) (*crm.Product, err
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var products []*crm.Product
|
||||
var products []*Product
|
||||
if err := json.Unmarshal(data, &products); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for _, product := range products {
|
||||
if product.Id == id {
|
||||
return product, nil
|
||||
var product *Product
|
||||
for _, p := range products {
|
||||
if p.Id == id {
|
||||
product = p
|
||||
break
|
||||
}
|
||||
}
|
||||
if product == nil {
|
||||
return nil, ErrProductNotFound
|
||||
}
|
||||
res := &crm.Product{
|
||||
Id: product.Id,
|
||||
Article: product.Article,
|
||||
Name: product.Name,
|
||||
Uri: product.Uri,
|
||||
Images: product.Images,
|
||||
Description: product.Description,
|
||||
GroupedProducts: nil,
|
||||
Unit: product.Unit,
|
||||
Inventory: product.Inventory,
|
||||
Variants: product.Variants,
|
||||
Characteristics: product.Characteristics,
|
||||
Category: product.Category,
|
||||
}
|
||||
for _, p := range products {
|
||||
if p.Group == product.Group {
|
||||
image := ""
|
||||
if len(product.Images) > 0 {
|
||||
image = p.Images[0]
|
||||
}
|
||||
res.GroupedProducts = append(res.GroupedProducts, &crm.GroupedProduct{
|
||||
Name: p.Name,
|
||||
Uri: p.Uri,
|
||||
Image: image,
|
||||
})
|
||||
}
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *storageFile) GetBreadcrumbs(_ context.Context, id int64) ([]*crm.Category, error) {
|
||||
data, err := os.ReadFile("resources/catalog.json")
|
||||
|
|
|
@ -12,9 +12,21 @@
|
|||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "Пахлава",
|
||||
"name": "Печенье бисквитное",
|
||||
"uri": "/categories/2",
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "Печенье песочное",
|
||||
"uri": "/categories/3",
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "Восточные сладости",
|
||||
"uri": "/categories/4",
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue