<?php
/** API Multisite Post Slider Controller
 *
 * @package Bw-Winners-Network
 * @subpackage API
 */

namespace BwWinnersNetwork\API;

if ( ! class_exists( __NAMESPACE__ . '\Multisite_Post_Slider_Controller' ) ) {
	/**
	 * Controller for BwWinnersNetwork Multisite Post Slider block routes and endpoints
	 */
	class Multisite_Post_Slider_Controller {

		/**
		 * REST API namespace
		 *
		 * @var string
		 */
		public $namespace;

		/**
		 * Controller's resource name
		 *
		 * @var string
		 */
		public $resource_name;

		/**
		 * Controller's resource route
		 *
		 * @var string
		 */
		public $resource_route;

		/**
		 * Initializes properties and adds hooks.
		 */
		public function __construct() {
			$this->namespace = \BwWinnersNetwork\API_NAMESPACE;

			$this->resource_name = 'multisite-post-slider';

			$this->resource_route = '/' . $this->resource_name;

			add_action( 'rest_api_init', [ $this, 'register_routes' ] );
		}


		/**
		 * Registers routes for the Multisite Post Slider block
		 */
		public function register_routes() {

			register_rest_route(
				$this->namespace,
				$this->resource_route . '/settings',
				[
					'methods'             => 'GET',
					'callback'            => [ $this, 'block_settings' ],
					'permission_callback' => '__return_true'
				]
			);
		}

		public function block_settings( $request ) {

			$response = [
				'sites' => []
			];


			$sites = get_sites();

			foreach ( $sites as $site ) {
				$blog = get_blog_details( [ 'blog_id' => $site->blog_id ] );
				$response['sites'][] = [
					'name' => $blog->blogname,
					'blog_id' => $blog->blog_id,
					'rest_url' => get_rest_url( $blog->blog_id )
				];
			}

			return rest_ensure_response( $response );

		}
	}
}
