]> git.mxchange.org Git - friendica.git/blobdiff - src/Content/Conversation/Factory/UserDefinedChannel.php
User Repository\UserDefinedChannel->selectByUid instead of Factory\UserDefinedChannel...
[friendica.git] / src / Content / Conversation / Factory / UserDefinedChannel.php
index 1b067d08b03a04b8f2894006129f76d9bbb77064..12816126dbe12b24ffd23902d51cfa957753737c 100644 (file)
 
 namespace Friendica\Content\Conversation\Factory;
 
+use Friendica\Capabilities\ICanCreateFromTableRow;
 use Friendica\Content\Conversation\Collection\Timelines;
+use Friendica\Content\Conversation\Entity;
 
-final class UserDefinedChannel extends Timeline
+final class UserDefinedChannel extends Timeline implements ICanCreateFromTableRow
 {
-       /**
-        * List of available user defined channels
-        *
-        * @param integer $uid
-        * @return Timelines
-        */
-       public function getForUser(int $uid): Timelines
+       public function isTimeline(string $selectedTab, int $uid): bool
        {
-               $tabs = [];
-               foreach ($this->channelRepository->selectByUid($uid) as $channel) {
-                       $tabs[] = $channel;
-               }
-
-               return new Timelines($tabs);
+               return is_numeric($selectedTab) && $uid && $this->channelRepository->existsById($selectedTab, $uid);
        }
 
-       public function isTimeline(string $selectedTab, int $uid): bool
+       public function createFromTableRow(array $row): Entity\UserDefinedChannel
        {
-               return is_numeric($selectedTab) && $uid && $this->channelRepository->existsById($selectedTab, $uid);
+               return new Entity\UserDefinedChannel(
+                       $row['id'] ?? null,
+                       $row['label'],
+                       $row['description'] ?? null,
+                       $row['access-key'] ?? null,
+                       null,
+                       $row['uid'],
+                       $row['include-tags'] ?? null,
+                       $row['exclude-tags'] ?? null,
+                       $row['full-text-search'] ?? null,
+                       $row['media-type'] ?? null,
+                       $row['circle'] ?? null,
+               );
        }
 }