aboutsummaryrefslogtreecommitdiffstats
path: root/core/Controller
diff options
context:
space:
mode:
authorskjnldsv <skjnldsv@protonmail.com>2025-01-10 11:57:08 +0100
committernextcloud-command <nextcloud-command@users.noreply.github.com>2025-01-22 16:29:36 +0000
commit2c13259093480400d4d2c41a4f458c891e600868 (patch)
treee9a1e3b17b7d503b6a185a3f7ca73ad4bd70bd33 /core/Controller
parent7d8bb60bfe3b310b3c9909128a441a8336b638c8 (diff)
downloadnextcloud-server-2c13259093480400d4d2c41a4f458c891e600868.tar.gz
nextcloud-server-2c13259093480400d4d2c41a4f458c891e600868.zip
feat(files): add mime icon endpoint
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
Diffstat (limited to 'core/Controller')
-rw-r--r--core/Controller/PreviewController.php22
1 files changed, 22 insertions, 0 deletions
diff --git a/core/Controller/PreviewController.php b/core/Controller/PreviewController.php
index 9c9d49082bb..0e4c71380ec 100644
--- a/core/Controller/PreviewController.php
+++ b/core/Controller/PreviewController.php
@@ -14,6 +14,7 @@ use OCP\AppFramework\Http\Attribute\FrontpageRoute;
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
use OCP\AppFramework\Http\Attribute\OpenAPI;
+use OCP\AppFramework\Http\Attribute\PublicPage;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\Http\FileDisplayResponse;
use OCP\AppFramework\Http\RedirectResponse;
@@ -183,4 +184,25 @@ class PreviewController extends Controller {
return new DataResponse([], Http::STATUS_BAD_REQUEST);
}
}
+
+ /**
+ * Get a preview by mime
+ *
+ * @param string $mime Mime type
+ * @return RedirectResponse<Http::STATUS_SEE_OTHER, array{}>
+ *
+ * 303: The mime icon url
+ */
+ #[NoCSRFRequired]
+ #[PublicPage]
+ #[FrontpageRoute(verb: 'GET', url: '/core/mimeicon')]
+ #[OpenAPI(scope: OpenAPI::SCOPE_DEFAULT)]
+ public function getMimeIconUrl(string $mime = 'application/octet-stream') {
+ $url = $this->mimeIconProvider->getMimeIconUrl($mime);
+ if ($url === null) {
+ $url = $this->mimeIconProvider->getMimeIconUrl('application/octet-stream');
+ }
+
+ return new RedirectResponse($url);
+ }
}