Bug on endpoint /api/v1/summits/{id}/events/published/empty-spots

there was on start/end condition that was preventing to get
the desired subset

Change-Id: I6ce1d4ea760d37b115708d36b0c07a786d210871
This commit is contained in:
Sebastian Marcet 2018-08-29 21:18:22 -03:00
parent 9a313a19e1
commit 2414f6a3e9
3 changed files with 10 additions and 9 deletions

View File

@ -86,7 +86,7 @@ class FilterElement extends AbstractFilterElement
public static function makeLower($field, $value)
{
return new self($field, $value, '>');
return new self($field, $value, '<');
}
public static function makeLowerOrEqual($field, $value)

View File

@ -1353,8 +1353,9 @@ final class SummitService extends AbstractService implements ISummitService
$events_filter->addFilterCondition(FilterParser::buildFilter('published', '==', '1'));
$events_filter->addFilterCondition(FilterParser::buildFilter('summit_id', '==', $summit->getId()));
$events_filter->addFilterCondition(FilterParser::buildFilter('location_id', '==', intval($location_id)));
$events_filter->addFilterCondition(FilterParser::buildFilter('start_date', '>=', $interval[0]->getTimestamp()));
$events_filter->addFilterCondition(FilterParser::buildFilter('end_date', '<=', $interval[1]->getTimestamp()));
$events_filter->addFilterCondition(FilterParser::buildFilter('start_date', '<', $interval[1]->getTimestamp()));
$events_filter->addFilterCondition(FilterParser::buildFilter('end_date', '>', $interval[0]->getTimestamp()));
$paging_response = $this->event_repository->getAllByPage
(

View File

@ -806,22 +806,22 @@ final class OAuth2SummitEventsApiTest extends ProtectedApiTest
public function testGetScheduleEmptySpotsBySummit()
{
$summit_repository = EntityManager::getRepository(\models\summit\Summit::class);
$summit = $summit_repository->getById(23);
$summit = $summit_repository->getById(25);
$summit_time_zone = $summit->getTimeZone();
$start_datetime = new DateTime( "2017-11-04 07:00:00", $summit_time_zone);
$end_datetime = new DateTime("2017-11-05 18:00:00", $summit_time_zone);
$start_datetime = new DateTime( "2018-11-10 07:00:00", $summit_time_zone);
$end_datetime = new DateTime("2018-11-10 22:00:00", $summit_time_zone);
$start_datetime_unix = $start_datetime->getTimestamp();
$end_datetime_unix = $end_datetime->getTimestamp();
$params = [
'id' => 23,
'id' => 25,
'filter' =>
[
'location_id==318,location_id==320',
'location_id==391',
'start_date>='.$start_datetime_unix,
'end_date<='.$end_datetime_unix,
'gap==10',
'gap>=30',
],
];