<?php

namespace EasySales\Integrari\Core\Auth;

use EasySales\Integrari\Helper\Data;
use Magento\Framework\Webapi\Rest\Request as RequestInterface;
use Magento\Framework\Webapi\Exception as WebapiException;

class CheckWebsiteToken
{
    /**
     * @var RequestInterface
     */
    protected $request;

    /**
     * @var Data
     */
    protected $helperData;

    /**
     * CheckWebsiteToken constructor.
     * @param RequestInterface $request
     * @param Data $helperData
     */
    public function __construct(RequestInterface $request, Data $helperData)
    {
        $this->request = $request;
        $this->helperData = $helperData;
        $this->validateToken();
    }

    protected function validateToken(){
        $websiteToken = $this->helperData->getGeneralConfig('website_token');
        $requestHeader = $this->request->getHeader('es-token', false);

        if (!$requestHeader) {
            throw new WebapiException(
                __("Invalid header received"),
                0,
                WebapiException::HTTP_UNAUTHORIZED
            );
        }
        if ($requestHeader !== $websiteToken) {
            throw new WebapiException(
                __("Website Token mismatch"),
                0,
                WebapiException::HTTP_UNAUTHORIZED
            );
        }
    }
}
