47 lines
948 B
PHP
47 lines
948 B
PHP
<?php
|
|
|
|
class WPML_TP_API_Exception extends Exception {
|
|
|
|
public function __construct( $message, WPML_TP_API_Request $request = null, $response = null ) {
|
|
if ( $request ) {
|
|
$message .= ' ' . $this->get_exception_message(
|
|
$request->get_url(),
|
|
$request->get_method(),
|
|
$request->get_params(),
|
|
$response
|
|
);
|
|
}
|
|
|
|
parent::__construct( $message );
|
|
}
|
|
|
|
private function get_exception_message( $url, $method, $params, $response ) {
|
|
return 'Details: |'
|
|
. ' url: '
|
|
. '`'
|
|
. $url
|
|
. '`'
|
|
. ' method: '
|
|
. '`'
|
|
. $method
|
|
. '`'
|
|
. ' param: '
|
|
. '`'
|
|
. json_encode( $this->filter_params( $params ) )
|
|
. '`'
|
|
. ' response: '
|
|
. '`'
|
|
. json_encode( $response )
|
|
. '`';
|
|
}
|
|
|
|
/**
|
|
* @param array $params
|
|
*
|
|
* @return array mixed
|
|
*/
|
|
private function filter_params( $params ) {
|
|
return wpml_collect( $params )->forget( 'accesskey' )->toArray();
|
|
}
|
|
}
|