Fixed date fields not properly parsed depending if originally they were datetimes or strings

This commit is contained in:
Alejandro Celaya 2018-07-28 18:57:24 +02:00
parent b2a63f734a
commit d5b78f2a7e

View file

@ -78,19 +78,34 @@ final class ShortUrlMeta
throw ValidationException::fromInputFilter($inputFilter); throw ValidationException::fromInputFilter($inputFilter);
} }
$this->validSince = $inputFilter->getValue(ShortUrlMetaInputFilter::VALID_SINCE); $this->validSince = $this->parseDateField($inputFilter->getValue(ShortUrlMetaInputFilter::VALID_SINCE));
$this->validSince = $this->validSince !== null ? new \DateTime($this->validSince) : null; $this->validUntil = $this->parseDateField($inputFilter->getValue(ShortUrlMetaInputFilter::VALID_UNTIL));
$this->validUntil = $inputFilter->getValue(ShortUrlMetaInputFilter::VALID_UNTIL);
$this->validUntil = $this->validUntil !== null ? new \DateTime($this->validUntil) : null;
$this->customSlug = $inputFilter->getValue(ShortUrlMetaInputFilter::CUSTOM_SLUG); $this->customSlug = $inputFilter->getValue(ShortUrlMetaInputFilter::CUSTOM_SLUG);
$this->maxVisits = $inputFilter->getValue(ShortUrlMetaInputFilter::MAX_VISITS); $this->maxVisits = $inputFilter->getValue(ShortUrlMetaInputFilter::MAX_VISITS);
$this->maxVisits = $this->maxVisits !== null ? (int) $this->maxVisits : null; $this->maxVisits = $this->maxVisits !== null ? (int) $this->maxVisits : null;
} }
/** /**
* @param string|\DateTime|null $date
* @return \DateTime|null * @return \DateTime|null
*/ */
public function getValidSince() private function parseDateField($date): ?\DateTime
{
if ($date === null || $date instanceof \DateTime) {
return $date;
}
if (\is_string($date)) {
return new \DateTime($date);
}
return null;
}
/**
* @return \DateTime|null
*/
public function getValidSince(): ?\DateTime
{ {
return $this->validSince; return $this->validSince;
} }
@ -103,7 +118,7 @@ final class ShortUrlMeta
/** /**
* @return \DateTime|null * @return \DateTime|null
*/ */
public function getValidUntil() public function getValidUntil(): ?\DateTime
{ {
return $this->validUntil; return $this->validUntil;
} }