* : Single-use code. * * --state= * : State from the redirect. * * @param array $args Positional args. * @param array $assoc_args Named args. */ public function complete( $args, $assoc_args ) { $result = Connect::complete( $assoc_args['code'], $assoc_args['state'] ); if ( is_wp_error( $result ) ) { WP_CLI::error( $result->get_error_message() ); } WP_CLI::success( 'Connected.' ); } /** * Shows whether the site is connected. */ public function status() { WP_CLI::line( Keys::is_connected() ? 'connected' : 'not connected' ); } /** * Sends a signed request to check the connection. */ public function test() { $result = Api::signed( 'GET', '/v1/plugin/site' ); if ( is_wp_error( $result ) ) { WP_CLI::error( $result->get_error_message() ); } WP_CLI::success( 'Connection works: ' . $result['domain'] ); } /** * Runs a full reconciliation now and processes the queued jobs. */ public function sync() { $result = Sync::reconcile(); WP_CLI::line( sprintf( 'Service needs %d item(s); removed %d.', $result['needed'], $result['removed'] ) ); WP_CLI::runcommand( 'action-scheduler run --group=askmypages --batch-size=50 --batches=20', array( 'return' => false ) ); delete_transient( 'askmypages_status' ); WP_CLI::success( 'Sync finished.' ); } /** * Shows item counts held by the service. * * @subcommand sync-status */ public function sync_status() { delete_transient( 'askmypages_status' ); $status = Sync::status(); if ( ! is_array( $status ) ) { WP_CLI::error( 'Could not reach the service.' ); } WP_CLI::line( wp_json_encode( $status ) ); } /** * Searches the site through AskMyPages. * * ## OPTIONS * * * : Search terms. * * @param array $args Positional args. */ public function search( $args ) { $result = Search::fetch( $args[0], 1, 10 ); if ( is_wp_error( $result ) ) { WP_CLI::error( $result->get_error_message() ); } WP_CLI::line( wp_json_encode( $result ) ); } /** * Disconnects the site. */ public function disconnect() { $result = Connect::disconnect(); if ( is_wp_error( $result ) ) { WP_CLI::warning( 'Keys deleted locally; the service said: ' . $result->get_error_message() ); return; } WP_CLI::success( 'Disconnected.' ); } }