From 5b09e74f4099f61fc2a9fb3b627400f4ef8dd5e6 Mon Sep 17 00:00:00 2001 From: Marco Nassabain Date: Sun, 17 Jan 2021 19:31:58 +0100 Subject: =?UTF-8?q?=F0=9F=97=83=20NewsItem:=20added=20share=20fields,=20fe?= =?UTF-8?q?edId=20not=20null?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marco Nassabain --- lib/Db/Item.php | 46 +++++++++++++++-- lib/Migration/Version150006Date20210117163638.php | 62 +++++++++++++++++++++++ 2 files changed, 105 insertions(+), 3 deletions(-) create mode 100644 lib/Migration/Version150006Date20210117163638.php (limited to 'lib') diff --git a/lib/Db/Item.php b/lib/Db/Item.php index 221fb8627..6b2b668b2 100644 --- a/lib/Db/Item.php +++ b/lib/Db/Item.php @@ -51,7 +51,7 @@ class Item extends Entity implements IAPI, \JsonSerializable protected $mediaThumbnail; /** @var string|null */ protected $mediaDescription; - /** @var int */ + /** @var int|null */ protected $feedId; /** @var string|null */ protected $lastModified = '0'; @@ -67,6 +67,11 @@ class Item extends Entity implements IAPI, \JsonSerializable protected $starred = false; /** @var string|null */ protected $categoriesJson; + /** @var string */ + protected $sharedBy = ''; + /** @var string */ + protected $sharedWith = ''; + public function __construct() { @@ -90,6 +95,8 @@ class Item extends Entity implements IAPI, \JsonSerializable $this->addType('unread', 'boolean'); $this->addType('starred', 'boolean'); $this->addType('categoriesJson', 'string'); + $this->addType('sharedBy', 'string'); + $this->addType('sharedWith', 'string'); } /** @@ -202,7 +209,10 @@ class Item extends Entity implements IAPI, \JsonSerializable return $this->enclosureMime; } - public function getFeedId(): int + /** + * @return null|int + */ + public function getFeedId(): ?string { return $this->feedId; } @@ -285,6 +295,16 @@ class Item extends Entity implements IAPI, \JsonSerializable return $this->unread; } + public function getSharedBy(): string + { + return $this->sharedBy; + } + + public function getSharedWith(): string + { + return $this->sharedWith; + } + /** * @return null|string */ @@ -407,7 +427,7 @@ class Item extends Entity implements IAPI, \JsonSerializable return $this; } - public function setFeedId(int $feedId): self + public function setFeedId(?int $feedId = null): self { if ($this->feedId !== $feedId) { $this->feedId = $feedId; @@ -509,6 +529,26 @@ class Item extends Entity implements IAPI, \JsonSerializable return $this; } + public function setSharedBy(string $sharedBy): self + { + if ($this->sharedBy !== $sharedBy) { + $this->sharedBy = $sharedBy; + $this->markFieldUpdated('sharedBy'); + } + + return $this; + } + + public function setSharedWith(string $sharedWith): self + { + if ($this->sharedWith !== $sharedWith) { + $this->sharedWith = $sharedWith; + $this->markFieldUpdated('sharedWith'); + } + + return $this; + } + public function setUnread(bool $unread): self { if ($this->unread !== $unread) { diff --git a/lib/Migration/Version150006Date20210117163638.php b/lib/Migration/Version150006Date20210117163638.php new file mode 100644 index 000000000..d82da1d26 --- /dev/null +++ b/lib/Migration/Version150006Date20210117163638.php @@ -0,0 +1,62 @@ +hasTable('news_items')) { + $table = $schema->getTable('news_items'); + $table->addColumn('shared_by', 'string', [ + 'notnull' => true, + 'length' => 64, + 'default' => '', + ]); + $table->addColumn('shared_with', 'string', [ + 'notnull' => true, + 'length' => 64, + 'default' => '', + ]); + $table->changeColumn('feed_id', [ + 'notnull' => false + ]); + } + + return $schema; + } + + /** + * @param IOutput $output + * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper` + * @param array $options + */ + public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $options): void { + } +} -- cgit v1.2.3