]> git.mxchange.org Git - friendica.git/blobdiff - src/Object/Api/Mastodon/Status.php
"edited_at" must only be displayed when the entry had been updated
[friendica.git] / src / Object / Api / Mastodon / Status.php
index 2e7a0877d46a32b35502f25271c80e36dc840ee5..8430601f9830a313b0e21c8299b0e031f0616d0d 100644 (file)
@@ -38,8 +38,10 @@ class Status extends BaseDataTransferObject
 {
        /** @var string */
        protected $id;
-       /** @var string (Datetime) */
+       /** @var string|null (Datetime) */
        protected $created_at;
+       /** @var string|null (Datetime) */
+       protected $edited_at;
        /** @var string|null */
        protected $in_reply_to_id = null;
        /** @var Status|null - Fedilab extension, see issue https://github.com/friendica/friendica/issues/12672 */
@@ -107,8 +109,9 @@ class Status extends BaseDataTransferObject
         */
        public function __construct(array $item, Account $account, Counts $counts, UserAttributes $userAttributes, bool $sensitive, Application $application, array $mentions, array $tags, Card $card, array $attachments, array $in_reply, array $reblog, FriendicaExtension $friendica, array $quote = null, array $poll = null)
        {
-               $this->id         = (string)$item['uri-id'];
-               $this->created_at = DateTimeFormat::utc($item['created'], DateTimeFormat::JSON);
+               $this->id           = (string)$item['uri-id'];
+               $this->created_at   = DateTimeFormat::utc($item['created'], DateTimeFormat::JSON);
+               $this->edited_at    = DateTimeFormat::utc($item['edited'], DateTimeFormat::JSON);
 
                if ($item['gravity'] == Item::GRAVITY_COMMENT) {
                        $this->in_reply_to_id         = (string)$item['thr-parent-id'];
@@ -154,6 +157,33 @@ class Status extends BaseDataTransferObject
                $this->friendica = $friendica;
        }
 
+       /**
+        * Returns the current created_at string or null if not set
+        * @return \DateTime|null
+        */
+       public function createdAt(): ?string
+       {
+               return $this->created_at;
+       }
+
+       /**
+        * Returns the current edited_at string or null if not set
+        * @return ?string
+        */
+       public function editedAt(): ?string
+       {
+               return $this->edited_at;
+       }
+
+       /**
+        * Returns the Friendica Extension properties
+        * @return FriendicaExtension
+        */
+       public function friendicaExtension(): FriendicaExtension
+       {
+               return $this->friendica;
+       }
+
        /**
         * Returns the current entity as an array
         *
@@ -183,6 +213,10 @@ class Status extends BaseDataTransferObject
                        $status['in_reply_to_status'] = null;
                }
 
+               if ($status['created_at'] == $status['edited_at']) {
+                       unset($status['edited_at']);
+               }
+
                return $status;
        }
 }