refactor: use args for controller query params

cap
Varun Patil 2022-12-02 20:44:24 -08:00
parent a59860e654
commit df0272e95d
4 changed files with 20 additions and 19 deletions

View File

@ -33,7 +33,7 @@ class AlbumsController extends ApiBase
*
* Get list of albums with counts of images
*/
public function albums(): JSONResponse
public function albums(int $t = 0): JSONResponse
{
$user = $this->userSession->getUser();
if (null === $user) {
@ -47,7 +47,6 @@ class AlbumsController extends ApiBase
// Run actual query
$list = [];
$t = (int) $this->request->getParam('t');
if ($t & 1) { // personal
$list = array_merge($list, $this->timelineQuery->getAlbums($user->getUID()));
}

View File

@ -39,20 +39,22 @@ class ImageController extends ApiBase
*
* @param string fileid
*/
public function info(string $id): JSONResponse
{
public function info(
string $id,
bool $basic = false,
bool $current = false
): JSONResponse {
$file = $this->getUserFile((int) $id);
if (!$file) {
return new JSONResponse([], Http::STATUS_NOT_FOUND);
}
// Get the image info
$basic = false !== $this->request->getParam('basic', false);
$info = $this->timelineQuery->getInfoById($file->getId(), $basic);
// Get latest exif data if requested
// Allow this ony for logged in users
if ($this->request->getParam('current', false) && null !== $this->userSession->getUser()) {
if ($current && null !== $this->userSession->getUser()) {
$info['current'] = Exif::getExifFromFile($file);
}

View File

@ -64,7 +64,7 @@ class TagsController extends ApiBase
*
* Get previews for a tag
*/
public function previews(): JSONResponse
public function previews(string $tag = 'unknown'): JSONResponse
{
$user = $this->userSession->getUser();
if (null === $user) {
@ -82,12 +82,9 @@ class TagsController extends ApiBase
return new JSONResponse([], Http::STATUS_NOT_FOUND);
}
// Get the tag
$tagName = $this->request->getParam('tag');
// Run actual query
$list = $this->timelineQuery->getTagPreviews(
$tagName,
$tag,
$root,
);

View File

@ -99,8 +99,13 @@ class VideoController extends ApiBase
*
* Return the live video part of a live photo
*/
public function livephoto(string $fileid)
{
public function livephoto(
string $fileid,
string $etag = '',
string $liveid = '',
string $format = '',
string $transcode = ''
) {
$fileid = (int) $fileid;
$files = $this->rootFolder->getById($fileid);
if (0 === \count($files)) {
@ -109,13 +114,11 @@ class VideoController extends ApiBase
$file = $files[0];
// Check file etag
$etag = $file->getEtag();
if ($etag !== $this->request->getParam('etag')) {
if ($etag !== $file->getEtag()) {
return new JSONResponse(['message' => 'File changed'], Http::STATUS_PRECONDITION_FAILED);
}
// Check file liveid
$liveid = $this->request->getParam('liveid');
if (!$liveid) {
return new JSONResponse(['message' => 'Live ID not provided'], Http::STATUS_BAD_REQUEST);
}
@ -163,7 +166,7 @@ class VideoController extends ApiBase
if ($liveFile instanceof File) {
// Requested only JSON info
if ('json' === $this->request->getParam('format')) {
if ('json' === $format) {
return new JSONResponse($lp);
}
@ -171,11 +174,11 @@ class VideoController extends ApiBase
$blob = $liveFile->getContent();
$mime = $liveFile->getMimeType();
if (($id = $this->request->getParam('transcode')) && !$this->config->getSystemValue('memories.no_transcode', true)) {
if ($transcode && !$this->config->getSystemValue('memories.no_transcode', true)) {
// Only Apple uses HEVC for now, so pass this to the transcoder
// If this is H.264 it won't get transcoded anyway
$liveVideoPath = $liveFile->getStorage()->getLocalFile($liveFile->getInternalPath());
if ($this->getUpstream($id, $liveVideoPath, 'max.mov')) {
if ($this->getUpstream($transcode, $liveVideoPath, 'max.mov')) {
exit;
}
}