You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.0 KiB

<?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_json) {
$uuid = $category_json['id'];
$name = $category_json['name'];
$url = $category_json['url'];
$category = Category::firstOrCreate([
'uuid' => $uuid,
'name' => $name,
'url' => $url,
'company_id' => $company->id
]);
$item = new ItemAPI($this->fetcher);
$item->saveMap($category_json['items'], $category);
}
}
}