
as long as endpoint to manage child collections (associated tracks and allowed groups) POST /api/v1/summits/{id}/track-groups Payload * class_name (PresentationCategoryGroup|PrivatePresentationCategoryGroup) * name (required|string) * description (sometimes|string) * color (sometimes|hex_color) Payload for private groups ( optional if class_name == 'PrivatePresentationCategoryGroup' * submission_begin_date (sometimes|date_format:U) * submission_end_date (sometimes|date_format:U|required_with:submission_begin_date|after:submission_begin_date) * max_submission_allowed_per_user (sometimes|integer|min:1) endpoints to manage tracks PUT /api/v1/summits/{id}/track-groups/{track_group_id}/tracks/{track_id} DELETE /api/v1/summits/{id}/track-groups/{track_group_id}/tracks/{track_id} endpoints to manage allowed groups (only PrivatePresentationCategoryGroup) PUT /api/v1/summits/{id}/track-groups/{track_group_id}/allowed-groups/{group_id} DELETE /api/v1/summits/{id}/track-groups/{track_group_id}/allowed-groups/{group_id} Change-Id: Icf97c9b014609b71d1668faa654a51044d5bb3ec
92 lines
2.8 KiB
PHP
92 lines
2.8 KiB
PHP
<?php namespace App\Services\Model;
|
|
/**
|
|
* Copyright 2018 OpenStack Foundation
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
**/
|
|
use models\exceptions\EntityNotFoundException;
|
|
use models\exceptions\ValidationException;
|
|
use models\summit\PresentationCategoryGroup;
|
|
use models\summit\Summit;
|
|
/**
|
|
* Interface IPresentationCategoryGroupService
|
|
* @package App\Services\Model
|
|
*/
|
|
interface IPresentationCategoryGroupService
|
|
{
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param array $data
|
|
* @return PresentationCategoryGroup
|
|
* @throws EntityNotFoundException
|
|
* @throws ValidationException
|
|
*/
|
|
public function addTrackGroup(Summit $summit, array $data);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param int $track_group_id
|
|
* @param array $data
|
|
* @return PresentationCategoryGroup
|
|
* @throws EntityNotFoundException
|
|
* @throws ValidationException
|
|
*/
|
|
public function updateTrackGroup(Summit $summit, $track_group_id, array $data);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param int $track_group_id
|
|
* @return void
|
|
* @throws EntityNotFoundException
|
|
* @throws ValidationException
|
|
*/
|
|
public function deleteTrackGroup(Summit $summit, $track_group_id);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param int $track_group_id
|
|
* @param int $track_id
|
|
* @return void
|
|
* @throws EntityNotFoundException
|
|
* @throws ValidationException
|
|
*/
|
|
public function associateTrack2TrackGroup(Summit $summit, $track_group_id, $track_id);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param int $track_group_id
|
|
* @param int $track_id
|
|
* @return void
|
|
* @throws EntityNotFoundException
|
|
* @throws ValidationException
|
|
*/
|
|
public function disassociateTrack2TrackGroup(Summit $summit, $track_group_id, $track_id);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param int $track_group_id
|
|
* @param int $group_id
|
|
* @return void
|
|
* @throws EntityNotFoundException
|
|
* @throws ValidationException
|
|
*/
|
|
public function associateAllowedGroup2TrackGroup(Summit $summit, $track_group_id, $group_id);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param int $track_group_id
|
|
* @param int $group_id
|
|
* @return void
|
|
* @throws EntityNotFoundException
|
|
* @throws ValidationException
|
|
*/
|
|
public function disassociateAllowedGroup2TrackGroup(Summit $summit, $track_group_id, $group_id);
|
|
} |