X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FApi%2FMastodon%2FMedia.php;h=1253026fdd07f3be03a857b605ba5c1e36915854;hb=85f57e69faaca3645c596afd12e4b024194ae349;hp=82844a6ff16fdb899027561609e4755557a67241;hpb=3f6b079976733451ed63d3bbd5fff27f4f970619;p=friendica.git diff --git a/src/Module/Api/Mastodon/Media.php b/src/Module/Api/Mastodon/Media.php index 82844a6ff1..1253026fdd 100644 --- a/src/Module/Api/Mastodon/Media.php +++ b/src/Module/Api/Mastodon/Media.php @@ -1,6 +1,6 @@ $request, 'files' => $_FILES]); + + if (empty($_FILES['file'])) { + DI::mstdnError()->UnprocessableEntity(); + } + + $media = Photo::upload($uid, $_FILES['file']); + if (empty($media)) { + DI::mstdnError()->UnprocessableEntity(); + } + + Logger::info('Uploaded photo', ['media' => $media]); + + System::jsonExit(DI::mstdnAttachment()->createFromPhoto($media['id'])); + } + + public function put(array $request = []) + { + self::checkAllowedScope(self::SCOPE_WRITE); + $uid = self::getCurrentUserID(); + + $request = $this->getRequest([ + 'file' => [], // The file to be attached, using multipart form data. + 'thumbnail' => [], // The custom thumbnail of the media to be attached, using multipart form data. + 'description' => '', // A plain-text description of the media, for accessibility purposes. + 'focus' => '', // Two floating points (x,y), comma-delimited ranging from -1.0 to 1.0 + ], $request); + + if (empty($this->parameters['id'])) { + DI::mstdnError()->UnprocessableEntity(); + } + + $photo = Photo::selectFirst(['resource-id'], ['id' => $this->parameters['id'], 'uid' => $uid]); + if (empty($photo['resource-id'])) { + DI::mstdnError()->RecordNotFound(); + } + + Photo::update(['desc' => $request['description']], ['resource-id' => $photo['resource-id']]); + + System::jsonExit(DI::mstdnAttachment()->createFromPhoto($this->parameters['id'])); } /** - * @param array $parameters * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ - public static function rawContent(array $parameters = []) + protected function rawContent(array $request = []) { - self::login(); + self::checkAllowedScope(self::SCOPE_READ); $uid = self::getCurrentUserID(); - if (empty($parameters['id'])) { + if (empty($this->parameters['id'])) { DI::mstdnError()->UnprocessableEntity(); } - $id = $parameters['id']; + $id = $this->parameters['id']; if (!Photo::exists(['id' => $id, 'uid' => $uid])) { DI::mstdnError()->RecordNotFound(); }