ok
Direktori : /home2/selectio/www/fms-worksuite/vendor/square/square/src/Apis/ |
Current File : /home2/selectio/www/fms-worksuite/vendor/square/square/src/Apis/LaborApi.php |
<?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 LaborApi extends BaseApi { public function __construct(ConfigurationInterface $config, array $authManagers, ?HttpCallBack $httpCallBack) { parent::__construct($config, $authManagers, $httpCallBack); } /** * Returns a paginated list of `BreakType` instances for a business. * * @param string|null $locationId Filter the returned `BreakType` results to only those that are * associated with the * specified location. * @param int|null $limit The maximum number of `BreakType` results to return per page. The * number can range between 1 * and 200. The default is 200. * @param string|null $cursor A pointer to the next page of `BreakType` results to fetch. * * @return ApiResponse Response from the API call * * @throws ApiException Thrown if API call fails */ public function listBreakTypes(?string $locationId = null, ?int $limit = null, ?string $cursor = null): ApiResponse { //prepare query string for API call $_queryBuilder = '/v2/labor/break-types'; //process optional query parameters ApiHelper::appendUrlWithQueryParameters($_queryBuilder, [ 'location_id' => $locationId, 'limit' => $limit, 'cursor' => $cursor, ]); //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\\ListBreakTypesResponse'); return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext); } /** * Creates a new `BreakType`. * * A `BreakType` is a template for creating `Break` objects. * You must provide the following values in your request to this * endpoint: * * - `location_id` * - `break_name` * - `expected_duration` * - `is_paid` * * You can only have three `BreakType` instances per location. If you attempt to add a fourth * `BreakType` for a location, an `INVALID_REQUEST_ERROR` "Exceeded limit of 3 breaks per location." * is returned. * * @param \Square\Models\CreateBreakTypeRequest $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 createBreakType(\Square\Models\CreateBreakTypeRequest $body): ApiResponse { //prepare query string for API call $_queryBuilder = '/v2/labor/break-types'; //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\\CreateBreakTypeResponse'); return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext); } /** * Deletes an existing `BreakType`. * * A `BreakType` can be deleted even if it is referenced from a `Shift`. * * @param string $id The UUID for the `BreakType` being deleted. * * @return ApiResponse Response from the API call * * @throws ApiException Thrown if API call fails */ public function deleteBreakType(string $id): ApiResponse { //prepare query string for API call $_queryBuilder = '/v2/labor/break-types/{id}'; //process optional query parameters $_queryBuilder = ApiHelper::appendUrlWithTemplateParameters($_queryBuilder, [ 'id' => $id, ]); //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\\DeleteBreakTypeResponse'); return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext); } /** * Returns a single `BreakType` specified by `id`. * * @param string $id The UUID for the `BreakType` being retrieved. * * @return ApiResponse Response from the API call * * @throws ApiException Thrown if API call fails */ public function getBreakType(string $id): ApiResponse { //prepare query string for API call $_queryBuilder = '/v2/labor/break-types/{id}'; //process optional query parameters $_queryBuilder = ApiHelper::appendUrlWithTemplateParameters($_queryBuilder, [ 'id' => $id, ]); //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\\GetBreakTypeResponse'); return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext); } /** * Updates an existing `BreakType`. * * @param string $id The UUID for the `BreakType` being updated. * @param \Square\Models\UpdateBreakTypeRequest $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 updateBreakType(string $id, \Square\Models\UpdateBreakTypeRequest $body): ApiResponse { //prepare query string for API call $_queryBuilder = '/v2/labor/break-types/{id}'; //process optional query parameters $_queryBuilder = ApiHelper::appendUrlWithTemplateParameters($_queryBuilder, [ 'id' => $id, ]); //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::PUT, $_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::put($_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\\UpdateBreakTypeResponse'); return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext); } /** * Returns a paginated list of `EmployeeWage` instances for a business. * * @deprecated * * @param string|null $employeeId Filter the returned wages to only those that are associated * with the specified employee. * @param int|null $limit The maximum number of `EmployeeWage` results to return per page. The * number can range between * 1 and 200. The default is 200. * @param string|null $cursor A pointer to the next page of `EmployeeWage` results to fetch. * * @return ApiResponse Response from the API call * * @throws ApiException Thrown if API call fails */ public function listEmployeeWages( ?string $employeeId = null, ?int $limit = null, ?string $cursor = null ): ApiResponse { trigger_error('Method ' . __METHOD__ . ' is deprecated.', E_USER_DEPRECATED); //prepare query string for API call $_queryBuilder = '/v2/labor/employee-wages'; //process optional query parameters ApiHelper::appendUrlWithQueryParameters($_queryBuilder, [ 'employee_id' => $employeeId, 'limit' => $limit, 'cursor' => $cursor, ]); //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\\ListEmployeeWagesResponse'); return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext); } /** * Returns a single `EmployeeWage` specified by `id`. * * @deprecated * * @param string $id The UUID for the `EmployeeWage` being retrieved. * * @return ApiResponse Response from the API call * * @throws ApiException Thrown if API call fails */ public function getEmployeeWage(string $id): ApiResponse { trigger_error('Method ' . __METHOD__ . ' is deprecated.', E_USER_DEPRECATED); //prepare query string for API call $_queryBuilder = '/v2/labor/employee-wages/{id}'; //process optional query parameters $_queryBuilder = ApiHelper::appendUrlWithTemplateParameters($_queryBuilder, [ 'id' => $id, ]); //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\\GetEmployeeWageResponse'); return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext); } /** * Creates a new `Shift`. * * A `Shift` represents a complete workday for a single employee. * You must provide the following values in your request to this * endpoint: * * - `location_id` * - `employee_id` * - `start_at` * * An attempt to create a new `Shift` can result in a `BAD_REQUEST` error when: * - The `status` of the new `Shift` is `OPEN` and the employee has another * shift with an `OPEN` status. * - The `start_at` date is in the future. * - The `start_at` or `end_at` date overlaps another shift for the same employee. * - The `Break` instances are set in the request and a break `start_at` * is before the `Shift.start_at`, a break `end_at` is after * the `Shift.end_at`, or both. * * @param \Square\Models\CreateShiftRequest $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 createShift(\Square\Models\CreateShiftRequest $body): ApiResponse { //prepare query string for API call $_queryBuilder = '/v2/labor/shifts'; //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\\CreateShiftResponse'); return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext); } /** * Returns a paginated list of `Shift` records for a business. * The list to be returned can be filtered by: * - Location IDs. * - Employee IDs. * - Shift status (`OPEN` and `CLOSED`). * - Shift start. * - Shift end. * - Workday details. * * The list can be sorted by: * - `start_at`. * - `end_at`. * - `created_at`. * - `updated_at`. * * @param \Square\Models\SearchShiftsRequest $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 searchShifts(\Square\Models\SearchShiftsRequest $body): ApiResponse { //prepare query string for API call $_queryBuilder = '/v2/labor/shifts/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\\SearchShiftsResponse'); return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext); } /** * Deletes a `Shift`. * * @param string $id The UUID for the `Shift` being deleted. * * @return ApiResponse Response from the API call * * @throws ApiException Thrown if API call fails */ public function deleteShift(string $id): ApiResponse { //prepare query string for API call $_queryBuilder = '/v2/labor/shifts/{id}'; //process optional query parameters $_queryBuilder = ApiHelper::appendUrlWithTemplateParameters($_queryBuilder, [ 'id' => $id, ]); //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\\DeleteShiftResponse'); return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext); } /** * Returns a single `Shift` specified by `id`. * * @param string $id The UUID for the `Shift` being retrieved. * * @return ApiResponse Response from the API call * * @throws ApiException Thrown if API call fails */ public function getShift(string $id): ApiResponse { //prepare query string for API call $_queryBuilder = '/v2/labor/shifts/{id}'; //process optional query parameters $_queryBuilder = ApiHelper::appendUrlWithTemplateParameters($_queryBuilder, [ 'id' => $id, ]); //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\\GetShiftResponse'); return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext); } /** * Updates an existing `Shift`. * * When adding a `Break` to a `Shift`, any earlier `Break` instances in the `Shift` have * the `end_at` property set to a valid RFC-3339 datetime string. * * When closing a `Shift`, all `Break` instances in the `Shift` must be complete with `end_at` * set on each `Break`. * * @param string $id The ID of the object being updated. * @param \Square\Models\UpdateShiftRequest $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 updateShift(string $id, \Square\Models\UpdateShiftRequest $body): ApiResponse { //prepare query string for API call $_queryBuilder = '/v2/labor/shifts/{id}'; //process optional query parameters $_queryBuilder = ApiHelper::appendUrlWithTemplateParameters($_queryBuilder, [ 'id' => $id, ]); //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::PUT, $_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::put($_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\\UpdateShiftResponse'); return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext); } /** * Returns a paginated list of `TeamMemberWage` instances for a business. * * @param string|null $teamMemberId Filter the returned wages to only those that are associated * with the * specified team member. * @param int|null $limit The maximum number of `TeamMemberWage` results to return per page. The * number can range between * 1 and 200. The default is 200. * @param string|null $cursor A pointer to the next page of `EmployeeWage` results to fetch. * * @return ApiResponse Response from the API call * * @throws ApiException Thrown if API call fails */ public function listTeamMemberWages( ?string $teamMemberId = null, ?int $limit = null, ?string $cursor = null ): ApiResponse { //prepare query string for API call $_queryBuilder = '/v2/labor/team-member-wages'; //process optional query parameters ApiHelper::appendUrlWithQueryParameters($_queryBuilder, [ 'team_member_id' => $teamMemberId, 'limit' => $limit, 'cursor' => $cursor, ]); //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\\ListTeamMemberWagesResponse'); return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext); } /** * Returns a single `TeamMemberWage` specified by `id `. * * @param string $id The UUID for the `TeamMemberWage` being retrieved. * * @return ApiResponse Response from the API call * * @throws ApiException Thrown if API call fails */ public function getTeamMemberWage(string $id): ApiResponse { //prepare query string for API call $_queryBuilder = '/v2/labor/team-member-wages/{id}'; //process optional query parameters $_queryBuilder = ApiHelper::appendUrlWithTemplateParameters($_queryBuilder, [ 'id' => $id, ]); //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\\GetTeamMemberWageResponse'); return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext); } /** * Returns a list of `WorkweekConfig` instances for a business. * * @param int|null $limit The maximum number of `WorkweekConfigs` results to return per page. * @param string|null $cursor A pointer to the next page of `WorkweekConfig` results to fetch. * * @return ApiResponse Response from the API call * * @throws ApiException Thrown if API call fails */ public function listWorkweekConfigs(?int $limit = null, ?string $cursor = null): ApiResponse { //prepare query string for API call $_queryBuilder = '/v2/labor/workweek-configs'; //process optional query parameters ApiHelper::appendUrlWithQueryParameters($_queryBuilder, [ 'limit' => $limit, 'cursor' => $cursor, ]); //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\\ListWorkweekConfigsResponse'); return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext); } /** * Updates a `WorkweekConfig`. * * @param string $id The UUID for the `WorkweekConfig` object being updated. * @param \Square\Models\UpdateWorkweekConfigRequest $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 updateWorkweekConfig(string $id, \Square\Models\UpdateWorkweekConfigRequest $body): ApiResponse { //prepare query string for API call $_queryBuilder = '/v2/labor/workweek-configs/{id}'; //process optional query parameters $_queryBuilder = ApiHelper::appendUrlWithTemplateParameters($_queryBuilder, [ 'id' => $id, ]); //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::PUT, $_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::put($_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\\UpdateWorkweekConfigResponse'); return ApiResponse::createFromContext($response->body, $deserializedResponse, $_httpContext); } }