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,
+ );
}
}