filters = $filters;
}
public function __toString()
{
return $this->build();
}
/**
* Build XML for a set of filters.
*
* @return string
*/
private function build()
{
$prefix = "";
$suffix = '';
$xml = collect($this->filters)->map(function ($items) {
return $this->buildEntry($items);
})->implode('');
return $prefix . $xml . $suffix;
}
/**
* Build XML for an filter.
*
* @param Filter $filter
*
* @return string
*/
private function buildEntry(Filter $filter)
{
$entry = collect($filter->getProperties())->map(function ($value, $key) {
return $this->buildProperty($value, $key);
})->implode('');
return "{$entry}";
}
/**
* Build XML for a property.
*
* @param string $value
* @param string $key
*
* @return string
*/
private function buildProperty($value, $key)
{
if ($key == 'from') {
$value = collect($value)->implode('|');
}
return "";
}
}