public function formatImages(Model\Images $model)
{
$images = $model->getImages();
$data = [];
// Fields to display
if ($fields = $model->getFields()) {
$fields = array_fill_keys($fields, 1);
}
foreach ($images as $image) {
$entry = ['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(), 'user' => $image->getUser()];
// 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(['search' => ['hits' => $model->getHits(), 'page' => $model->getPage(), 'limit' => $model->getLimit(), 'count' => $model->getCount()], 'images' => $data]);
}