Update querying of last uploaded media

This commit is contained in:
Jonny Barnes 2022-11-16 20:30:08 +00:00
parent 07cf1afc1c
commit 027eccfad8
Signed by: jonny
SSH key fingerprint: SHA256:CTuSlns5U7qlD9jqHvtnVmfYV3Zwl2Z7WnJ4/dqOaL8
2 changed files with 30 additions and 21 deletions

View file

@ -13,6 +13,7 @@ use Illuminate\Contracts\Container\BindingResolutionException;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Http\File;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Carbon;
@ -33,11 +34,11 @@ class MicropubMediaController extends Controller
$this->tokenService = $tokenService;
}
public function getHandler(): JsonResponse
public function getHandler(Request $request): JsonResponse
{
try {
$tokenData = $this->tokenService->validateToken(request()->input('access_token'));
} catch (RequiredConstraintsViolated | InvalidTokenStructure $exception) {
$tokenData = $this->tokenService->validateToken($request->input('access_token'));
} catch (RequiredConstraintsViolated | InvalidTokenStructure) {
$micropubResponses = new MicropubResponses();
return $micropubResponses->invalidTokenResponse();
@ -55,19 +56,19 @@ class MicropubMediaController extends Controller
return $micropubResponses->insufficientScopeResponse();
}
if (request()->input('q') === 'last') {
try {
$media = Media::latest()->whereDate('created_at', '>=', Carbon::now()->subMinutes(30))->firstOrFail();
} catch (ModelNotFoundException $exception) {
return response()->json(['url' => null]);
}
if ($request->input('q') === 'last') {
$media = Media::where('created_at', '>=', Carbon::now()->subMinutes(30))
->where('token', $request->input('access_token'))
->latest()
->first();
$mediaUrl = $media?->url;
return response()->json(['url' => $media->url]);
return response()->json(['url' => $mediaUrl]);
}
if (request()->input('q') === 'source') {
$limit = request()->input('limit', 10);
$offset = request()->input('offset', 0);
if ($request->input('q') === 'source') {
$limit = $request->input('limit', 10);
$offset = $request->input('offset', 0);
$media = Media::latest()->offset($offset)->limit($limit)->get();
@ -80,12 +81,12 @@ class MicropubMediaController extends Controller
return response()->json(['items' => $media]);
}
if (request()->has('q')) {
if ($request->has('q')) {
return response()->json([
'error' => 'invalid_request',
'error_description' => sprintf(
'This server does not know how to handle this q parameter (%s)',
request()->input('q')
$request->input('q')
),
], 400);
}