Fixed summit validation dates rules
Change-Id: I34148704d50a6d58b94f5e63a78023ef8ed37c60
This commit is contained in:
parent
6f70e897f0
commit
5c5e432dfa
@ -23,17 +23,17 @@ final class SummitValidationRulesFactory
|
||||
return [
|
||||
'name' => 'sometimes|string|max:50',
|
||||
'start_date' => 'sometimes|date_format:U',
|
||||
'end_date' => 'required_with:start_date|date_format:U|after:start_date',
|
||||
'submission_begin_date' => 'sometimes|date_format:U',
|
||||
'submission_end_date' => 'required_with:submission_begin_date|date_format:U|after:submission_begin_date',
|
||||
'voting_begin_date' => 'sometimes|date_format:U',
|
||||
'voting_end_date' => 'required_with:voting_begin_date|date_format:U|after:voting_begin_date',
|
||||
'selection_begin_date' => 'sometimes|date_format:U',
|
||||
'selection_end_date' => 'required_with:selection_begin_date|date_format:U|after:selection_begin_date',
|
||||
'registration_begin_date' => 'sometimes|date_format:U',
|
||||
'registration_end_date' => 'required_with:registration_begin_date|date_format:U|after:registration_begin_date',
|
||||
'start_showing_venues_date' => 'sometimes|date_format:U|before:start_date',
|
||||
'schedule_start_date' => 'sometimes|date_format:U',
|
||||
'end_date' => 'required_with:start_date|date_format:U|after_or_equal:start_date',
|
||||
'submission_begin_date' => 'nullable|date_format:U',
|
||||
'submission_end_date' => 'nullable|required_with:submission_begin_date|date_format:U|after_or_equal:submission_begin_date',
|
||||
'voting_begin_date' => 'nullable|date_format:U',
|
||||
'voting_end_date' => 'nullable|required_with:voting_begin_date|date_format:U|after_or_equal:voting_begin_date',
|
||||
'selection_begin_date' => 'nullable|date_format:U',
|
||||
'selection_end_date' => 'nullable|required_with:selection_begin_date|date_format:U|after_or_equal:selection_begin_date',
|
||||
'registration_begin_date' => 'nullable|date_format:U',
|
||||
'registration_end_date' => 'nullable|required_with:registration_begin_date|date_format:U|after_or_equal:registration_begin_date',
|
||||
'start_showing_venues_date' => 'nullable|date_format:U|before_or_equal:start_date',
|
||||
'schedule_start_date' => 'nullable|date_format:U|after_or_equal:start_date|before_or_equal:end_date',
|
||||
'active' => 'sometimes|boolean',
|
||||
'dates_label' => 'sometimes|string',
|
||||
'time_zone_id' => 'sometimes|timezone',
|
||||
@ -42,31 +42,31 @@ final class SummitValidationRulesFactory
|
||||
'calendar_sync_name' => 'sometimes|string|max:255',
|
||||
'calendar_sync_desc' => 'sometimes|string',
|
||||
'link' => 'sometimes|url',
|
||||
'registration_link' => 'sometimes|url',
|
||||
'max_submission_allowed_per_user' => 'sometimes|integer|min:1',
|
||||
'secondary_registration_link' => 'sometimes|url',
|
||||
'secondary_registration_label' => 'sometimes|string',
|
||||
'registration_link' => 'sometimes|url',
|
||||
'max_submission_allowed_per_user' => 'sometimes|integer|min:1',
|
||||
'secondary_registration_link' => 'sometimes|url',
|
||||
'secondary_registration_label' => 'sometimes|string',
|
||||
];
|
||||
}
|
||||
|
||||
return [
|
||||
'name' => 'required|string|max:50',
|
||||
'start_date' => 'required|date_format:U',
|
||||
'end_date' => 'required_with:start_date|date_format:U|after:start_date',
|
||||
'submission_begin_date' => 'sometimes|date_format:U',
|
||||
'submission_end_date' => 'required_with:submission_begin_date|date_format:U|after:submission_begin_date',
|
||||
'voting_begin_date' => 'sometimes|date_format:U',
|
||||
'voting_end_date' => 'required_with:voting_begin_date|date_format:U|after:voting_begin_date',
|
||||
'selection_begin_date' => 'sometimes|date_format:U',
|
||||
'selection_end_date' => 'required_with:selection_begin_date|date_format:U|after:selection_begin_date',
|
||||
'registration_begin_date' => 'sometimes|date_format:U',
|
||||
'registration_end_date' => 'required_with:registration_begin_date|date_format:U|after:registration_begin_date',
|
||||
'start_showing_venues_date' => 'sometimes|date_format:U|before:start_date',
|
||||
'schedule_start_date' => 'sometimes|date_format:U',
|
||||
'end_date' => 'required_with:start_date|date_format:U|after_or_equal:start_date',
|
||||
'submission_begin_date' => 'nullable|date_format:U',
|
||||
'submission_end_date' => 'nullable|required_with:submission_begin_date|date_format:U|after_or_equal:submission_begin_date',
|
||||
'voting_begin_date' => 'nullable|date_format:U',
|
||||
'voting_end_date' => 'nullable|required_with:voting_begin_date|date_format:U|after_or_equal:voting_begin_date',
|
||||
'selection_begin_date' => 'nullable|date_format:U',
|
||||
'selection_end_date' => 'nullable|required_with:selection_begin_date|date_format:U|after_or_equal:selection_begin_date',
|
||||
'registration_begin_date' => 'nullable|date_format:U',
|
||||
'registration_end_date' => 'nullable|required_with:registration_begin_date|date_format:U|after_or_equal:registration_begin_date',
|
||||
'start_showing_venues_date' => 'nullable|date_format:U|before_or_equal:start_date',
|
||||
'schedule_start_date' => 'nullable|date_format:U|after_or_equal:start_date|before_or_equal:end_date',
|
||||
'active' => 'sometimes|boolean',
|
||||
'dates_label' => 'sometimes|string',
|
||||
'time_zone_id' => 'required|timezone',
|
||||
'external_summit_id' => 'sometimes|string',
|
||||
'external_summit_id' => 'nullable|string',
|
||||
'available_on_api' => 'sometimes|boolean',
|
||||
'calendar_sync_name' => 'sometimes|string|max:255',
|
||||
'calendar_sync_desc' => 'sometimes|string',
|
||||
|
@ -65,87 +65,122 @@ final class SummitFactory
|
||||
$summit->setCalendarSyncDesc(trim($data['calendar_sync_desc']));
|
||||
}
|
||||
|
||||
if(isset($data['start_date']) && isset($data['end_date'])) {
|
||||
$start_datetime = intval($data['start_date']);
|
||||
$start_datetime = new \DateTime("@$start_datetime");
|
||||
$start_datetime->setTimezone($summit->getTimeZone());
|
||||
$end_datetime = intval($data['end_date']);
|
||||
$end_datetime = new \DateTime("@$end_datetime");
|
||||
$end_datetime->setTimezone($summit->getTimeZone());
|
||||
if(array_key_exists('start_date', $data) && array_key_exists('end_date', $data)) {
|
||||
if (isset($data['start_date']) && isset($data['end_date'])) {
|
||||
$start_datetime = intval($data['start_date']);
|
||||
$start_datetime = new \DateTime("@$start_datetime");
|
||||
$start_datetime->setTimezone($summit->getTimeZone());
|
||||
$end_datetime = intval($data['end_date']);
|
||||
$end_datetime = new \DateTime("@$end_datetime");
|
||||
$end_datetime->setTimezone($summit->getTimeZone());
|
||||
|
||||
// set local time from UTC
|
||||
$summit->setBeginDate($start_datetime);
|
||||
$summit->setEndDate($end_datetime);
|
||||
// set local time from UTC
|
||||
$summit->setBeginDate($start_datetime);
|
||||
$summit->setEndDate($end_datetime);
|
||||
}
|
||||
else{
|
||||
$summit->clearBeginEndDates();
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($data['submission_begin_date']) && isset($data['submission_end_date'])) {
|
||||
$start_datetime = intval($data['submission_begin_date']);
|
||||
$start_datetime = new \DateTime("@$start_datetime");
|
||||
$start_datetime->setTimezone($summit->getTimeZone());
|
||||
$end_datetime = intval($data['submission_end_date']);
|
||||
$end_datetime = new \DateTime("@$end_datetime");
|
||||
$end_datetime->setTimezone($summit->getTimeZone());
|
||||
if(array_key_exists('submission_begin_date', $data) && array_key_exists('submission_end_date', $data)) {
|
||||
if (isset($data['submission_begin_date']) && isset($data['submission_end_date'])) {
|
||||
$start_datetime = intval($data['submission_begin_date']);
|
||||
$start_datetime = new \DateTime("@$start_datetime");
|
||||
$start_datetime->setTimezone($summit->getTimeZone());
|
||||
$end_datetime = intval($data['submission_end_date']);
|
||||
$end_datetime = new \DateTime("@$end_datetime");
|
||||
$end_datetime->setTimezone($summit->getTimeZone());
|
||||
|
||||
// set local time from UTC
|
||||
$summit->setSubmissionBeginDate($start_datetime);
|
||||
$summit->setSubmissionEndDate($end_datetime);
|
||||
// set local time from UTC
|
||||
$summit->setSubmissionBeginDate($start_datetime);
|
||||
$summit->setSubmissionEndDate($end_datetime);
|
||||
}
|
||||
else{
|
||||
$summit->clearSubmissionDates();
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($data['voting_begin_date']) && isset($data['voting_end_date'])) {
|
||||
$start_datetime = intval($data['voting_begin_date']);
|
||||
$start_datetime = new \DateTime("@$start_datetime");
|
||||
$start_datetime->setTimezone($summit->getTimeZone());
|
||||
$end_datetime = intval($data['voting_end_date']);
|
||||
$end_datetime = new \DateTime("@$end_datetime");
|
||||
$end_datetime->setTimezone($summit->getTimeZone());
|
||||
if(array_key_exists('voting_begin_date', $data) && array_key_exists('voting_end_date', $data)) {
|
||||
if (isset($data['voting_begin_date']) && isset($data['voting_end_date'])) {
|
||||
$start_datetime = intval($data['voting_begin_date']);
|
||||
$start_datetime = new \DateTime("@$start_datetime");
|
||||
$start_datetime->setTimezone($summit->getTimeZone());
|
||||
$end_datetime = intval($data['voting_end_date']);
|
||||
$end_datetime = new \DateTime("@$end_datetime");
|
||||
$end_datetime->setTimezone($summit->getTimeZone());
|
||||
|
||||
// set local time from UTC
|
||||
$summit->setVotingBeginDate($start_datetime);
|
||||
$summit->setVotingEndDate($end_datetime);
|
||||
// set local time from UTC
|
||||
$summit->setVotingBeginDate($start_datetime);
|
||||
$summit->setVotingEndDate($end_datetime);
|
||||
}
|
||||
else{
|
||||
$summit->clearVotingDates();
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($data['selection_begin_date']) && isset($data['selection_end_date'])) {
|
||||
$start_datetime = intval($data['selection_begin_date']);
|
||||
$start_datetime = new \DateTime("@$start_datetime");
|
||||
$start_datetime->setTimezone($summit->getTimeZone());
|
||||
$end_datetime = intval($data['selection_end_date']);
|
||||
$end_datetime = new \DateTime("@$end_datetime");
|
||||
$end_datetime->setTimezone($summit->getTimeZone());
|
||||
if(array_key_exists('selection_begin_date', $data) && array_key_exists('selection_end_date', $data)) {
|
||||
if (isset($data['selection_begin_date']) && isset($data['selection_end_date'])) {
|
||||
$start_datetime = intval($data['selection_begin_date']);
|
||||
$start_datetime = new \DateTime("@$start_datetime");
|
||||
$start_datetime->setTimezone($summit->getTimeZone());
|
||||
$end_datetime = intval($data['selection_end_date']);
|
||||
$end_datetime = new \DateTime("@$end_datetime");
|
||||
$end_datetime->setTimezone($summit->getTimeZone());
|
||||
|
||||
// set local time from UTC
|
||||
$summit->setSelectionBeginDate($start_datetime);
|
||||
$summit->setSelectionEndDate($end_datetime);
|
||||
// set local time from UTC
|
||||
$summit->setSelectionBeginDate($start_datetime);
|
||||
$summit->setSelectionEndDate($end_datetime);
|
||||
}
|
||||
else{
|
||||
$summit->clearSelectionDates();
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($data['registration_begin_date']) && isset($data['registration_end_date'])) {
|
||||
$start_datetime = intval($data['registration_begin_date']);
|
||||
$start_datetime = new \DateTime("@$start_datetime");
|
||||
$start_datetime->setTimezone($summit->getTimeZone());
|
||||
$end_datetime = intval($data['registration_end_date']);
|
||||
$end_datetime = new \DateTime("@$end_datetime");
|
||||
$end_datetime->setTimezone($summit->getTimeZone());
|
||||
if(array_key_exists('registration_begin_date', $data) && array_key_exists('registration_end_date', $data)) {
|
||||
if (isset($data['registration_begin_date']) && isset($data['registration_end_date'])) {
|
||||
$start_datetime = intval($data['registration_begin_date']);
|
||||
$start_datetime = new \DateTime("@$start_datetime");
|
||||
$start_datetime->setTimezone($summit->getTimeZone());
|
||||
$end_datetime = intval($data['registration_end_date']);
|
||||
$end_datetime = new \DateTime("@$end_datetime");
|
||||
$end_datetime->setTimezone($summit->getTimeZone());
|
||||
|
||||
// set local time from UTC
|
||||
$summit->setRegistrationBeginDate($start_datetime);
|
||||
$summit->setRegistrationEndDate($end_datetime);
|
||||
// set local time from UTC
|
||||
$summit->setRegistrationBeginDate($start_datetime);
|
||||
$summit->setRegistrationEndDate($end_datetime);
|
||||
}
|
||||
else{
|
||||
$summit->clearRegistrationDates();
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($data['start_showing_venues_date'])) {
|
||||
$start_datetime = intval($data['start_showing_venues_date']);
|
||||
$start_datetime = new \DateTime("@$start_datetime");
|
||||
$start_datetime->setTimezone($summit->getTimeZone());
|
||||
if(array_key_exists('start_showing_venues_date', $data)){
|
||||
if (isset($data['start_showing_venues_date'])) {
|
||||
$start_datetime = intval($data['start_showing_venues_date']);
|
||||
$start_datetime = new \DateTime("@$start_datetime");
|
||||
$start_datetime->setTimezone($summit->getTimeZone());
|
||||
|
||||
// set local time from UTC
|
||||
$summit->setStartShowingVenuesDate($start_datetime);
|
||||
// set local time from UTC
|
||||
$summit->setStartShowingVenuesDate($start_datetime);
|
||||
}
|
||||
else{
|
||||
$summit->clearStartShowingVenuesDate();
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($data['schedule_start_date'])) {
|
||||
$start_datetime = intval($data['schedule_start_date']);
|
||||
$start_datetime = new \DateTime("@$start_datetime");
|
||||
$start_datetime->setTimezone($summit->getTimeZone());
|
||||
if(array_key_exists('schedule_start_date', $data)) {
|
||||
if (isset($data['schedule_start_date'])) {
|
||||
$start_datetime = intval($data['schedule_start_date']);
|
||||
$start_datetime = new \DateTime("@$start_datetime");
|
||||
$start_datetime->setTimezone($summit->getTimeZone());
|
||||
|
||||
// set local time from UTC
|
||||
$summit->setScheduleDefaultStartDate($start_datetime);
|
||||
// set local time from UTC
|
||||
$summit->setScheduleDefaultStartDate($start_datetime);
|
||||
}
|
||||
else{
|
||||
$summit->clearScheduleDefaultStartDate();
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($data['link']) ){
|
||||
|
@ -390,6 +390,10 @@ class Summit extends SilverstripeBaseModel
|
||||
$this->schedule_default_start_date = $this->convertDateFromTimeZone2UTC($schedule_default_start_date);
|
||||
}
|
||||
|
||||
public function clearScheduleDefaultStartDate(){
|
||||
$this->schedule_default_start_date = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
@ -406,6 +410,14 @@ class Summit extends SilverstripeBaseModel
|
||||
$this->begin_date = $this->convertDateFromTimeZone2UTC($begin_date);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return $this
|
||||
*/
|
||||
public function clearBeginEndDates(){
|
||||
$this->begin_date = $this->end_date = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \DateTime
|
||||
*/
|
||||
@ -454,6 +466,10 @@ class Summit extends SilverstripeBaseModel
|
||||
$this->start_showing_venues_date = $this->convertDateFromTimeZone2UTC($start_showing_venues_date);
|
||||
}
|
||||
|
||||
public function clearStartShowingVenuesDate(){
|
||||
$this->start_showing_venues_date = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return boolean
|
||||
*/
|
||||
@ -1393,6 +1409,14 @@ SQL;
|
||||
$this->submission_begin_date = $this->convertDateFromTimeZone2UTC($submission_begin_date);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return $this
|
||||
*/
|
||||
public function clearSubmissionDates(){
|
||||
$this->submission_begin_date = $this->submission_end_date = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return DateTime
|
||||
*/
|
||||
@ -1423,6 +1447,14 @@ SQL;
|
||||
$this->voting_begin_date = $this->convertDateFromTimeZone2UTC($voting_begin_date);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return $this
|
||||
*/
|
||||
public function clearVotingDates(){
|
||||
$this->voting_begin_date = $this->voting_end_date = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return DateTime
|
||||
*/
|
||||
@ -1453,6 +1485,14 @@ SQL;
|
||||
$this->selection_begin_date = $this->convertDateFromTimeZone2UTC($selection_begin_date);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return $this
|
||||
*/
|
||||
public function clearSelectionDates(){
|
||||
$this->selection_begin_date = $this->selection_end_date = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return DateTime
|
||||
*/
|
||||
@ -1483,6 +1523,14 @@ SQL;
|
||||
$this->registration_begin_date = $this->convertDateFromTimeZone2UTC($registration_begin_date);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return $this
|
||||
*/
|
||||
public function clearRegistrationDates(){
|
||||
$this->registration_begin_date = $this->registration_end_date = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return DateTime
|
||||
*/
|
||||
|
@ -127,7 +127,7 @@ final class OAuth2SummitApiTest extends ProtectedApiTest
|
||||
'name' => 'Vancouver, BC',
|
||||
'start_date' => 1522853212,
|
||||
'end_date' => 1542853212,
|
||||
'time_zone_id' => 'America/Argentina/Buenos_Aires'
|
||||
'time_zone_id' => 'America/Argentina/Buenos_Aires',
|
||||
];
|
||||
|
||||
$headers = [
|
||||
@ -158,7 +158,9 @@ final class OAuth2SummitApiTest extends ProtectedApiTest
|
||||
'name' => $name,
|
||||
'start_date' => 1522853212,
|
||||
'end_date' => 1542853212,
|
||||
'time_zone_id' => 'America/Argentina/Buenos_Aires'
|
||||
'time_zone_id' => 'America/Argentina/Buenos_Aires',
|
||||
'submission_begin_date' => null,
|
||||
'submission_end_date' => null,
|
||||
];
|
||||
|
||||
$headers = [
|
||||
|
Loading…
x
Reference in New Issue
Block a user