added endpoint to retrieve track groups metadata
GET /api/v1/summits/{id}/track-groups/metadata Change-Id: Ib6c5bdf3fd1cfb2adf9b12539399da7dbafc6d9a
This commit is contained in:
parent
5c5e432dfa
commit
3d4a95a002
|
@ -563,4 +563,18 @@ final class OAuth2PresentationCategoryGroupController
|
|||
return $this->error500($ex);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $summit_id
|
||||
* @return mixed
|
||||
*/
|
||||
public function getMetadata($summit_id){
|
||||
$summit = SummitFinderStrategyFactory::build($this->summit_repository, $this->resource_server_context)->find($summit_id);
|
||||
if (is_null($summit)) return $this->error404();
|
||||
|
||||
return $this->ok
|
||||
(
|
||||
$this->repository->getMetadata($summit)
|
||||
);
|
||||
}
|
||||
}
|
|
@ -507,6 +507,7 @@ Route::group([
|
|||
Route::group(['prefix' => 'track-groups'], function () {
|
||||
Route::get('', 'OAuth2PresentationCategoryGroupController@getAllBySummit');
|
||||
Route::get('csv', 'OAuth2PresentationCategoryGroupController@getAllBySummitCSV');
|
||||
Route::get('metadata', [ 'middleware' => 'auth.user:administrators|summit-front-end-administrators', 'uses' => 'OAuth2PresentationCategoryGroupController@getMetadata']);
|
||||
Route::post('', [ 'middleware' => 'auth.user:administrators|summit-front-end-administrators', 'uses' => 'OAuth2PresentationCategoryGroupController@addTrackGroupBySummit']);
|
||||
|
||||
Route::group(['prefix' => '{track_group_id}'], function () {
|
||||
|
|
|
@ -198,4 +198,22 @@ class PresentationCategoryGroup extends SilverstripeBaseModel
|
|||
public function getClassName(){
|
||||
return self::ClassName;
|
||||
}
|
||||
|
||||
public static $metadata = [
|
||||
'class_name' => self::ClassName,
|
||||
'id' => 'integer',
|
||||
'summit_id' => 'integer',
|
||||
'name' => 'string',
|
||||
'color' => 'string',
|
||||
'description' => 'string',
|
||||
'categories' => 'array'
|
||||
];
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public static function getMetadata(){
|
||||
return self::$metadata;
|
||||
}
|
||||
|
||||
}
|
|
@ -225,4 +225,20 @@ class PrivatePresentationCategoryGroup extends PresentationCategoryGroup
|
|||
return $res;
|
||||
}
|
||||
|
||||
|
||||
public static $metadata = [
|
||||
'class_name' => self::ClassName,
|
||||
'submission_begin_date' => 'datetime',
|
||||
'submission_end_date' => 'datetime',
|
||||
'max_submission_allowed_per_user' => 'integer',
|
||||
'allowed_groups' => 'array'
|
||||
];
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public static function getMetadata(){
|
||||
return array_merge(PresentationCategoryGroup::getMetadata(), self::$metadata);
|
||||
}
|
||||
|
||||
}
|
|
@ -11,11 +11,16 @@
|
|||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
**/
|
||||
use models\summit\Summit;
|
||||
/**
|
||||
* Interface IPresentationCategoryGroupRepository
|
||||
* @package App\Models\Foundation\Summit\Repositories
|
||||
*/
|
||||
interface IPresentationCategoryGroupRepository extends ISummitOwnedEntityRepository
|
||||
{
|
||||
|
||||
/**
|
||||
* @param Summit $summit
|
||||
* @return array
|
||||
*/
|
||||
public function getMetadata(Summit $summit);
|
||||
}
|
|
@ -145,4 +145,16 @@ final class DoctrinePresentationCategoryGroupRepository
|
|||
$data
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Summit $summit
|
||||
* @return array
|
||||
*/
|
||||
public function getMetadata(Summit $summit)
|
||||
{
|
||||
return [
|
||||
PresentationCategoryGroup::getMetadata(),
|
||||
PrivatePresentationCategoryGroup::getMetadata(),
|
||||
];
|
||||
}
|
||||
}
|
|
@ -1229,6 +1229,15 @@ class ApiEndpointsSeeder extends Seeder
|
|||
sprintf(SummitScopes::ReadAllSummitData, $current_realm)
|
||||
],
|
||||
],
|
||||
[
|
||||
'name' => 'get-track-groups-metadata',
|
||||
'route' => '/api/v1/summits/{id}/track-groups/metadata',
|
||||
'http_method' => 'GET',
|
||||
'scopes' => [
|
||||
sprintf(SummitScopes::ReadSummitData, $current_realm),
|
||||
sprintf(SummitScopes::ReadAllSummitData, $current_realm)
|
||||
],
|
||||
],
|
||||
[
|
||||
'name' => 'get-track-group',
|
||||
'route' => '/api/v1/summits/{id}/track-groups/{track_group_id}',
|
||||
|
|
|
@ -16,6 +16,7 @@ final class OAuth2TrackGroupsApiTest extends ProtectedApiTest
|
|||
{
|
||||
/**
|
||||
* @param int $summit_id
|
||||
* @return mixed
|
||||
*/
|
||||
public function testGetTrackGroups($summit_id = 23)
|
||||
{
|
||||
|
@ -43,6 +44,36 @@ final class OAuth2TrackGroupsApiTest extends ProtectedApiTest
|
|||
return $track_groups;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $summit_id
|
||||
* @return mixed
|
||||
*/
|
||||
public function testGetTrackGroupsMetadata($summit_id = 23)
|
||||
{
|
||||
|
||||
$params = [
|
||||
'id' => $summit_id,
|
||||
];
|
||||
|
||||
$headers = ["HTTP_Authorization" => " Bearer " . $this->access_token];
|
||||
$response = $this->action(
|
||||
"GET",
|
||||
"OAuth2PresentationCategoryGroupController@getMetadata",
|
||||
$params,
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
$headers
|
||||
);
|
||||
|
||||
$content = $response->getContent();
|
||||
$metadata = json_decode($content);
|
||||
$this->assertTrue(!is_null($metadata));
|
||||
$this->assertResponseStatus(200);
|
||||
return $metadata;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param int $summit_id
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue