* @param string $type
* @return Array
*/
- public function createFromId(string $photo_id, int $scale, int $uid, string $type = 'json', bool $with_posts = true): array
+ public function createFromId(string $photo_id, int $scale = null, int $uid, string $type = 'json', bool $with_posts = true): array
{
$fields = ['resource-id', 'created', 'edited', 'title', 'desc', 'album', 'filename','type',
'height', 'width', 'datasize', 'profile', 'allow_cid', 'deny_cid', 'allow_gid', 'deny_gid',
'backend-class', 'backend-ref', 'id', 'scale'];
$condition = ['uid' => $uid, 'resource-id' => $photo_id];
- if ($scale >= 0) {
+ if (is_int($scale)) {
$fields = array_merge(['data'], $fields);
$condition['scale'] = $scale;
if (empty($photos)) {
throw new HTTPException\NotFoundException();
}
- $data = $photos[0];
- $data['id'] = $data['resource-id'];
+ $data = $photos[0];
+
+ $data['media-id'] = $data['id'];
+ $data['id'] = $data['resource-id'];
+
if (is_int($scale)) {
$data['data'] = base64_encode(ModelPhoto::getImageDataForPhoto($data));
- } else {
- unset($data['datasize']); //needed only with scale param
}
if ($type == 'xml') {
} else {
$data['link'][$id] = $link;
}
+ if (is_null($scale)) {
+ $data['scales'][] = [
+ 'id' => $photo['id'],
+ 'scale' => $photo['scale'],
+ 'link' => $link,
+ 'width' => $photo['width'],
+ 'height' => $photo['height'],
+ 'size' => $photo['datasize'],
+ ];
+ }
}
unset($data['backend-class']);
unset($data['backend-ref']);
unset($data['resource-id']);
- unset($data['scale']);
if ($with_posts) {
// retrieve item element for getting activities (like, dislike etc.) related to photo