%PDF- %GIF98; %PNG;
Server : ApacheSystem : Linux host.digitalbabaji.in 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : addictionfreeind ( 1003) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Directory : /home/addictionfreeind/www/admin1/vendor/square/square/src/Apis/ |
Upload File : |
<?php
declare(strict_types=1);
namespace Square\Apis;
use Square\Exceptions\ApiException;
use Square\ApiHelper;
use Square\ConfigurationInterface;
use Square\Http\ApiResponse;
use Square\Http\HttpRequest;
use Square\Http\HttpResponse;
use Square\Http\HttpMethod;
use Square\Http\HttpContext;
use Square\Http\HttpCallBack;
use Unirest\Request;
class CatalogApi extends BaseApi
{
public function __construct(ConfigurationInterface $config, array $authManagers, ?HttpCallBack $httpCallBack)
{
parent::__construct($config, $authManagers, $httpCallBack);
}
/**
* Deletes a set of [CatalogItem]($m/CatalogItem)s based on the
* provided list of target IDs and returns a set of successfully deleted IDs in
* the response. Deletion is a cascading event such that all children of the
* targeted object are also deleted. For example, deleting a CatalogItem will
* also delete all of its [CatalogItemVariation]($m/CatalogItemVariation)
* children.
*
* `BatchDeleteCatalogObjects` succeeds even if only a portion of the targeted
* IDs can be deleted. The response will only include IDs that were
* actually deleted.
*
* @param \Square\Models\BatchDeleteCatalogObjectsRequest $body An object containing the fields
* to POST for the request.
*
* See the corresponding object definition for field details.
*
* @return ApiResponse Response from the API call
*
* @throws ApiException Thrown if API call fails
*/
public function batchDeleteCatalogObjects(\Square\Models\BatchDeleteCatalogObjectsRequest $body): ApiResponse
{
//prepare query string for API call
$_queryBuilder = '/v2/catalog/batch-delete';
//validate and preprocess url
$_queryUrl = ApiHelper::cleanUrl($this->config->getBaseUri() . $_queryBuilder);
//prepare headers
$_headers = [
'user-agent' => BaseApi::USER_AGENT,
'Accept' => 'application/json',
'Square-Version' => $this->config->getSquareVersion(),
'Content-Type' => 'application/json'
];
$_headers = ApiHelper::mergeHeaders($_headers, $this->config->getAdditionalHeaders());
//json encode body
$_bodyJson = Request\Body::Json($body);
$_httpRequest = new HttpRequest(HttpMethod::POST, $_headers, $_queryUrl);
// Apply authorization to request
$this->getAuthManager('global')->apply($_httpRequest);
//call on-before Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnBeforeRequest($_httpRequest);
}
// and invoke the API call request to fetch the response
try {
$response = Request::post($_httpRequest->getQueryUrl(), $_httpRequest->getHeaders(), $_bodyJson);
} catch (\Unirest\Exception $ex) {
throw new ApiException($ex->getMessage(), $_httpRequest);
}
$_httpResponse = new HttpResponse($response->code, $response->headers, $response->raw_body);
$_httpContext = new HttpContext($_httpRequest, $_httpResponse);
//call on-after Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnAfterRequest($_httpContext);
}
if (!$this->isValidResponse($_httpResponse)) {
return ApiResponse::createFromContext($response->body, null, $_httpContext);
}
$mapper = $this->getJsonMapper();
$deserializedResponse = $mapper->mapClass($response->body, 'Square\\Models\\BatchDeleteCatalogObjectsResponse');
return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext);
}
/**
* Returns a set of objects based on the provided ID.
* Each [CatalogItem]($m/CatalogItem) returned in the set includes all of its
* child information including: all of its
* [CatalogItemVariation]($m/CatalogItemVariation) objects, references to
* its [CatalogModifierList]($m/CatalogModifierList) objects, and the ids of
* any [CatalogTax]($m/CatalogTax) objects that apply to it.
*
* @param \Square\Models\BatchRetrieveCatalogObjectsRequest $body An object containing the
* fields to POST for the request.
*
* See the corresponding object definition for field details.
*
* @return ApiResponse Response from the API call
*
* @throws ApiException Thrown if API call fails
*/
public function batchRetrieveCatalogObjects(\Square\Models\BatchRetrieveCatalogObjectsRequest $body): ApiResponse
{
//prepare query string for API call
$_queryBuilder = '/v2/catalog/batch-retrieve';
//validate and preprocess url
$_queryUrl = ApiHelper::cleanUrl($this->config->getBaseUri() . $_queryBuilder);
//prepare headers
$_headers = [
'user-agent' => BaseApi::USER_AGENT,
'Accept' => 'application/json',
'Square-Version' => $this->config->getSquareVersion(),
'Content-Type' => 'application/json'
];
$_headers = ApiHelper::mergeHeaders($_headers, $this->config->getAdditionalHeaders());
//json encode body
$_bodyJson = Request\Body::Json($body);
$_httpRequest = new HttpRequest(HttpMethod::POST, $_headers, $_queryUrl);
// Apply authorization to request
$this->getAuthManager('global')->apply($_httpRequest);
//call on-before Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnBeforeRequest($_httpRequest);
}
// and invoke the API call request to fetch the response
try {
$response = Request::post($_httpRequest->getQueryUrl(), $_httpRequest->getHeaders(), $_bodyJson);
} catch (\Unirest\Exception $ex) {
throw new ApiException($ex->getMessage(), $_httpRequest);
}
$_httpResponse = new HttpResponse($response->code, $response->headers, $response->raw_body);
$_httpContext = new HttpContext($_httpRequest, $_httpResponse);
//call on-after Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnAfterRequest($_httpContext);
}
if (!$this->isValidResponse($_httpResponse)) {
return ApiResponse::createFromContext($response->body, null, $_httpContext);
}
$mapper = $this->getJsonMapper();
$deserializedResponse = $mapper->mapClass(
$response->body,
'Square\\Models\\BatchRetrieveCatalogObjectsResponse'
);
return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext);
}
/**
* Creates or updates up to 10,000 target objects based on the provided
* list of objects. The target objects are grouped into batches and each batch is
* inserted/updated in an all-or-nothing manner. If an object within a batch is
* malformed in some way, or violates a database constraint, the entire batch
* containing that item will be disregarded. However, other batches in the same
* request may still succeed. Each batch may contain up to 1,000 objects, and
* batches will be processed in order as long as the total object count for the
* request (items, variations, modifier lists, discounts, and taxes) is no more
* than 10,000.
*
* @param \Square\Models\BatchUpsertCatalogObjectsRequest $body An object containing the fields
* to POST for the request.
*
* See the corresponding object definition for field details.
*
* @return ApiResponse Response from the API call
*
* @throws ApiException Thrown if API call fails
*/
public function batchUpsertCatalogObjects(\Square\Models\BatchUpsertCatalogObjectsRequest $body): ApiResponse
{
//prepare query string for API call
$_queryBuilder = '/v2/catalog/batch-upsert';
//validate and preprocess url
$_queryUrl = ApiHelper::cleanUrl($this->config->getBaseUri() . $_queryBuilder);
//prepare headers
$_headers = [
'user-agent' => BaseApi::USER_AGENT,
'Accept' => 'application/json',
'Square-Version' => $this->config->getSquareVersion(),
'Content-Type' => 'application/json'
];
$_headers = ApiHelper::mergeHeaders($_headers, $this->config->getAdditionalHeaders());
//json encode body
$_bodyJson = Request\Body::Json($body);
$_httpRequest = new HttpRequest(HttpMethod::POST, $_headers, $_queryUrl);
// Apply authorization to request
$this->getAuthManager('global')->apply($_httpRequest);
//call on-before Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnBeforeRequest($_httpRequest);
}
// and invoke the API call request to fetch the response
try {
$response = Request::post($_httpRequest->getQueryUrl(), $_httpRequest->getHeaders(), $_bodyJson);
} catch (\Unirest\Exception $ex) {
throw new ApiException($ex->getMessage(), $_httpRequest);
}
$_httpResponse = new HttpResponse($response->code, $response->headers, $response->raw_body);
$_httpContext = new HttpContext($_httpRequest, $_httpResponse);
//call on-after Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnAfterRequest($_httpContext);
}
if (!$this->isValidResponse($_httpResponse)) {
return ApiResponse::createFromContext($response->body, null, $_httpContext);
}
$mapper = $this->getJsonMapper();
$deserializedResponse = $mapper->mapClass($response->body, 'Square\\Models\\BatchUpsertCatalogObjectsResponse');
return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext);
}
/**
* Uploads an image file to be represented by a [CatalogImage]($m/CatalogImage) object linked to an
* existing
* [CatalogObject]($m/CatalogObject) instance. A call to this endpoint can upload an image, link an
* image to
* a catalog object, or do both.
*
* This `CreateCatalogImage` endpoint accepts HTTP multipart/form-data requests with a JSON part and an
* image file part in
* JPEG, PJPEG, PNG, or GIF format. The maximum file size is 15MB.
*
* @param \Square\Models\CreateCatalogImageRequest|null $request
* @param \Square\Utils\FileWrapper|null $imageFile
*
* @return ApiResponse Response from the API call
*
* @throws ApiException Thrown if API call fails
*/
public function createCatalogImage(
?\Square\Models\CreateCatalogImageRequest $request = null,
?\Square\Utils\FileWrapper $imageFile = null
): ApiResponse {
//prepare query string for API call
$_queryBuilder = '/v2/catalog/images';
//validate and preprocess url
$_queryUrl = ApiHelper::cleanUrl($this->config->getBaseUri() . $_queryBuilder);
//prepare headers
$_headers = [
'user-agent' => BaseApi::USER_AGENT,
'Accept' => 'application/json',
'Square-Version' => $this->config->getSquareVersion()
];
$_headers = ApiHelper::mergeHeaders($_headers, $this->config->getAdditionalHeaders());
//prepare parameters
$_parameters = [
'request' => json_encode($request),
'image_file' => $imageFile === null ? null : $imageFile->createCurlFileInstance('image/jpeg')
];
$_httpRequest = new HttpRequest(HttpMethod::POST, $_headers, $_queryUrl, $_parameters);
// Apply authorization to request
$this->getAuthManager('global')->apply($_httpRequest);
//call on-before Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnBeforeRequest($_httpRequest);
}
// and invoke the API call request to fetch the response
try {
$response = Request::post(
$_httpRequest->getQueryUrl(),
$_httpRequest->getHeaders(),
Request::buildHTTPCurlQuery($_parameters)
);
} catch (\Unirest\Exception $ex) {
throw new ApiException($ex->getMessage(), $_httpRequest);
}
$_httpResponse = new HttpResponse($response->code, $response->headers, $response->raw_body);
$_httpContext = new HttpContext($_httpRequest, $_httpResponse);
//call on-after Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnAfterRequest($_httpContext);
}
if (!$this->isValidResponse($_httpResponse)) {
return ApiResponse::createFromContext($response->body, null, $_httpContext);
}
$mapper = $this->getJsonMapper();
$deserializedResponse = $mapper->mapClass($response->body, 'Square\\Models\\CreateCatalogImageResponse');
return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext);
}
/**
* Retrieves information about the Square Catalog API, such as batch size
* limits that can be used by the `BatchUpsertCatalogObjects` endpoint.
*
* @return ApiResponse Response from the API call
*
* @throws ApiException Thrown if API call fails
*/
public function catalogInfo(): ApiResponse
{
//prepare query string for API call
$_queryBuilder = '/v2/catalog/info';
//validate and preprocess url
$_queryUrl = ApiHelper::cleanUrl($this->config->getBaseUri() . $_queryBuilder);
//prepare headers
$_headers = [
'user-agent' => BaseApi::USER_AGENT,
'Accept' => 'application/json',
'Square-Version' => $this->config->getSquareVersion()
];
$_headers = ApiHelper::mergeHeaders($_headers, $this->config->getAdditionalHeaders());
$_httpRequest = new HttpRequest(HttpMethod::GET, $_headers, $_queryUrl);
// Apply authorization to request
$this->getAuthManager('global')->apply($_httpRequest);
//call on-before Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnBeforeRequest($_httpRequest);
}
// and invoke the API call request to fetch the response
try {
$response = Request::get($_httpRequest->getQueryUrl(), $_httpRequest->getHeaders());
} catch (\Unirest\Exception $ex) {
throw new ApiException($ex->getMessage(), $_httpRequest);
}
$_httpResponse = new HttpResponse($response->code, $response->headers, $response->raw_body);
$_httpContext = new HttpContext($_httpRequest, $_httpResponse);
//call on-after Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnAfterRequest($_httpContext);
}
if (!$this->isValidResponse($_httpResponse)) {
return ApiResponse::createFromContext($response->body, null, $_httpContext);
}
$mapper = $this->getJsonMapper();
$deserializedResponse = $mapper->mapClass($response->body, 'Square\\Models\\CatalogInfoResponse');
return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext);
}
/**
* Returns a list of [CatalogObject]($m/CatalogObject)s that includes
* all objects of a set of desired types (for example, all [CatalogItem]($m/CatalogItem)
* and [CatalogTax]($m/CatalogTax) objects) in the catalog. The `types` parameter
* is specified as a comma-separated list of valid [CatalogObject]($m/CatalogObject) types:
* `ITEM`, `ITEM_VARIATION`, `MODIFIER`, `MODIFIER_LIST`, `CATEGORY`, `DISCOUNT`, `TAX`, `IMAGE`.
*
* __Important:__ ListCatalog does not return deleted catalog items. To retrieve
* deleted catalog items, use [SearchCatalogObjects]($e/Catalog/SearchCatalogObjects)
* and set the `include_deleted_objects` attribute value to `true`.
*
* @param string|null $cursor The pagination cursor returned in the previous response. Leave
* unset for an initial request.
* The page size is currently set to be 100.
* See [Pagination](https://developer.squareup.com/docs/basics/api101/pagination) for
* more information.
* @param string|null $types An optional case-insensitive, comma-separated list of object types
* to retrieve.
*
* The valid values are defined in the [CatalogObjectType]($m/CatalogObjectType) enum,
* including
* `ITEM`, `ITEM_VARIATION`, `CATEGORY`, `DISCOUNT`, `TAX`,
* `MODIFIER`, `MODIFIER_LIST`, or `IMAGE`.
*
* If this is unspecified, the operation returns objects of all the types at the
* version of the Square API used to make the request.
* @param int|null $catalogVersion The specific version of the catalog objects to be included in
* the response.
* This allows you to retrieve historical
* versions of objects. The specified version value is matched against
* the [CatalogObject]($m/CatalogObject)s' `version` attribute.
*
* @return ApiResponse Response from the API call
*
* @throws ApiException Thrown if API call fails
*/
public function listCatalog(
?string $cursor = null,
?string $types = null,
?int $catalogVersion = null
): ApiResponse {
//prepare query string for API call
$_queryBuilder = '/v2/catalog/list';
//process optional query parameters
ApiHelper::appendUrlWithQueryParameters($_queryBuilder, [
'cursor' => $cursor,
'types' => $types,
'catalog_version' => $catalogVersion,
]);
//validate and preprocess url
$_queryUrl = ApiHelper::cleanUrl($this->config->getBaseUri() . $_queryBuilder);
//prepare headers
$_headers = [
'user-agent' => BaseApi::USER_AGENT,
'Accept' => 'application/json',
'Square-Version' => $this->config->getSquareVersion()
];
$_headers = ApiHelper::mergeHeaders($_headers, $this->config->getAdditionalHeaders());
$_httpRequest = new HttpRequest(HttpMethod::GET, $_headers, $_queryUrl);
// Apply authorization to request
$this->getAuthManager('global')->apply($_httpRequest);
//call on-before Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnBeforeRequest($_httpRequest);
}
// and invoke the API call request to fetch the response
try {
$response = Request::get($_httpRequest->getQueryUrl(), $_httpRequest->getHeaders());
} catch (\Unirest\Exception $ex) {
throw new ApiException($ex->getMessage(), $_httpRequest);
}
$_httpResponse = new HttpResponse($response->code, $response->headers, $response->raw_body);
$_httpContext = new HttpContext($_httpRequest, $_httpResponse);
//call on-after Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnAfterRequest($_httpContext);
}
if (!$this->isValidResponse($_httpResponse)) {
return ApiResponse::createFromContext($response->body, null, $_httpContext);
}
$mapper = $this->getJsonMapper();
$deserializedResponse = $mapper->mapClass($response->body, 'Square\\Models\\ListCatalogResponse');
return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext);
}
/**
* Creates or updates the target [CatalogObject]($m/CatalogObject).
*
* @param \Square\Models\UpsertCatalogObjectRequest $body An object containing the fields to
* POST for the request.
*
* See the corresponding object definition for field details.
*
* @return ApiResponse Response from the API call
*
* @throws ApiException Thrown if API call fails
*/
public function upsertCatalogObject(\Square\Models\UpsertCatalogObjectRequest $body): ApiResponse
{
//prepare query string for API call
$_queryBuilder = '/v2/catalog/object';
//validate and preprocess url
$_queryUrl = ApiHelper::cleanUrl($this->config->getBaseUri() . $_queryBuilder);
//prepare headers
$_headers = [
'user-agent' => BaseApi::USER_AGENT,
'Accept' => 'application/json',
'Square-Version' => $this->config->getSquareVersion(),
'Content-Type' => 'application/json'
];
$_headers = ApiHelper::mergeHeaders($_headers, $this->config->getAdditionalHeaders());
//json encode body
$_bodyJson = Request\Body::Json($body);
$_httpRequest = new HttpRequest(HttpMethod::POST, $_headers, $_queryUrl);
// Apply authorization to request
$this->getAuthManager('global')->apply($_httpRequest);
//call on-before Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnBeforeRequest($_httpRequest);
}
// and invoke the API call request to fetch the response
try {
$response = Request::post($_httpRequest->getQueryUrl(), $_httpRequest->getHeaders(), $_bodyJson);
} catch (\Unirest\Exception $ex) {
throw new ApiException($ex->getMessage(), $_httpRequest);
}
$_httpResponse = new HttpResponse($response->code, $response->headers, $response->raw_body);
$_httpContext = new HttpContext($_httpRequest, $_httpResponse);
//call on-after Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnAfterRequest($_httpContext);
}
if (!$this->isValidResponse($_httpResponse)) {
return ApiResponse::createFromContext($response->body, null, $_httpContext);
}
$mapper = $this->getJsonMapper();
$deserializedResponse = $mapper->mapClass($response->body, 'Square\\Models\\UpsertCatalogObjectResponse');
return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext);
}
/**
* Deletes a single [CatalogObject]($m/CatalogObject) based on the
* provided ID and returns the set of successfully deleted IDs in the response.
* Deletion is a cascading event such that all children of the targeted object
* are also deleted. For example, deleting a [CatalogItem]($m/CatalogItem)
* will also delete all of its
* [CatalogItemVariation]($m/CatalogItemVariation) children.
*
* @param string $objectId The ID of the catalog object to be deleted. When an object is
* deleted, other
* objects in the graph that depend on that object will be deleted as well (for example,
* deleting a
* catalog item will delete its catalog item variations).
*
* @return ApiResponse Response from the API call
*
* @throws ApiException Thrown if API call fails
*/
public function deleteCatalogObject(string $objectId): ApiResponse
{
//prepare query string for API call
$_queryBuilder = '/v2/catalog/object/{object_id}';
//process optional query parameters
$_queryBuilder = ApiHelper::appendUrlWithTemplateParameters($_queryBuilder, [
'object_id' => $objectId,
]);
//validate and preprocess url
$_queryUrl = ApiHelper::cleanUrl($this->config->getBaseUri() . $_queryBuilder);
//prepare headers
$_headers = [
'user-agent' => BaseApi::USER_AGENT,
'Accept' => 'application/json',
'Square-Version' => $this->config->getSquareVersion()
];
$_headers = ApiHelper::mergeHeaders($_headers, $this->config->getAdditionalHeaders());
$_httpRequest = new HttpRequest(HttpMethod::DELETE, $_headers, $_queryUrl);
// Apply authorization to request
$this->getAuthManager('global')->apply($_httpRequest);
//call on-before Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnBeforeRequest($_httpRequest);
}
// and invoke the API call request to fetch the response
try {
$response = Request::delete($_httpRequest->getQueryUrl(), $_httpRequest->getHeaders());
} catch (\Unirest\Exception $ex) {
throw new ApiException($ex->getMessage(), $_httpRequest);
}
$_httpResponse = new HttpResponse($response->code, $response->headers, $response->raw_body);
$_httpContext = new HttpContext($_httpRequest, $_httpResponse);
//call on-after Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnAfterRequest($_httpContext);
}
if (!$this->isValidResponse($_httpResponse)) {
return ApiResponse::createFromContext($response->body, null, $_httpContext);
}
$mapper = $this->getJsonMapper();
$deserializedResponse = $mapper->mapClass($response->body, 'Square\\Models\\DeleteCatalogObjectResponse');
return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext);
}
/**
* Returns a single [CatalogItem]($m/CatalogItem) as a
* [CatalogObject]($m/CatalogObject) based on the provided ID. The returned
* object includes all of the relevant [CatalogItem]($m/CatalogItem)
* information including: [CatalogItemVariation]($m/CatalogItemVariation)
* children, references to its
* [CatalogModifierList]($m/CatalogModifierList) objects, and the ids of
* any [CatalogTax]($m/CatalogTax) objects that apply to it.
*
* @param string $objectId The object ID of any type of catalog objects to be retrieved.
* @param bool|null $includeRelatedObjects If `true`, the response will include additional
* objects that are related to the
* requested object, as follows:
*
* If the `object` field of the response contains a `CatalogItem`, its associated
* `CatalogCategory`, `CatalogTax`, `CatalogImage` and `CatalogModifierList` objects
* will
* be returned in the `related_objects` field of the response. If the `object` field
* of
* the response contains a `CatalogItemVariation`, its parent `CatalogItem` will be
* returned
* in the `related_objects` field of the response.
*
* Default value: `false`
* @param int|null $catalogVersion Requests objects as of a specific version of the catalog.
* This allows you to retrieve historical
* versions of objects. The value to retrieve a specific version of an object can be
* found
* in the version field of [CatalogObject]($m/CatalogObject)s.
*
* @return ApiResponse Response from the API call
*
* @throws ApiException Thrown if API call fails
*/
public function retrieveCatalogObject(
string $objectId,
?bool $includeRelatedObjects = false,
?int $catalogVersion = null
): ApiResponse {
//prepare query string for API call
$_queryBuilder = '/v2/catalog/object/{object_id}';
//process optional query parameters
$_queryBuilder = ApiHelper::appendUrlWithTemplateParameters($_queryBuilder, [
'object_id' => $objectId,
]);
//process optional query parameters
ApiHelper::appendUrlWithQueryParameters($_queryBuilder, [
'include_related_objects' => (null != $includeRelatedObjects) ?
var_export($includeRelatedObjects, true) : false,
'catalog_version' => $catalogVersion,
]);
//validate and preprocess url
$_queryUrl = ApiHelper::cleanUrl($this->config->getBaseUri() . $_queryBuilder);
//prepare headers
$_headers = [
'user-agent' => BaseApi::USER_AGENT,
'Accept' => 'application/json',
'Square-Version' => $this->config->getSquareVersion()
];
$_headers = ApiHelper::mergeHeaders($_headers, $this->config->getAdditionalHeaders());
$_httpRequest = new HttpRequest(HttpMethod::GET, $_headers, $_queryUrl);
// Apply authorization to request
$this->getAuthManager('global')->apply($_httpRequest);
//call on-before Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnBeforeRequest($_httpRequest);
}
// and invoke the API call request to fetch the response
try {
$response = Request::get($_httpRequest->getQueryUrl(), $_httpRequest->getHeaders());
} catch (\Unirest\Exception $ex) {
throw new ApiException($ex->getMessage(), $_httpRequest);
}
$_httpResponse = new HttpResponse($response->code, $response->headers, $response->raw_body);
$_httpContext = new HttpContext($_httpRequest, $_httpResponse);
//call on-after Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnAfterRequest($_httpContext);
}
if (!$this->isValidResponse($_httpResponse)) {
return ApiResponse::createFromContext($response->body, null, $_httpContext);
}
$mapper = $this->getJsonMapper();
$deserializedResponse = $mapper->mapClass($response->body, 'Square\\Models\\RetrieveCatalogObjectResponse');
return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext);
}
/**
* Searches for [CatalogObject]($m/CatalogObject) of any type by matching supported search attribute
* values,
* excluding custom attribute values on items or item variations, against one or more of the specified
* query filters.
*
* This (`SearchCatalogObjects`) endpoint differs from the
* [SearchCatalogItems]($e/Catalog/SearchCatalogItems)
* endpoint in the following aspects:
*
* - `SearchCatalogItems` can only search for items or item variations, whereas `SearchCatalogObjects`
* can search for any type of catalog objects.
* - `SearchCatalogItems` supports the custom attribute query filters to return items or item
* variations that contain custom attribute values, where `SearchCatalogObjects` does not.
* - `SearchCatalogItems` does not support the `include_deleted_objects` filter to search for deleted
* items or item variations, whereas `SearchCatalogObjects` does.
* - The both endpoints have different call conventions, including the query filter formats.
*
* @param \Square\Models\SearchCatalogObjectsRequest $body An object containing the fields to
* POST for the request.
*
* See the corresponding object definition for field details.
*
* @return ApiResponse Response from the API call
*
* @throws ApiException Thrown if API call fails
*/
public function searchCatalogObjects(\Square\Models\SearchCatalogObjectsRequest $body): ApiResponse
{
//prepare query string for API call
$_queryBuilder = '/v2/catalog/search';
//validate and preprocess url
$_queryUrl = ApiHelper::cleanUrl($this->config->getBaseUri() . $_queryBuilder);
//prepare headers
$_headers = [
'user-agent' => BaseApi::USER_AGENT,
'Accept' => 'application/json',
'Square-Version' => $this->config->getSquareVersion(),
'Content-Type' => 'application/json'
];
$_headers = ApiHelper::mergeHeaders($_headers, $this->config->getAdditionalHeaders());
//json encode body
$_bodyJson = Request\Body::Json($body);
$_httpRequest = new HttpRequest(HttpMethod::POST, $_headers, $_queryUrl);
// Apply authorization to request
$this->getAuthManager('global')->apply($_httpRequest);
//call on-before Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnBeforeRequest($_httpRequest);
}
// and invoke the API call request to fetch the response
try {
$response = Request::post($_httpRequest->getQueryUrl(), $_httpRequest->getHeaders(), $_bodyJson);
} catch (\Unirest\Exception $ex) {
throw new ApiException($ex->getMessage(), $_httpRequest);
}
$_httpResponse = new HttpResponse($response->code, $response->headers, $response->raw_body);
$_httpContext = new HttpContext($_httpRequest, $_httpResponse);
//call on-after Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnAfterRequest($_httpContext);
}
if (!$this->isValidResponse($_httpResponse)) {
return ApiResponse::createFromContext($response->body, null, $_httpContext);
}
$mapper = $this->getJsonMapper();
$deserializedResponse = $mapper->mapClass($response->body, 'Square\\Models\\SearchCatalogObjectsResponse');
return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext);
}
/**
* Searches for catalog items or item variations by matching supported search attribute values,
* including
* custom attribute values, against one or more of the specified query filters.
*
* This (`SearchCatalogItems`) endpoint differs from the
* [SearchCatalogObjects]($e/Catalog/SearchCatalogObjects)
* endpoint in the following aspects:
*
* - `SearchCatalogItems` can only search for items or item variations, whereas `SearchCatalogObjects`
* can search for any type of catalog objects.
* - `SearchCatalogItems` supports the custom attribute query filters to return items or item
* variations that contain custom attribute values, where `SearchCatalogObjects` does not.
* - `SearchCatalogItems` does not support the `include_deleted_objects` filter to search for deleted
* items or item variations, whereas `SearchCatalogObjects` does.
* - The both endpoints use different call conventions, including the query filter formats.
*
* @param \Square\Models\SearchCatalogItemsRequest $body An object containing the fields to POST
* for the request.
*
* See the corresponding object definition for field details.
*
* @return ApiResponse Response from the API call
*
* @throws ApiException Thrown if API call fails
*/
public function searchCatalogItems(\Square\Models\SearchCatalogItemsRequest $body): ApiResponse
{
//prepare query string for API call
$_queryBuilder = '/v2/catalog/search-catalog-items';
//validate and preprocess url
$_queryUrl = ApiHelper::cleanUrl($this->config->getBaseUri() . $_queryBuilder);
//prepare headers
$_headers = [
'user-agent' => BaseApi::USER_AGENT,
'Accept' => 'application/json',
'Square-Version' => $this->config->getSquareVersion(),
'Content-Type' => 'application/json'
];
$_headers = ApiHelper::mergeHeaders($_headers, $this->config->getAdditionalHeaders());
//json encode body
$_bodyJson = Request\Body::Json($body);
$_httpRequest = new HttpRequest(HttpMethod::POST, $_headers, $_queryUrl);
// Apply authorization to request
$this->getAuthManager('global')->apply($_httpRequest);
//call on-before Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnBeforeRequest($_httpRequest);
}
// and invoke the API call request to fetch the response
try {
$response = Request::post($_httpRequest->getQueryUrl(), $_httpRequest->getHeaders(), $_bodyJson);
} catch (\Unirest\Exception $ex) {
throw new ApiException($ex->getMessage(), $_httpRequest);
}
$_httpResponse = new HttpResponse($response->code, $response->headers, $response->raw_body);
$_httpContext = new HttpContext($_httpRequest, $_httpResponse);
//call on-after Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnAfterRequest($_httpContext);
}
if (!$this->isValidResponse($_httpResponse)) {
return ApiResponse::createFromContext($response->body, null, $_httpContext);
}
$mapper = $this->getJsonMapper();
$deserializedResponse = $mapper->mapClass($response->body, 'Square\\Models\\SearchCatalogItemsResponse');
return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext);
}
/**
* Updates the [CatalogModifierList]($m/CatalogModifierList) objects
* that apply to the targeted [CatalogItem]($m/CatalogItem) without having
* to perform an upsert on the entire item.
*
* @param \Square\Models\UpdateItemModifierListsRequest $body An object containing the fields to
* POST for the request.
*
* See the corresponding object definition for field details.
*
* @return ApiResponse Response from the API call
*
* @throws ApiException Thrown if API call fails
*/
public function updateItemModifierLists(\Square\Models\UpdateItemModifierListsRequest $body): ApiResponse
{
//prepare query string for API call
$_queryBuilder = '/v2/catalog/update-item-modifier-lists';
//validate and preprocess url
$_queryUrl = ApiHelper::cleanUrl($this->config->getBaseUri() . $_queryBuilder);
//prepare headers
$_headers = [
'user-agent' => BaseApi::USER_AGENT,
'Accept' => 'application/json',
'Square-Version' => $this->config->getSquareVersion(),
'Content-Type' => 'application/json'
];
$_headers = ApiHelper::mergeHeaders($_headers, $this->config->getAdditionalHeaders());
//json encode body
$_bodyJson = Request\Body::Json($body);
$_httpRequest = new HttpRequest(HttpMethod::POST, $_headers, $_queryUrl);
// Apply authorization to request
$this->getAuthManager('global')->apply($_httpRequest);
//call on-before Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnBeforeRequest($_httpRequest);
}
// and invoke the API call request to fetch the response
try {
$response = Request::post($_httpRequest->getQueryUrl(), $_httpRequest->getHeaders(), $_bodyJson);
} catch (\Unirest\Exception $ex) {
throw new ApiException($ex->getMessage(), $_httpRequest);
}
$_httpResponse = new HttpResponse($response->code, $response->headers, $response->raw_body);
$_httpContext = new HttpContext($_httpRequest, $_httpResponse);
//call on-after Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnAfterRequest($_httpContext);
}
if (!$this->isValidResponse($_httpResponse)) {
return ApiResponse::createFromContext($response->body, null, $_httpContext);
}
$mapper = $this->getJsonMapper();
$deserializedResponse = $mapper->mapClass($response->body, 'Square\\Models\\UpdateItemModifierListsResponse');
return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext);
}
/**
* Updates the [CatalogTax]($m/CatalogTax) objects that apply to the
* targeted [CatalogItem]($m/CatalogItem) without having to perform an
* upsert on the entire item.
*
* @param \Square\Models\UpdateItemTaxesRequest $body An object containing the fields to POST
* for the request.
*
* See the corresponding object definition for field details.
*
* @return ApiResponse Response from the API call
*
* @throws ApiException Thrown if API call fails
*/
public function updateItemTaxes(\Square\Models\UpdateItemTaxesRequest $body): ApiResponse
{
//prepare query string for API call
$_queryBuilder = '/v2/catalog/update-item-taxes';
//validate and preprocess url
$_queryUrl = ApiHelper::cleanUrl($this->config->getBaseUri() . $_queryBuilder);
//prepare headers
$_headers = [
'user-agent' => BaseApi::USER_AGENT,
'Accept' => 'application/json',
'Square-Version' => $this->config->getSquareVersion(),
'Content-Type' => 'application/json'
];
$_headers = ApiHelper::mergeHeaders($_headers, $this->config->getAdditionalHeaders());
//json encode body
$_bodyJson = Request\Body::Json($body);
$_httpRequest = new HttpRequest(HttpMethod::POST, $_headers, $_queryUrl);
// Apply authorization to request
$this->getAuthManager('global')->apply($_httpRequest);
//call on-before Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnBeforeRequest($_httpRequest);
}
// and invoke the API call request to fetch the response
try {
$response = Request::post($_httpRequest->getQueryUrl(), $_httpRequest->getHeaders(), $_bodyJson);
} catch (\Unirest\Exception $ex) {
throw new ApiException($ex->getMessage(), $_httpRequest);
}
$_httpResponse = new HttpResponse($response->code, $response->headers, $response->raw_body);
$_httpContext = new HttpContext($_httpRequest, $_httpResponse);
//call on-after Http callback
if ($this->getHttpCallBack() != null) {
$this->getHttpCallBack()->callOnAfterRequest($_httpContext);
}
if (!$this->isValidResponse($_httpResponse)) {
return ApiResponse::createFromContext($response->body, null, $_httpContext);
}
$mapper = $this->getJsonMapper();
$deserializedResponse = $mapper->mapClass($response->body, 'Square\\Models\\UpdateItemTaxesResponse');
return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext);
}
}