public function handle($request, $db) { $oauth_model = new OAuthModel(); $oauth_model->setUpOAuthAndDb($db); switch ($request->url_elements[3]) { case 'request_token': $tokens = $oauth_model->newRequestToken($db, $request->parameters['oauth_callback']); if ($tokens) { // bypass the view handling echo 'login_url=http://lorna.rivendell.local/user/oauth_allow?' . 'request_token=' . $tokens['request_token'] . '&request_token=' . $tokens['request_token'] . '&request_token_secret=' . $tokens['request_token_secret'] . '&oauth_callback_confirmed=true'; } break; case 'access_token': $tokens = $oauth_model->newAccessToken($db, $request->parameters['oauth_token'], $request->parameters['oauth_verifier']); if ($tokens) { echo "oauth_token=" . $tokens['oauth_token'] . '&oauth_token_secret=' . $tokens['oauth_token_secret']; } break; } exit; }
/** * * @param Request $request * @param PDO $ji_db * @return array */ function routeV2($request, $ji_db) { $return_data = false; if (isset($request->parameters['oauth_version']) && $request->url_elements[2] != 'oauth') { $oauth_model = new OAuthModel(); $oauth_model->in_flight = true; $oauth_model->setUpOAuthAndDb($ji_db); $request->user_id = $oauth_model->user_id; } // Route: call the handle() method of the class with the first URL element if (isset($request->url_elements[2])) { $class = ucfirst($request->url_elements[2]) . 'Controller'; if (class_exists($class)) { $handler = new $class(); $return_data = $handler->handle($request, $ji_db); // the DB is set by the database config } else { throw new Exception('Unknown controller ' . $request->url_elements[2], 400); } } else { throw new Exception('Request not understood', 404); } return $return_data; }
} } if (isset($request->url_elements[1])) { // check API version switch ($request->url_elements[1]) { case 'v2': // default routing break; default: throw new Exception('API version must be specified', 404); break; } if (isset($parameters['oauth_version']) && $request->url_elements[2] != 'oauth') { $oauth_model = new OAuthModel(); $oauth_model->in_flight = true; $oauth_model->setUpOAuthAndDb($ji_db); $request->user_id = $oauth_model->user_id; } // Route: call the handle() method of the class with the first URL element if (isset($request->url_elements[2])) { $class = ucfirst($request->url_elements[2]) . 'Controller'; if (class_exists($class)) { $handler = new $class(); $return_data = $handler->handle($request, $ji_db); // the DB is set by the database config } else { throw new Exception('Unknown controller ' . $request->url_elements[2], 400); } } else { throw new Exception('Request not understood', 404); }