added new public endpoints

GET /api/public/v1/summits/all/current

GET /api/public/v1/summits/all/selection-plans/current/{status} where status
could be submission|selection|voting

Change-Id: I0b91eef19bf4567744354bb263e79795e70d884c
This commit is contained in:
smarcet 2019-05-21 17:47:40 -03:00
parent 6b528c34a4
commit 6a674a6dd8
3 changed files with 38 additions and 3 deletions

View File

@ -187,6 +187,30 @@ final class OAuth2SummitApiController extends OAuth2ProtectedController
}
}
/**
* @return mixed
*/
public function getAllCurrentSummit()
{
$expand = Request::input('expand', '');
try {
$summit = $this->repository->getCurrent();
if (is_null($summit)) return $this->error404();
$serializer_type = $this->serializer_type_selector->getSerializerType();
return $this->ok(SerializerRegistry::getInstance()->getSerializer($summit, $serializer_type)->serialize($expand));
}
catch(HTTP403ForbiddenException $ex1){
Log::warning($ex1);
return $this->error403();
}
catch (Exception $ex) {
Log::error($ex);
return $this->error500($ex);
}
}
/**
* @return mixed
*/

View File

@ -45,6 +45,14 @@ Route::group([
// summits
Route::group(['prefix'=>'summits'], function() {
Route::get('', [ 'middleware' => 'cache:'.Config::get('cache_api_response.get_summit_response_lifetime', 600), 'uses' => 'OAuth2SummitApiController@getSummits']);
Route::group(['prefix' => 'all'], function () {
Route::get('current', 'OAuth2SummitApiController@getAllCurrentSummit');
Route::group(['prefix' => 'selection-plans'], function () {
Route::get('current/{status}', 'OAuth2SummitSelectionPlansApiController@getCurrentSelectionPlanByStatus')->where('status', 'submission|selection|voting');
});
});
Route::group(['prefix' => '{id}'], function () {
Route::get('', [ 'middleware' => 'cache:'.Config::get('cache_api_response.get_summit_response_lifetime', 1200), 'uses' => 'OAuth2SummitApiController@getSummit'])->where('id', 'current|[0-9]+');
// locations

View File

@ -94,9 +94,12 @@ class SummitSerializer extends SilverStripeSerializer
// pages info
$main_page = $summit->getMainPage();
$schedule_page = $summit->getSchedulePage();
$values['page_url'] = sprintf("%s%s", Config::get("server.assets_base_url", 'https://www.openstack.org/'), $main_page);
$values['schedule_page_url'] = sprintf("%s%s", Config::get("server.assets_base_url", 'https://www.openstack.org/'), $schedule_page);
$values['schedule_event_detail_url'] = sprintf("%s%s/%s", Config::get("server.assets_base_url", 'https://www.openstack.org/'), $schedule_page, 'events/:event_id/:event_title');
$values['page_url'] =
empty($main_page)? null :
sprintf("%s%s", Config::get("server.assets_base_url", 'https://www.openstack.org/'), $main_page);
$values['schedule_page_url'] = empty($schedule_page) ? null :
sprintf("%s%s", Config::get("server.assets_base_url", 'https://www.openstack.org/'), $schedule_page);
$values['schedule_event_detail_url'] = empty($schedule_page) ? null : sprintf("%s%s/%s", Config::get("server.assets_base_url", 'https://www.openstack.org/'), $schedule_page, 'events/:event_id/:event_title');
// tickets
if(in_array('ticket_types', $relations)) {