This commit is contained in:
Robin Appelman 2022-04-08 17:28:32 +02:00
commit 4d51484de3
22 changed files with 103 additions and 72 deletions

View file

@ -33,19 +33,19 @@ use SearchDAV\XML\Scope;
class QueryParser extends Service {
public $namespaceMap = [
'DAV:' => 'd',
'http://sabredav.org/ns' => 's',
'DAV:' => 'd',
'http://sabredav.org/ns' => 's',
'http://www.w3.org/2001/XMLSchema' => 'xs',
SearchPlugin::SEARCHDAV_NS => 'sd'
SearchPlugin::SEARCHDAV_NS => 'sd'
];
public function __construct() {
$this->elementMap = [
'{DAV:}literal' => Literal::class,
'{DAV:}searchrequest' => Element\KeyValue::class,
'{DAV:}literal' => Literal::class,
'{DAV:}searchrequest' => Element\KeyValue::class,
'{DAV:}query-schema-discovery' => Element\KeyValue::class,
'{DAV:}basicsearch' => BasicSearch::class,
'{DAV:}select' => function (Reader $reader) {
'{DAV:}basicsearch' => BasicSearch::class,
'{DAV:}select' => function (Reader $reader) {
return \Sabre\Xml\Deserializer\keyValue($reader, '{DAV:}scope')['{DAV:}prop'];
},
'{DAV:}from' => function (Reader $reader) {
@ -61,20 +61,20 @@ class QueryParser extends Service {
}, $reader->parseGetElements());
return (isset($operators[0])) ? $operators[0] : null;
},
'{DAV:}prop' => Element\Elements::class,
'{DAV:}order' => Order::class,
'{DAV:}eq' => Operator::class,
'{DAV:}gt' => Operator::class,
'{DAV:}gte' => Operator::class,
'{DAV:}lt' => Operator::class,
'{DAV:}lte' => Operator::class,
'{DAV:}and' => Operator::class,
'{DAV:}or' => Operator::class,
'{DAV:}like' => Operator::class,
'{DAV:}contains' => Operator::class,
'{DAV:}not' => Operator::class,
'{DAV:}prop' => Element\Elements::class,
'{DAV:}order' => Order::class,
'{DAV:}eq' => Operator::class,
'{DAV:}gt' => Operator::class,
'{DAV:}gte' => Operator::class,
'{DAV:}lt' => Operator::class,
'{DAV:}lte' => Operator::class,
'{DAV:}and' => Operator::class,
'{DAV:}or' => Operator::class,
'{DAV:}like' => Operator::class,
'{DAV:}contains' => Operator::class,
'{DAV:}not' => Operator::class,
'{DAV:}is-collection' => Operator::class,
'{DAV:}limit' => Limit::class,
'{DAV:}limit' => Limit::class,
];
}
}

View file

@ -85,8 +85,10 @@ class SearchHandler {
$response->setBody($e->getMessage());
return false;
}
$data = $this->server->generateMultiStatus(iterator_to_array($this->getPropertiesIteratorResults($results,
$query->select)), false);
$data = $this->server->generateMultiStatus(iterator_to_array($this->getPropertiesIteratorResults(
$results,
$query->select
)), false);
$response->setBody($data);
return false;
}