Wallmander\ElasticsearchIndexer\Model\Query\WpConverter::argDateQuery PHP Method

argDateQuery() public static method

public static argDateQuery ( Query $query, $value, &$q )
$query Wallmander\ElasticsearchIndexer\Model\Query
    public static function argDateQuery(Query $query, $value, &$q)
    {
        $query->bool(function (Query $query) use($value, $q) {
            foreach ($value as $dq) {
                $column = !empty($dq['column']) ? $dq['column'] : 'post_date';
                $inclusive = !empty($dq['inclusive']);
                foreach ($dq as $key => $value) {
                    switch ($key) {
                        case 'before':
                            $date = static::buildDatetime($value, $inclusive);
                            $comparator = 'lt';
                            if ($inclusive) {
                                $comparator .= 'e';
                            }
                            $query->where($column, $comparator, $date);
                            break;
                        case 'after':
                            $date = static::buildDatetime($value, !$inclusive);
                            $comparator = 'gt';
                            if ($inclusive) {
                                $comparator .= 'e';
                            }
                            $query->where($column, $comparator, $date);
                            break;
                        case 'week':
                        case 'w':
                            $query->where($column . '_object.week', $value);
                            break;
                        case 'year':
                        case 'month':
                        case 'dayofyear':
                        case 'day':
                        case 'dayofweek':
                        case 'dayofweek_iso':
                        case 'hour':
                        case 'minute':
                        case 'second':
                            $query->where($column . '_object.' . $key, $value);
                            break;
                    }
                }
            }
        }, !empty($value['relation']) ? $value['relation'] : 'and');
    }