Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/modules/ipol.sdek/classes/lib/SDEK/Controller/
Upload File :
Current File : /var/www/homesaver/www/bitrix/modules/ipol.sdek/classes/lib/SDEK/Controller/RequestToken.php

<?php


namespace Ipolh\SDEK\SDEK\Controller;


use Ipolh\SDEK\Api\BadRequestException;
use Ipolh\SDEK\Api\BadResponseException;
use Ipolh\SDEK\Api\Entity\Request\Oauth;
use Ipolh\SDEK\SDEK\AppLevelException;
use Ipolh\SDEK\SDEK\Entity\TokenResult;

/**
 * Class RequestController
 * @package Ipolh\SDEK\SDEK\Controller
 */
class RequestToken extends RequestController
{
    /**
     * RequestToken constructor.
     * @param string $clientId
     * @param string $clientSecret
     * @throws BadRequestException
     */
	public function __construct($clientId, $clientSecret)
	{
		$data = new Oauth();
		$data->setClientId($clientId)->setClientSecret($clientSecret);

		$this->setRequestObj($data);
	}
    
    /**
     * @return TokenResult
     */
	public function execute()
    {
        $result = new TokenResult();

        try {
            $request = $this->getSdk()->oauth($this->getRequestObj());
            if ($request->getResponse()->getAccessToken()) {
                $result->setSuccess(true)->setResponse($request->getResponse());
            }

            if ($result->isSuccess()) {
                $result->parseFields();
            }

        } catch (BadRequestException $e) {
            $result->setError($e)->setSuccess(false);
        } catch (BadResponseException $e) {
            $result->setError($e)->setSuccess(false);
        } catch (AppLevelException $e) {
            $result->setError($e)->setSuccess(false);
        } finally {
            return $result;
        }
    }
}