]> git.mxchange.org Git - friendica.git/blobdiff - src/Factory/Api/Friendica/Photo.php
API: Fix interoperability between Friendica and Mastodon part
[friendica.git] / src / Factory / Api / Friendica / Photo.php
index dad90d13f141d146c2801dcabef03d89aaa00e2e..44a671e16bc2708a9837725440aaf19c779fb493 100644 (file)
@@ -25,6 +25,7 @@ use Friendica\App\BaseURL;
 use Friendica\BaseFactory;
 use Friendica\Database\DBA;
 use Friendica\Factory\Api\Twitter\Status;
+use Friendica\Model\Item;
 use Friendica\Model\Photo as ModelPhoto;
 use Friendica\Model\Post;
 use Friendica\Network\HTTPException;
@@ -73,12 +74,13 @@ class Photo extends BaseFactory
                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') {
@@ -98,12 +100,21 @@ class Photo extends BaseFactory
                        } 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
@@ -116,7 +127,7 @@ class Photo extends BaseFactory
 
                        // retrieve comments on photo
                        $condition = ["`parent` = ? AND `uid` = ? AND `gravity` IN (?, ?)",
-                               $item['parent'], $uid, GRAVITY_PARENT, GRAVITY_COMMENT];
+                               $item['parent'], $uid, Item::GRAVITY_PARENT, Item::GRAVITY_COMMENT];
 
                        $statuses = Post::selectForUser($uid, [], $condition);