Current File : /home/resuelf/www/wp-content/plugins/aawp/includes/libraries/amazon-paapi5/Core/Configuration.php
<?php
/**
 * Amazon Product Advertising API v5
 *
 * The use of this library is strictly prohibited without explicit permission.
 *
 * Copyright 2020 flowdee. All Rights Reserved.
 *
 * Twitter: https://twitter.com/flowdee
 * GitHub: https://github.com/flowdee
 */
namespace Flowdee\AmazonPAAPI5WP;

/**
 * Class Configuration
 *
 * @category Class
 * @package Flowdee\AmazonPAAPI5
 * @author flowdee
 */
class Configuration {

    /**
     * Access key
     *
     * @var string
     */
    protected $accessKey;

    /**
     * Secret key
     *
     * @var string
     */
    protected $secretKey;

    /**
     * Partner tag
     *
     * @var string
     */
    protected $partnerTag;

    /**
     * The host
     *
     * @var string
     */
    protected $host;

    /**
     * The region
     *
     * @var string
     */
    protected $region;

    /**
     * The store
     *
     * @var string
     */
    protected $store;

    /**
     * Configuration constructor.
     *
     * @param $accessKey
     * @param $secretKey
     * @param $partnerTag
     * @param $store
     */
    public function __construct( $accessKey, $secretKey, $partnerTag, $store ) {

        // Access key.
        $this->accessKey = $accessKey;

        // Secret key.
        $this->secretKey = $secretKey;

        // Partner tag.
        $this->partnerTag = $partnerTag;

        /*
         * Source: https://webservices.amazon.com/paapi5/documentation/common-request-parameters.html#host-and-region
         */
        switch( $store ) {
            // Australia
            case ( 'com.au' ):
                $host = 'webservices.amazon.com.au';
                $region = 'us-west-2';
                break;
	        // Belgium
	        case ( 'com.be' ):
		        $host = 'webservices.amazon.com.be';
		        $region = 'eu-west-1';
		        break;
            // Brazil
            case ( 'com.br' ):
                $host = 'webservices.amazon.com.br';
                $region = 'us-east-1';
                break;
            // Canada
            case ( 'ca' ):
                $host = 'webservices.amazon.ca';
                $region = 'us-east-1';
                break;
            // Egypt
            case ( 'eg' ):
                $host = 'webservices.amazon.eg';
                $region = 'eu-west-1';
                break;
            // France
            case ( 'fr' ):
                $host = 'webservices.amazon.fr';
                $region = 'eu-west-1';
                break;
            // Germany
            case ( 'de' ):
                $host = 'webservices.amazon.de';
                $region = 'eu-west-1';
                break;
            // India
            case ( 'in' ):
                $host = 'webservices.amazon.in';
                $region = 'eu-west-1';
                break;
            // Italy
            case ( 'it' ):
                $host = 'webservices.amazon.it';
                $region = 'eu-west-1';
                break;
            // Japan
            case ( 'co.jp' ):
                $host = 'webservices.amazon.co.jp';
                $region = 'us-west-2';
                break;
            // Mexico
            case ( 'com.mx' ):
                $host = 'webservices.amazon.com.mx';
                $region = 'us-east-1';
                break;
            // Netherlands
            case ( 'nl' ):
                $host = 'webservices.amazon.nl';
                $region = 'eu-west-1';
                break;
            // Poland
            case ( 'pl' ):
                $host = 'webservices.amazon.pl';
                $region = 'eu-west-1';
                break;
            // Singapore
            case ( 'sg' ):
                $host = 'webservices.amazon.sg';
                $region = 'us-west-2';
                break;
            // Saudi Arabia
            case ( 'sa' ):
                $host = 'webservices.amazon.sa';
                $region = 'eu-west-1';
                break;
            // Spain
            case ( 'es' ):
                $host = 'webservices.amazon.es';
                $region = 'eu-west-1';
                break;
            // Sweden
            case ( 'se' ):
                $host = 'webservices.amazon.se';
                $region = 'eu-west-1';
                break;
            // Turkey
            case ( 'com.tr' ):
                $host = 'webservices.amazon.com.tr';
                $region = 'eu-west-1';
                break;
            // United Arab Emirates
            case ( 'ae' ):
                $host = 'webservices.amazon.ae';
                $region = 'eu-west-1';
                break;
            // United Kingdom
            case ( 'co.uk' ):
                $host = 'webservices.amazon.co.uk';
                $region = 'eu-west-1';
                break;
            // United States (Default)
            default:
                $host = 'webservices.amazon.com';
                $region = 'us-east-1';
                break;
        }

        // Set host.
        $this->host = $host;

        // Set region.
        $this->region = $region;
    }

    /**
     * Get access key.
     *
     * @return string
     */
    public function getAccessKey() {
        return $this->accessKey;
    }

    /**
     * Get secret key.
     *
     * @return string
     */
    public function getSecretKey() {
        return $this->secretKey;
    }

    /**
     * Get partner tag.
     *
     * @return string
     */
    public function getPartnerTag() {
        return $this->partnerTag;
    }

    /**
     * Get host.
     *
     * @return string
     */
    public function getHost() {
        return $this->host;
    }

    /**
     * Get region.
     *
     * @return string
     */
    public function getRegion() {
        return $this->region;
    }
}