Fix on seed default track tag groups response

Change-Id: I8a8564406deeccfbf3047aaa1227dcec66640677
This commit is contained in:
Sebastian Marcet 2018-09-18 13:31:06 -03:00
parent fa96c4c1a0
commit 9a5942a8fe
3 changed files with 19 additions and 6 deletions

View File

@ -370,8 +370,18 @@ final class OAuth2SummitTrackTagGroupsApiController extends OAuth2ProtectedContr
try{
$summit = SummitFinderStrategyFactory::build($this->summit_repository, $this->resource_server_context)->find($summit_id);
if (is_null($summit)) return $this->error404();
$this->track_tag_group_service->seedDefaultTrackTagGroups($summit);
return $this->updated();
$track_tag_groups = $this->track_tag_group_service->seedDefaultTrackTagGroups($summit);
$response = new PagingResponse
(
count($track_tag_groups),
count($track_tag_groups),
1,
1,
$track_tag_groups
);
return $this->created($response->toArray());
}
catch (ValidationException $ex1) {
Log::warning($ex1);

View File

@ -53,7 +53,7 @@ interface ISummitTrackTagGroupService
/**
* @param Summit $summit
* @return void
* @return TrackTagGroup[]
* @throws EntityNotFoundException
* @throws ValidationException
*/

View File

@ -208,28 +208,31 @@ implements ISummitTrackTagGroupService
/**
* @param Summit $summit
* @return TrackTagGroup[]
* @throws \Exception
*/
public function seedDefaultTrackTagGroups(Summit $summit)
{
$this->tx_service->transaction(function() use($summit) {
return $this->tx_service->transaction(function() use($summit) {
$added_track_tag_groups = [];
$default_groups = $this->default_track_tag_group_repository->getAll();
foreach($default_groups as $default_track_tag_group){
// if already exists ...
if($summit->getTrackTagGroupByLabel($default_track_tag_group->getLabel()))
continue;
$new_group = new TrackTagGroup();
$new_group = new TrackTagGroup();
$new_group->setName($default_track_tag_group->getName());
$new_group->setLabel($default_track_tag_group->getLabel());
$new_group->setOrder($default_track_tag_group->getOrder());
$new_group->setIsMandatory($default_track_tag_group->isMandatory());
$summit->addTrackTagGroup($new_group);
$added_track_tag_groups[] = $new_group;
foreach ($default_track_tag_group->getAllowedTags() as $default_allowed_tag){
$new_group->addTag($default_allowed_tag->getTag());
}
}
return $added_track_tag_groups;
});
}