<?php
/**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2023, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
namespace Friendica\Object\Api\Mastodon;
-use Friendica\BaseEntity;
-use Friendica\Content\Text\BBCode;
-use Friendica\Object\Api\Mastodon\Status\Counts;
-use Friendica\Object\Api\Mastodon\Status\UserAttributes;
-use Friendica\Util\DateTimeFormat;
+use Friendica\BaseDataTransferObject;
/**
* Class Card
*
* @see https://docs.joinmastodon.org/entities/card
*/
-class Card extends BaseEntity
+class Card extends BaseDataTransferObject
{
/** @var string */
protected $url;
/** @var string */
protected $type;
/** @var string */
+ protected $author_name;
+ /** @var string */
+ protected $author_url;
+ /** @var string */
+ protected $provider_name;
+ /** @var string */
+ protected $provider_url;
+ /** @var int */
+ protected $width;
+ /** @var int */
+ protected $height;
+ /** @var string */
protected $image;
+ /** @var string */
+ protected $blurhash;
+ /** @var array */
+ protected $history;
/**
- * Creates a status record from an item record.
+ * Creates a card record from an attachment array.
*
* @param array $attachment Attachment record
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
- public function __construct(array $attachment)
+ public function __construct(array $attachment, array $history = [])
{
- $this->url = $attachment['url'] ?? '';
- $this->title = $attachment['title'] ?? '';
- $this->description = $attachment['description'] ?? '';
- $this->type = $attachment['type'] ?? '';
- $this->image = $attachment['image'] ?? '';
+ $this->url = $attachment['url'] ?? '';
+ $this->title = $attachment['title'] ?? '';
+ $this->description = $attachment['description'] ?? '';
+ $this->type = $attachment['type'] ?? '';
+ $this->author_name = $attachment['author_name'] ?? '';
+ $this->author_url = $attachment['author_url'] ?? '';
+ $this->provider_name = $attachment['provider_name'] ?? '';
+ $this->provider_url = $attachment['provider_url'] ?? '';
+ $this->width = $attachment['width'] ?? 0;
+ $this->height = $attachment['height'] ?? 0;
+ $this->image = $attachment['image'] ?? '';
+ $this->blurhash = $attachment['blurhash'] ?? '';
+ $this->history = $history;
}
/**
*
* @return array
*/
- public function toArray()
+ public function toArray(): array
{
if (empty($this->url)) {
- return null;
+ return [];
}
return parent::toArray();