]> git.mxchange.org Git - friendica.git/commitdiff
Add Photo Album index endpoint to Friendica API
authorHank Grabowski <hankgrabowski@gmail.com>
Tue, 13 Dec 2022 18:28:34 +0000 (13:28 -0500)
committerHank Grabowski <hankgrabowski@gmail.com>
Tue, 13 Dec 2022 18:28:34 +0000 (13:28 -0500)
src/Module/Api/Friendica/Photoalbum/Index.php [new file with mode: 0644]
static/routes.config.php

diff --git a/src/Module/Api/Friendica/Photoalbum/Index.php b/src/Module/Api/Friendica/Photoalbum/Index.php
new file mode 100644 (file)
index 0000000..84c5f2d
--- /dev/null
@@ -0,0 +1,53 @@
+<?php
+/**
+* @copyright Copyright (C) 2022, the Friendica project
+*
+* @license GNU AGPL version 3 or any later version
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Affero General Public License as
+* published by the Free Software Foundation, either version 3 of the
+* License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU Affero General Public License for more details.
+*
+* You should have received a copy of the GNU Affero General Public License
+* along with this program.  If not, see <https://www.gnu.org/licenses/>.
+*
+*/
+
+namespace Friendica\Module\Api\Friendica\Photoalbum;
+
+use Friendica\Database\DBA;
+use Friendica\Model\Photo;
+use Friendica\Module\BaseApi;
+
+/**
+ * api/friendica/photoalbum
+ *
+ * @package  Friendica\Module\Api\Friendica\Photoalbum
+ */
+class Index extends BaseApi
+{
+       protected function rawContent(array $request = [])
+       {
+               self::checkAllowedScope(self::SCOPE_READ);
+               $uid = self::getCurrentUserID();
+
+               $albums = Photo::getAlbums($uid);
+
+               $items = [];
+               foreach ($albums as $album) {
+                       $items[] = [
+                               'name'         => $album['album'],
+                               'created'      => $album['created'],
+                               'count'        => $album['total'],
+                       ];
+               }
+
+               $this->response->exit('albums', ['albums' => $items], $this->parameters['extension'] ?? null);
+       }
+}
index e3c87f1502e896ad54a2a24d2ff364777c431567..dc1f97b68711f190b820411f7217b0657bd68093 100644 (file)
@@ -93,6 +93,7 @@ $apiRoutes = [
                '/group_delete[.{extension:json|xml|rss|atom}]'            => [Module\Api\Friendica\Group\Delete::class,           [        R::POST]],
                '/group_update[.{extension:json|xml|rss|atom}]'            => [Module\Api\Friendica\Group\Update::class,           [        R::POST]],
                '/profile/show[.{extension:json|xml|rss|atom}]'            => [Module\Api\Friendica\Profile\Show::class,           [R::GET         ]],
+               '/photoalbums[.{extension:json|xml|rss|atom}]'             => [Module\Api\Friendica\Photoalbum\Index::class,       [R::GET         ]],
                '/photoalbum/delete[.{extension:json|xml|rss|atom}]'       => [Module\Api\Friendica\Photoalbum\Delete::class,      [        R::POST]],
                '/photoalbum/update[.{extension:json|xml|rss|atom}]'       => [Module\Api\Friendica\Photoalbum\Update::class,      [        R::POST]],
                '/photos/list[.{extension:json|xml|rss|atom}]'             => [Module\Api\Friendica\Photo\Lists::class,            [R::GET         ]],