3 namespace DataAccess\Queries
;
5 use DataAccess\Queries\IQueryBuilder
;
6 use DataAccess\Queries\IDownloadQueryConstraints
;
9 class DownloadQueryConstraints
implements IDownloadQueryConstraints
11 private $_queryBuilder;
12 private $_dateRangeStart;
13 private $_dateRangeEnd;
15 public function applyTo(IQueryBuilder
$queryBuilder)
17 $this->_queryBuilder
= $queryBuilder;
18 $this->applyDateRange();
21 public function inDateRange(DateTime
$start, DateTime
$end)
23 $this->_dateRangeStart
= $start;
24 $this->_dateRangeEnd
= $end;
28 private function applyDateRange()
30 if($this->_dateRangeStart
&& $this->_dateRangeEnd
) {
31 $this->_queryBuilder
->where('timestamp', '>=', $this->_dateRangeStart
->getTimestamp())
32 ->where('timestamp', '<=', $this->_dateRangeEnd
->getTimestamp());