Add CategotyItemAPI, ItemAPI to get items from DotsAPI.

main
KKlochko 2 years ago
parent 5d0c12fac1
commit 3daf18f5c3

@ -0,0 +1,40 @@
<?php
namespace App\DotsAPI\API\v2;
use App\DotsAPI\API\v2\AbstractItemAPI;
use App\DotsAPI\API\v2\ItemAPI;
use App\Models\Company;
use App\Models\Category;
use App\Models\Item;
class CategoryItemAPI extends AbstractItemAPI
{
public function getMap($company_uuid = null) {
$endpoint = '/api/v2/companies/' . $company_uuid . '/items-by-categories/';
$categotiesItemsMap = $this->fetcher->get($endpoint);
return $categotiesItemsMap;
}
public function saveMap($categotiesItems, $company = null) {
foreach ($categotiesItems as $category) {
$uuid = $category['id'];
$name = $category['name'];
$url = $category['url'];
$category = Category::firstOrCreate([
'uuid' => $uuid,
'name' => $name,
'url' => $url,
'company_id' => $company->id
]);
$item = new ItemAPI($this->fetcher);
$item->saveMap($category['items']);
}
}
}

@ -0,0 +1,34 @@
<?php
namespace App\DotsAPI\API\v2;
use App\DotsAPI\API\v2\AbstractItemAPI;
use App\Models\Item;
class ItemAPI extends AbstractItemAPI
{
public function getMap($category_uuid = null) {
//
}
public function saveMap($items, $category = null) {
foreach ($items as $item) {
$uuid = $item['id'];
$name = $item['name'];
$url = $item['url'];
$description = $item['description'] ?? '';
$price = $item['price'] ?? 0.0;
$image = $item['image'] ?? '';
Item::firstOrCreate([
'uuid' => $uuid,
'name' => $name,
'url' => $url,
'description' => $description,
'price' => $price,
'image' => $image,
'category_id' => $category->id,
]);
}
}
}
Loading…
Cancel
Save