Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Add since
Signed-off-by: Joas Schilling <[email protected]>
  • Loading branch information
nickvergessen authored and backportbot-nextcloud[bot] committed Sep 26, 2022
commit cc6b12a166f24d71dcff8ccc666422cbcf2bc696
106 changes: 97 additions & 9 deletions lib/public/Collaboration/Reference/Reference.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,95 +25,169 @@

namespace OCP\Collaboration\Reference;

/**
* @since 25.0.0
*/
class Reference implements IReference {
private string $reference;
protected string $reference;

private bool $accessible = true;
protected bool $accessible = true;

private ?string $title = null;
private ?string $description = null;
private ?string $imageUrl = null;
private ?string $contentType = null;
private ?string $url = null;
protected ?string $title = null;
protected ?string $description = null;
protected ?string $imageUrl = null;
protected ?string $contentType = null;
protected ?string $url = null;

private ?string $richObjectType = null;
private ?array $richObject = null;
protected ?string $richObjectType = null;
protected ?array $richObject = null;

/**
* @since 25.0.0
*/
public function __construct(string $reference) {
$this->reference = $reference;
}

/**
* @inheritdoc
* @since 25.0.0
*/
public function getId(): string {
return $this->reference;
}

/**
* @inheritdoc
* @since 25.0.0
*/
public function setAccessible(bool $accessible): void {
$this->accessible = $accessible;
}

/**
* @inheritdoc
* @since 25.0.0
*/
public function getAccessible(): bool {
return $this->accessible;
}

/**
* @inheritdoc
* @since 25.0.0
*/
public function setTitle(string $title): void {
$this->title = $title;
}

/**
* @inheritdoc
* @since 25.0.0
*/
public function getTitle(): string {
return $this->title ?? $this->reference;
}

/**
* @inheritdoc
* @since 25.0.0
*/
public function setDescription(?string $description): void {
$this->description = $description;
}

/**
* @inheritdoc
* @since 25.0.0
*/
public function getDescription(): ?string {
return $this->description;
}

/**
* @inheritdoc
* @since 25.0.0
*/
public function setImageUrl(?string $imageUrl): void {
$this->imageUrl = $imageUrl;
}

/**
* @inheritdoc
* @since 25.0.0
*/
public function getImageUrl(): ?string {
return $this->imageUrl;
}

/**
* @inheritdoc
* @since 25.0.0
*/
public function setImageContentType(?string $contentType): void {
$this->contentType = $contentType;
}

/**
* @inheritdoc
* @since 25.0.0
*/
public function getImageContentType(): ?string {
return $this->contentType;
}

/**
* @inheritdoc
* @since 25.0.0
*/
public function setUrl(?string $url): void {
$this->url = $url;
}

/**
* @inheritdoc
* @since 25.0.0
*/
public function getUrl(): ?string {
return $this->url;
}

/**
* @inheritdoc
* @since 25.0.0
*/
public function setRichObject(string $type, ?array $richObject): void {
$this->richObjectType = $type;
$this->richObject = $richObject;
}

/**
* @inheritdoc
* @since 25.0.0
*/
public function getRichObjectType(): string {
if ($this->richObjectType === null) {
return 'open-graph';
}
return $this->richObjectType;
}

/**
* @inheritdoc
* @since 25.0.0
*/
public function getRichObject(): array {
if ($this->richObject === null) {
return $this->getOpenGraphObject();
}
return $this->richObject;
}

/**
* @inheritdoc
* @since 25.0.0
*/
public function getOpenGraphObject(): array {
return [
'id' => $this->getId(),
Expand All @@ -124,6 +198,11 @@ public function getOpenGraphObject(): array {
];
}

/**
* @param IReference $reference
* @return array
* @since 25.0.0
*/
public static function toCache(IReference $reference): array {
return [
'id' => $reference->getId(),
Expand All @@ -138,6 +217,11 @@ public static function toCache(IReference $reference): array {
];
}

/**
* @param array $cache
* @return IReference
* @since 25.0.0
*/
public static function fromCache(array $cache): IReference {
$reference = new Reference($cache['id']);
$reference->setTitle($cache['title']);
Expand All @@ -150,6 +234,10 @@ public static function fromCache(array $cache): IReference {
return $reference;
}

/**
* @inheritdoc
* @since 25.0.0
*/
public function jsonSerialize() {
return [
'richObjectType' => $this->getRichObjectType(),
Expand Down