Only return media added in last half hour

This commit is contained in:
Jonny Barnes 2020-06-28 16:30:56 +01:00
parent 0dcf1d86b5
commit b764066d98
2 changed files with 17 additions and 1 deletions

View file

@ -11,10 +11,12 @@ use App\Models\Media;
use App\Services\TokenService;
use Exception;
use Illuminate\Contracts\Container\BindingResolutionException;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Http\File;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Response;
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
use Intervention\Image\Exception\NotReadableException;
@ -53,7 +55,11 @@ class MicropubMediaController extends Controller
}
if (request()->input('q') === 'last') {
$media = Media::latest()->firstOrFail();
try {
$media = Media::latest()->whereDate('created_at', '>=', Carbon::now()->subMinutes(30))->firstOrFail();
} catch (ModelNotFoundException $exception) {
return response()->json([], 404);
}
return response()->json(['url' => $media->url]);
}

View file

@ -15,6 +15,16 @@ class MicropubMediaTest extends TestCase
use DatabaseTransactions;
use TestToken;
/** @test */
public function emptyResponseForLastUploadWhenNoneFound()
{
$response = $this->get(
'/api/media?q=last',
['HTTP_Authorization' => 'Bearer ' . $this->getToken()]
);
$response->assertStatus(404);
}
/** @test */
public function clientCanListLastUpload()
{