Added endpoint to delete track group

DELETE  GET /api/v1/summits/{id}/track-groups/{track_group_id}

Change-Id: Icd6410d0a809939048141066fa269a0e55382ca2
This commit is contained in:
Sebastian Marcet 2018-03-28 16:01:33 -03:00
parent 1253e7c1fe
commit cc63b26987
6 changed files with 62 additions and 12 deletions

View File

@ -27,17 +27,10 @@ final class SummitVenueRoomValidationRulesFactory
$rules = SummitAbstractLocationValidationRulesFactory::build($data, $update);
if($update) {
return array_merge([
'capacity' => 'sometimes|integer:min:0',
'override_blackouts' => 'sometimes|boolean',
'floor_id' => 'sometimes|integer',
], $rules);
}
return array_merge([
'capacity' => 'sometimes|integer:min:0',
'override_blackouts' => 'sometimes|boolean',
], $rules);
}
}

View File

@ -365,8 +365,34 @@ final class OAuth2PresentationCategoryGroupController
}
}
/**
* @param $summit_id
* @param $track_group_id
* @return mixed
*/
public function deleteTrackGroupBySummit($summit_id, $track_group_id){
try {
$summit = SummitFinderStrategyFactory::build($this->summit_repository, $this->resource_server_context)->find($summit_id);
if (is_null($summit)) return $this->error404();
$this->presentation_category_group_service->deleteTrackGroup($summit, $track_group_id);
return $this->deleted();
}
catch (ValidationException $ex1) {
Log::warning($ex1);
return $this->error412([$ex1->getMessage()]);
}
catch(EntityNotFoundException $ex2)
{
Log::warning($ex2);
return $this->error404(['message'=> $ex2->getMessage()]);
}
catch (Exception $ex) {
Log::error($ex);
return $this->error500($ex);
}
}
/**

View File

@ -47,8 +47,8 @@ class PrivatePresentationCategoryGroup extends PresentationCategoryGroup
/**
* @ORM\ManyToMany(targetEntity="models\main\Group")
* @ORM\JoinTable(name="PrivatePresentationCategoryGroup_AllowedGroups",
* joinColumns={@ORM\JoinColumn(name="PrivatePresentationCategoryGroupID", referencedColumnName="ID")},
* inverseJoinColumns={@ORM\JoinColumn(name="GroupID", referencedColumnName="ID")}
* joinColumns={@ORM\JoinColumn(name="PrivatePresentationCategoryGroupID", referencedColumnName="ID", onDelete="CASCADE")},
* inverseJoinColumns={@ORM\JoinColumn(name="GroupID", referencedColumnName="ID", onDelete="CASCADE")}
* )
* @var Group[]
*/

View File

@ -15,6 +15,8 @@ use models\summit\SummitAirport;
use models\summit\SummitExternalLocation;
use models\summit\SummitHotel;
use models\summit\SummitVenue;
use models\summit\SummitVenueRoom;
/**
* Class SummitLocationConstants
* @package App\Models\Foundation\Summit\Locations
@ -26,5 +28,6 @@ final class SummitLocationConstants
SummitAirport::ClassName,
SummitHotel::ClassName,
SummitExternalLocation::ClassName,
SummitVenueRoom::ClassName
];
}

View File

@ -854,7 +854,6 @@ final class SummitLocationService
}
}
// request to update order
if (isset($data['order']) && intval($data['order']) != $room->getOrder()) {

View File

@ -256,4 +256,33 @@ final class OAuth2TrackGroupsApiTest extends ProtectedApiTest
$this->assertResponseStatus(201);
}
/**
* @param int $summit_id
* @param int $track_group_id
*/
public function testDeleteExistentTrackGroup($summit_id = 24, $track_group_id = 85){
$params = [
'id' => $summit_id,
'track_group_id' => $track_group_id
];
$headers = [
"HTTP_Authorization" => " Bearer " . $this->access_token,
"CONTENT_TYPE" => "application/json"
];
$response = $this->action(
"DELETE",
"OAuth2PresentationCategoryGroupController@deleteTrackGroupBySummit",
$params,
[],
[],
[],
$headers
);
$content = $response->getContent();
$this->assertResponseStatus(204);
}
}