Route::resource('reports', 'Controllers\\API\\Reports'); Route::get('reports/{id}/run', array('uses' => 'Controllers\\API\\Reports@run')); Route::get('reports/{id}/graph', array('uses' => 'Controllers\\API\\Reports@graph')); // Adds routes for statements. Route::get('statements/where', ['uses' => 'Controllers\\API\\Statements@where']); Route::get('statements/aggregate', ['uses' => 'Controllers\\API\\Statements@aggregate']); Route::get('statements/aggregate/time', ['uses' => 'Controllers\\API\\Statements@aggregateTime']); Route::get('statements/aggregate/object', ['uses' => 'Controllers\\API\\Statements@aggregateObject']); }); /* |---------------------------------------------------------------------- | oAuth handling |---------------------------------------------------------------------- */ Route::post('oauth/access_token', function () { $bridgedRequest = OAuth2\HttpFoundationBridge\Request::createFromRequest(Request::instance()); $bridgedResponse = new OAuth2\HttpFoundationBridge\Response(); $bridgedResponse = App::make('oauth2')->handleTokenRequest($bridgedRequest, $bridgedResponse); return $bridgedResponse; }); //Add OPTIONS routes for all defined xAPI and api routes foreach (Route::getRoutes()->getIterator() as $route) { if ($route->getPrefix() === 'data/xAPI' || $route->getPrefix() === 'api/v1') { Route::options($route->getUri(), 'Controllers\\API\\Base@CORSOptions'); } } /* |------------------------------------------------------------------ | For routes that don't exist |------------------------------------------------------------------ */