oont-contents/plugins/woocommerce-square/includes/API/Response.php
2025-02-08 15:10:23 +01:00

145 lines
3.1 KiB
PHP

<?php
/**
* WooCommerce Square
*
* This source file is subject to the GNU General Public License v3.0
* that is bundled with this package in the file license.txt.
* It is also available through the world-wide-web at this URL:
* http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 or later
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@woocommerce.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade WooCommerce Square to newer
* versions in the future. If you wish to customize WooCommerce Square for your
* needs please refer to https://docs.woocommerce.com/document/woocommerce-square/
*
* @author WooCommerce
* @copyright Copyright: (c) 2019, Automattic, Inc.
* @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 or later
*/
namespace WooCommerce\Square\API;
use \WooCommerce\Square\Framework\Api\API_Response;
defined( 'ABSPATH' ) || exit;
/**
* Base WooCommerce Square API response object.
*
* @since 2.0.0
*/
class Response implements API_Response {
/** @var mixed raw response data */
protected $raw_response_data;
/**
* Constructs the response object.
*
* @since 2.0.0
*
* @param Object|array $raw_response_data
*/
public function __construct( $raw_response_data ) {
$this->raw_response_data = $raw_response_data;
}
/**
* Gets the response data.
*
* @since 2.0.0
*
* @return Object
*/
public function get_data() {
return $this->raw_response_data ?: null;
}
/**
* Gets errors returned by the Square API.
*
* @since 2.0.0
*
* @return \stdClass[]
*/
public function get_errors() {
if ( is_array( $this->raw_response_data ) && count( $this->raw_response_data ) > 0 ) {
if ( $this->raw_response_data[0] instanceof \Square\Models\Error ) {
return $this->raw_response_data;
}
}
return array();
}
/**
* Determines if the API response contains errors.
*
* @since 2.0.0
*
* @return bool
*/
public function has_errors() {
return ! empty( $this->get_errors() );
}
/**
* Determines if the API response contains a particular error code.
*
* @since 2.1.6
* @param $error \Square\Models\Error
* @return bool
*/
public function has_error_code( $error_code ) {
foreach ( $this->get_errors() as $error ) {
if ( $error_code === $error->getCode() ) {
return true;
}
}
return false;
}
/**
* Gets the response data as a string.
*
* @since 2.0.0
*
* @return string
*/
public function to_string() {
$response_data = $this->get_data();
if ( is_callable( array( $response_data, '__toString' ) ) ) {
return $this->get_data();
} else if ( is_callable( array( $response_data, 'jsonSerialize' ) ) ) {
return wp_json_encode( $response_data, JSON_PRETTY_PRINT );
}
return '';
}
/**
* Gets the response data a string with all sensitive information masked.
*
* @since 2.0.0
*
* @return string
*/
public function to_string_safe() {
return $this->to_string();
}
}