query_vars['adscaleGetKeys'] = sanitize_key( wp_unslash( $_GET['adscaleGetKeys'] ) ); } // make sure endpoint request if ( ! isset( $wp->query_vars['adscaleGetKeys'] ) ) { return; } try { ob_start(); // Error handler self::setErrorHandler(); Helper::nocache_headers(); // Check Request (Guards) self::checkRequest(); ob_end_clean(); // Handle Request self::handleRequest(); // Default error Helper::send_response_formatted_error( self::makeErrorBody() ); } catch ( ServiceApiException $ex ) { Helper::send_response_formatted_error( self::makeErrorBody( $ex->getApiErrorCode(), $ex->getMessage(), $ex->getApiErrorDetails() ) ); } catch ( \Throwable $t ) { // Executed only in PHP 7, will not match in PHP 5 $message = "{$t->getMessage()} Trace: {$t->getTraceAsString()}"; Helper::send_response_formatted_error( self::makeErrorBody( $t->getCode(), $message ) ); } catch ( \Exception $ex ) { $message = "{$ex->getMessage()} Trace: {$ex->getTraceAsString()}"; Helper::send_response_formatted_error( self::makeErrorBody( $ex->getCode(), $message ) ); } } /** * Request handler * * @throws ServiceApiException */ public static function handleRequest() { $keys_data = ShopKeys::get_keys_data(); $key_id = $keys_data['key_id']; $consumer_key = $keys_data['consumer_key']; $consumer_secret = $keys_data['consumer_secret']; $shop_host = Helper::get_shop_domain(); $platform = Helper::getConfigSetting( 'shop/platform', 'woo' ); $mode = Helper::get_mode(); if ( ! $consumer_key ) { throw new ServiceApiException( 'Unknown error', 'S000', 'consumer_key is empty' ); } if ( ! $consumer_secret ) { throw new ServiceApiException( 'Unknown error', 'S000', 'consumer_secret is empty' ); } if ( ! $shop_host ) { throw new ServiceApiException( 'Unknown error', 'S000', 'shop_host is empty' ); } if ( ! $platform ) { throw new ServiceApiException( 'Unknown error', 'S000', 'platform is empty' ); } Helper::send_response_formatted_success( [ 'shop_host' => $shop_host, 'platform' => $platform, 'consumer_key' => $consumer_key, 'consumer_secret' => $consumer_secret, 'version' => ADSCALE_INTERNAL_MODULE_VERSION, 'mode' => $mode, ] ); } }