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.
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);
$this->response->exit('status', ['status' => $ret], $this->parameters['extension'] ?? null, Contact::getPublicIdByUserId($uid));
}