parent
87483cce4e
commit
814b56ca3d
@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\DotsAPI\API\v2;
|
||||||
|
|
||||||
|
use App\DotsAPI\Fetcher\v2\ApiFetcher;
|
||||||
|
|
||||||
|
abstract class AbstractItemAPI
|
||||||
|
{
|
||||||
|
protected ApiFetcher $fetcher;
|
||||||
|
|
||||||
|
public function __construct(ApiFetcher $fetcher)
|
||||||
|
{
|
||||||
|
$this->fetcher = $fetcher;
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract public function getMap($context = null);
|
||||||
|
|
||||||
|
abstract public function saveMap($map);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\DotsAPI\API\v2;
|
||||||
|
|
||||||
|
use App\DotsAPI\API\v2\AbstractItemAPI;
|
||||||
|
use App\Models\City;
|
||||||
|
|
||||||
|
class CityAPI extends AbstractItemAPI
|
||||||
|
{
|
||||||
|
public function getMap() {
|
||||||
|
$endpoint = '/api/v2/cities';
|
||||||
|
|
||||||
|
$citiesMap = $this->fetcher->get($endpoint);
|
||||||
|
|
||||||
|
return $citiesMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function saveMap($cities) {
|
||||||
|
foreach ($cities as $city) {
|
||||||
|
$uuid = $city['id'];
|
||||||
|
$name = $city['name'];
|
||||||
|
$url = $city['url'];
|
||||||
|
|
||||||
|
City::firstOrCreate([
|
||||||
|
'uuid' => $uuid,
|
||||||
|
'name' => $name,
|
||||||
|
'url' => $url
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\DotsAPI\API\v2;
|
||||||
|
|
||||||
|
use App\DotsAPI\API\v2\AbstractItemAPI;
|
||||||
|
use App\Models\Company;
|
||||||
|
|
||||||
|
class CompanyAPI extends AbstractItemAPI
|
||||||
|
{
|
||||||
|
public function getMap($city_uuid = null) {
|
||||||
|
$endpoint = '/api/v2/cities/' . $city_uuid . '/companies/';
|
||||||
|
|
||||||
|
$companiesMap = $this->fetcher->get($endpoint);
|
||||||
|
|
||||||
|
return $companiesMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function saveMap($companies) {
|
||||||
|
foreach ($companies as $company) {
|
||||||
|
$uuid = $company['id'];
|
||||||
|
$name = $company['name'];
|
||||||
|
$image = $company['image'] ?? '';
|
||||||
|
$description = $company['description'] ?? '';
|
||||||
|
|
||||||
|
Company::firstOrCreate([
|
||||||
|
'uuid' => $uuid,
|
||||||
|
'name' => $name,
|
||||||
|
'image' => $image,
|
||||||
|
'description' => $description,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue