package services import ( "encoding/json" "fmt" "relynolli-server/internal" "relynolli-server/models" ) func retrieveItems(stmt string, structure interface{}) { db := internal.InitDatabase() db.FetchRows(stmt, structure) } func retrieveCatalogItems(stmt string) []models.CatalogStructWeb { var catalogList []models.CatalogStruct var returnedList []models.CatalogStructWeb retrieveItems(stmt, &catalogList) for _, item := range catalogList { itemProd := models.CatalogStructWeb{ Id: item.Id, Code: item.Code, Name: item.Name, IsActive: item.IsActive, DetailText: item.DetailText, AvailableQuantity: item.AvailableQuantity, } json.Unmarshal(item.Price, &itemProd.Price) json.Unmarshal(item.Properties, &itemProd.Properties) returnedList = append(returnedList, itemProd) } return returnedList } func GetCatalogItems(limit int, offset int) []models.CatalogStructWeb { stmt := fmt.Sprintf("select * from api_catalog order by id DESC limit %d offset %d;", limit, offset) return retrieveCatalogItems(stmt) } func GetCatalogItem(code string) (models.CatalogStructWeb, error) { stmt := fmt.Sprintf("select * from api_catalog where code = '%s';", code) items := retrieveCatalogItems(stmt) if len(items) == 0 { return models.CatalogStructWeb{}, fmt.Errorf("Not founded catalog item with given code") } return retrieveCatalogItems(stmt)[0], nil } func GetCatalogItemById(id int) (models.CatalogStructWeb, error) { stmt := fmt.Sprintf("select * from api_catalog where id = %d;", id) items := retrieveCatalogItems(stmt) if len(items) == 0 { return models.CatalogStructWeb{}, fmt.Errorf("Not founded catalog item with given code") } return retrieveCatalogItems(stmt)[0], nil }