oauthService = $oauthService; $this->intOauthService = $intOauthService; $this->integrationService = $integrationService; $this->helper = $helper; } /** * @inheritDoc */ public function createCsrfValidationException( RequestInterface $request ): ?InvalidRequestException { return null; } /** * @inheritDoc */ public function validateForCsrf(RequestInterface $request): ?bool { return true; } /** * Initiate AccessToken request operation * * @return void */ public function execute() { try { $requestUrl = $this->helper->getRequestUrl($this->getRequest()); $request = $this->helper->prepareRequest($this->getRequest(), $requestUrl); // Request access token in exchange of a pre-authorized token $response = $this->oauthService->getAccessToken($request, $requestUrl, $this->getRequest()->getMethod()); //After sending the access token, update the integration status to active; $consumer = $this->intOauthService->loadConsumerByKey($request['oauth_consumer_key']); $integration = $this->integrationService->findByConsumerId($consumer->getId()); $integration->setStatus(IntegrationModel::STATUS_ACTIVE); $integration->save(); } catch (\Exception $exception) { $response = $this->helper->prepareErrorResponse($exception, $this->getResponse()); } $this->getResponse()->setBody(http_build_query($response)); } }