/**
* {@inheritdoc}
*/
public function formatImages(Model\Images $model)
{
$images = $model->getImages();
$data = array();
// Fields to display
if ($fields = $model->getFields()) {
$fields = array_fill_keys($fields, 1);
}
foreach ($images as $image) {
$entry = array('added' => $this->dateFormatter->formatDate($image->getAddedDate()), 'updated' => $this->dateFormatter->formatDate($image->getUpdatedDate()), 'checksum' => $image->getChecksum(), 'originalChecksum' => $image->getOriginalChecksum(), 'extension' => $image->getExtension(), 'size' => $image->getFilesize(), 'width' => $image->getWidth(), 'height' => $image->getHeight(), 'mime' => $image->getMimeType(), 'imageIdentifier' => $image->getImageIdentifier(), 'publicKey' => $image->getPublicKey());
// Add metadata if the field is to be displayed
if (empty($fields) || isset($fields['metadata'])) {
$metadata = $image->getMetadata();
if (is_array($metadata)) {
if (empty($metadata)) {
$metadata = new stdClass();
}
$entry['metadata'] = $metadata;
}
}
// Remove elements that should not be displayed
if (!empty($fields)) {
foreach (array_keys($entry) as $key) {
if (!isset($fields[$key])) {
unset($entry[$key]);
}
}
}
$data[] = $entry;
}
return $this->encode(array('search' => array('hits' => $model->getHits(), 'page' => $model->getPage(), 'limit' => $model->getLimit(), 'count' => $model->getCount()), 'images' => $data));
}