added endpoint get event type by summit and id

GET /api/v1/summits/{id}/event-types/{event_type_id}

Change-Id: I836a4275aaa6591080b750f5a2197e6c9d7f60a3
This commit is contained in:
Sebastian Marcet 2018-02-20 14:45:51 -03:00
parent d5a5a651fd
commit fecc5bc29f
3 changed files with 35 additions and 0 deletions

View File

@ -417,4 +417,29 @@ final class OAuth2SummitsEventTypesApiController extends OAuth2ProtectedControll
return $this->error500($ex);
}
}
/**
* @param $summit_id
* @param $event_type_id
* @return mixed
*/
public function getEventTypeBySummit($summit_id, $event_type_id){
try {
$summit = SummitFinderStrategyFactory::build($this->summit_repository, $this->resource_server_context)->find($summit_id);
if (is_null($summit)) return $this->error404();
$event_type = $summit->getEventType($event_type_id);
if(is_null($event_type))
return $this->error404();
return $this->ok(SerializerRegistry::getInstance()->getSerializer($event_type)->serialize( Request::input('expand', '')));
} catch (ValidationException $ex1) {
Log::warning($ex1);
return $this->error412(array($ex1->getMessage()));
} catch (EntityNotFoundException $ex2) {
Log::warning($ex2);
return $this->error404(array('message' => $ex2->getMessage()));
} catch (Exception $ex) {
Log::error($ex);
return $this->error500($ex);
}
}
}

View File

@ -298,6 +298,7 @@ Route::group([
Route::get('csv', 'OAuth2SummitsEventTypesApiController@getAllBySummitCSV');
Route::post('', [ 'middleware' => 'auth.user:administrators|summit-front-end-administrators', 'uses' => 'OAuth2SummitsEventTypesApiController@addEventTypeBySummit']);
Route::group(['prefix' => '{event_type_id}'], function () {
Route::get('', 'OAuth2SummitsEventTypesApiController@getEventTypeBySummit');
Route::put('', [ 'middleware' => 'auth.user:administrators|summit-front-end-administrators', 'uses' => 'OAuth2SummitsEventTypesApiController@updateEventTypeBySummit']);
Route::delete('', [ 'middleware' => 'auth.user:administrators|summit-front-end-administrators', 'uses' => 'OAuth2SummitsEventTypesApiController@deleteEventTypeBySummit']);
});

View File

@ -555,6 +555,15 @@ class ApiEndpointsSeeder extends Seeder
sprintf(SummitScopes::ReadAllSummitData, $current_realm)
],
],
[
'name' => 'get-event-type-by-id',
'route' => '/api/v1/summits/{id}/event-types/{event_type_id}',
'http_method' => 'GET',
'scopes' => [
sprintf(SummitScopes::ReadSummitData, $current_realm),
sprintf(SummitScopes::ReadAllSummitData, $current_realm)
],
],
[
'name' => 'add-event-type',
'route' => '/api/v1/summits/{id}/event-types',