<?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
*
use Friendica\Module\BaseApi;
use Friendica\DI;
use Friendica\Model\Contact;
+use Friendica\Model\Item;
use Friendica\Model\Post;
use Friendica\Network\HTTPException\BadRequestException;
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.');
}
Logger::notice('API: api_statuses_show: ' . $id);
- $conversation = !empty($_REQUEST['conversation']);
+ $conversation = !empty($request['conversation']);
// try to fetch the item for the local user - or the public item, if there is no local one
- $uri_item = Post::selectFirst(['uri-id'], ['id' => $id]);
- if (!DBA::isResult($uri_item)) {
- throw new BadRequestException(sprintf("There is no status with the id %d", $id));
- }
-
- $item = Post::selectFirst(['id'], ['uri-id' => $uri_item['uri-id'], 'uid' => [0, $uid]], ['order' => ['uid' => true]]);
+ $item = Post::selectFirst(['id'], ['uri-id' => $id, 'uid' => [0, $uid]], ['order' => ['uid' => true]]);
if (!DBA::isResult($item)) {
- throw new BadRequestException(sprintf("There is no status with the uri-id %d for the given user.", $uri_item['uri-id']));
+ throw new BadRequestException(sprintf("There is no status with the uri-id %d for the given user.", $id));
}
- $id = $item['id'];
+ $item_id = $item['id'];
if ($conversation) {
- $condition = ['parent' => $id, 'gravity' => [GRAVITY_PARENT, GRAVITY_COMMENT]];
- $params = ['order' => ['id' => true]];
+ $condition = ['parent' => $item_id, 'gravity' => [Item::GRAVITY_PARENT, Item::GRAVITY_COMMENT]];
+ $params = ['order' => ['uri-id' => true]];
} else {
- $condition = ['id' => $id, 'gravity' => [GRAVITY_PARENT, GRAVITY_COMMENT]];
+ $condition = ['id' => $item_id, 'gravity' => [Item::GRAVITY_PARENT, Item::GRAVITY_COMMENT]];
$params = [];
}
throw new BadRequestException(sprintf("There is no status or conversation with the id %d.", $id));
}
- $include_entities = strtolower(($_REQUEST['include_entities'] ?? 'false') == 'true');
+ $include_entities = $this->getRequestValue($request, 'include_entities', false);
$ret = [];
while ($status = DBA::fetch($statuses)) {
$this->response->exit('statuses', $data, $this->parameters['extension'] ?? null, Contact::getPublicIdByUserId($uid));
} else {
$data = ['status' => $ret[0]];
- $this->response->exit('status', ['status' => $data], $this->parameters['extension'] ?? null, Contact::getPublicIdByUserId($uid));
+ $this->response->exit('status', $data, $this->parameters['extension'] ?? null, Contact::getPublicIdByUserId($uid));
}
}
}