<?php

if ( ! defined( 'ABSPATH' ) ) {
	exit();
}

if ( class_exists( 'WC_REST_Connect_Shipping_Carrier_Types_Controller' ) ) {
	return;
}

/**
 * Retrieve a list of carrier WooCommerce Shipping & Tax supports, along with the
 * fields needed for each carrier in order to do carrier account registration.
 */
class WC_REST_Connect_Shipping_Carrier_Types_Controller extends WC_REST_Connect_Base_Controller {
	/**
	 * Carrier-types end point
	 *
	 * @var string
	 */
	protected $rest_base = 'connect/shipping/carrier-types';

	/**
	 * GET request
	 *
	 * @return WP_REST_Response|WP_Error
	 */
	public function get() {
		$response = $this->api_client->get_carrier_types();
		if ( is_wp_error( $response ) ) {
			$this->logger->log( $response, __CLASS__ );
			return $response;
		}
		return new WP_REST_Response(
			[
				'success'  => true,
				'carriers' => $response->carriers,
			]
		);
	}

}
