]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Api/Twitter/Statuses/Destroy.php
Update src/Module/Api/Twitter/Statuses/Update.php
[friendica.git] / src / Module / Api / Twitter / Statuses / Destroy.php
index 0106e6ea0e922a5cf8df3d72d73974ae2c335fcb..e54166b990b3182a7faf501990e5d06422a4ea2a 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2010-2021, the Friendica project
+ * @copyright Copyright (C) 2010-2022, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
 
 namespace Friendica\Module\Api\Twitter\Statuses;
 
-use Friendica\Core\Logger;
 use Friendica\Module\BaseApi;
 use Friendica\DI;
 use Friendica\Model\Contact;
 use Friendica\Model\Item;
+use Friendica\Model\Post;
+use Friendica\Network\HTTPException\BadRequestException;
 
 /**
  * Destroys a specific status.
@@ -34,25 +35,30 @@ use Friendica\Model\Item;
  */
 class Destroy extends BaseApi
 {
-       protected function post(array $request = [], array $post = [])
+       protected function post(array $request = [])
        {
                BaseApi::checkAllowedScope(BaseApi::SCOPE_READ);
                $uid = BaseApi::getCurrentUserID();
 
-               if (empty($this->parameters['id'])) {
-                       $id = intval($request['id'] ?? 0);
-               } else {
-                       $id = (int)$this->parameters['id'];
+               $id = $this->getRequestValue($request, 'id', 0);
+               $id = $this->getRequestValue($this->parameters, 'id', $id);
+               if (empty($id)) {
+                       throw new BadRequestException('An id is missing.');
+               }
+
+               $post = Post::selectFirst(['id'], ['uri-id' => $request['id'], 'uid' => [0, $uid]], ['order' => ['uid' => true]]);
+               if (empty($post['id'])) {
+                       throw new BadRequestException('Item id not found');
                }
 
                $this->logger->notice('API: api_statuses_destroy: ' . $id);
 
-               $include_entities = strtolower(($request['include_entities'] ?? 'false') == 'true');
+               $include_entities = $this->getRequestValue($request, 'include_entities', false);
 
-               $ret = DI::twitterStatus()->createFromItemId($id, $uid, $include_entities)->toArray();
+               $ret = DI::twitterStatus()->createFromUriId($id, $uid, $include_entities)->toArray();
 
-               Item::deleteForUser(['id' => $id], $uid);
+               Item::deleteForUser(['id' => $post['id']], $uid);
 
-               DI::apiResponse()->exit('status', ['status' => $ret], $this->parameters['extension'] ?? null, Contact::getPublicIdByUserId($uid));
+               $this->response->exit('status', ['status' => $ret], $this->parameters['extension'] ?? null, Contact::getPublicIdByUserId($uid));
        }
 }