function requestTokenJson(Application $app) { $data = array_merge($_GET, $_POST); if (!$app['apiApp'] || !$app['apiAppLoadedBySecret']) { return json_encode(array('success' => false)); } // Settings $requestToken = new \models\API2ApplicationRequestTokenModel(); if ($app['apiApp']->getIsCallbackUrl() && isset($data['callback_url']) && trim($data['callback_url'])) { if ($app['apiApp']->isCallbackUrlAllowed(trim($data['callback_url']))) { $requestToken->setCallbackUrl(trim($data['callback_url'])); } else { return json_encode(array('success' => false, 'error_message' => 'That callback URL is not allowed')); } } if ($app['apiApp']->getIsCallbackDisplay() && isset($data['callback_display']) && strtolower(trim($data['callback_display'])) == "true") { $requestToken->setIsCallbackDisplay(true); } if ($app['apiApp']->getIsCallbackJavascript() && isset($data['callback_javascript']) && strtolower(trim($data['callback_javascript'])) == "true") { $requestToken->setIsCallbackJavascript(true); } // $requestToken->setUserId(); TODO $scopeArray = isset($data['scope']) ? explode(",", str_replace(" ", ",", $data['scope'])) : array(); $requestToken->setIsEditor(in_array('permission_editor', $scopeArray) && $app['apiApp']->getIsEditor()); $requestToken->setStateFromUser(isset($data['state']) ? $data['state'] : null); // Check if (!$requestToken->isAnyCallbackSet()) { return json_encode(array('success' => false, 'error_message' => 'You must pass a callback')); } // Generate Token $tokenRepo = new API2ApplicationRequestTokenRepository(); $token = $tokenRepo->create($app['apiApp'], $requestToken); return json_encode(array('success' => true, 'request_token' => $token->getRequestToken())); }
/** * @dataProvider dataForTestGetCallbackUrlWithParams */ function testGetCallbackUrlWithParams($url, $params, $result) { $rt = new API2ApplicationRequestTokenModel(); $rt->setCallbackUrl($url); $this->assertEquals($result, $rt->getCallbackUrlWithParams($params)); }