116 lines
2.9 KiB
PHP
116 lines
2.9 KiB
PHP
<?php
|
|
|
|
namespace KupShop\SellerBundle\Utils;
|
|
|
|
use Symfony\Component\HttpClient\HttpClient;
|
|
use Symfony\Component\HttpClient\HttpOptions;
|
|
|
|
class SellerGraphQLProvider
|
|
{
|
|
public const string GET_LOCATIONS = <<<'GRAPHQL'
|
|
query GetBranches($coordinatesA: CoordinatesInput, $coordinatesB: CoordinatesInput, $branchType: Int) {
|
|
branches(
|
|
coordinatesB: $coordinatesB
|
|
branchType: $branchType
|
|
country: "cz"
|
|
coordinatesA: $coordinatesA
|
|
) {
|
|
id
|
|
name
|
|
address
|
|
branchType {
|
|
id
|
|
}
|
|
coordinates {
|
|
latitude
|
|
longitude
|
|
}
|
|
box
|
|
card
|
|
wheelchair
|
|
}
|
|
}
|
|
GRAPHQL;
|
|
|
|
public const string SEARCH_BRANCHES = <<<'GRAPHQL'
|
|
query SearchBranches($search: String!, $branchType: Int) {
|
|
branches(search: $search, branchType: $branchType) {
|
|
address,
|
|
city,
|
|
coordinates {
|
|
latitude,
|
|
longitude
|
|
},
|
|
id,
|
|
name,
|
|
zip
|
|
}
|
|
}
|
|
GRAPHQL;
|
|
|
|
public const string GET_BRANCH_INFO = <<<'GRAPHQL'
|
|
query GetBranchInfo($id: Int!) {
|
|
branch(id: $id) {
|
|
address
|
|
city
|
|
coordinates {
|
|
latitude
|
|
longitude
|
|
}
|
|
country
|
|
id
|
|
name
|
|
openningHours {
|
|
monday
|
|
tuesday
|
|
wednesday
|
|
thursday
|
|
friday
|
|
saturday
|
|
sunday
|
|
}
|
|
zip
|
|
branchId
|
|
}
|
|
}
|
|
GRAPHQL;
|
|
|
|
public const string GET_CLUSTERS = <<<'GRAPHQL'
|
|
query ClusterQuery($coordinatesA: CoordinatesInput, $coordinatesB: CoordinatesInput, $branchType: Int, $zoom: Int!) {
|
|
clusters(coordinatesA: $coordinatesA, coordinatesB: $coordinatesB, branchType: $branchType, zoom: $zoom) {
|
|
id
|
|
coordinates {
|
|
latitude
|
|
longitude
|
|
}
|
|
clusterZoom
|
|
pointCount
|
|
cluster
|
|
}
|
|
}
|
|
GRAPHQL;
|
|
|
|
private $client;
|
|
|
|
private const ENDPOINT = 'https://widget.ltrk.dev/graphql';
|
|
|
|
public function __construct()
|
|
{
|
|
$this->client = HttpClient::create();
|
|
}
|
|
|
|
public function makeRequest($query, $variables = [])
|
|
{
|
|
$options = (new HttpOptions())
|
|
->setJson(['query' => $query, 'variables' => $variables])
|
|
->setHeaders([
|
|
'Content-Type' => 'application/json',
|
|
'User-Agent' => 'Symfony GraphQL client',
|
|
]);
|
|
|
|
return $this->client
|
|
->request('POST', self::ENDPOINT, $options->toArray())
|
|
->toArray();
|
|
}
|
|
}
|