diff options
author | Marco Nassabain <marco.nassabain@etu.unistra.fr> | 2021-01-17 19:31:58 +0100 |
---|---|---|
committer | Sean Molenaar <SMillerDev@users.noreply.github.com> | 2021-04-08 22:31:21 +0200 |
commit | 5b09e74f4099f61fc2a9fb3b627400f4ef8dd5e6 (patch) | |
tree | 606062cd0a6c9886d31c255978a442ef38324cec /lib | |
parent | f18adeba268bcfb7dc4d0cf9a7b4419e6616cd36 (diff) |
🗃 NewsItem: added share fields, feedId not null
Signed-off-by: Marco Nassabain <marco.nassabain@hotmail.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Db/Item.php | 46 | ||||
-rw-r--r-- | lib/Migration/Version150006Date20210117163638.php | 62 |
2 files changed, 105 insertions, 3 deletions
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 @@ +<?php + +declare(strict_types=1); + +namespace OCA\News\Migration; + +use Closure; +use OCP\DB\ISchemaWrapper; +use OCP\Migration\IOutput; +use OCP\Migration\SimpleMigrationStep; + +/** + * Auto-generated migration step: Please modify to your needs! + */ +class Version150006Date20210117163638 extends SimpleMigrationStep { + + /** + * @param IOutput $output + * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper` + * @param array $options + */ + public function preSchemaChange(IOutput $output, Closure $schemaClosure, array $options): void { + } + + /** + * @param IOutput $output + * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper` + * @param array $options + * @return null|ISchemaWrapper + */ + public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper { + /** @var ISchemaWrapper $schema */ + $schema = $schemaClosure(); + + if ($schema->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 { + } +} |