mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-05 18:23:48 +00:00
auto expiration for upload request
This commit is contained in:
@@ -10,6 +10,7 @@ use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
|
||||
use Support\Scheduler\Actions\DeleteUnverifiedUsersAction;
|
||||
use Support\Scheduler\Actions\DeleteExpiredShareLinksAction;
|
||||
use App\Console\Commands\GenerateDemoSubscriptionContentCommand;
|
||||
use Support\Scheduler\Actions\ExpireUnfilledUploadRequestAction;
|
||||
|
||||
class Kernel extends ConsoleKernel
|
||||
{
|
||||
@@ -42,6 +43,10 @@ class Kernel extends ConsoleKernel
|
||||
fn () => resolve(DeleteExpiredShareLinksAction::class)()
|
||||
)->everyTenMinutes();
|
||||
|
||||
$schedule->call(
|
||||
fn () => resolve(ExpireUnfilledUploadRequestAction::class)()
|
||||
)->hourly();
|
||||
|
||||
$schedule->call(
|
||||
fn () => resolve(DeleteUnverifiedUsersAction::class)()
|
||||
)->daily()->at('00:05');
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
namespace Support\Scheduler\Actions;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Domain\UploadRequest\Models\UploadRequest;
|
||||
|
||||
class ExpireUnfilledUploadRequestAction
|
||||
{
|
||||
public function __invoke()
|
||||
{
|
||||
UploadRequest::where('status', 'active')
|
||||
->cursor()
|
||||
->each(function ($uploadRequest) {
|
||||
// Get dates
|
||||
$created_at = Carbon::parse($uploadRequest->created_at);
|
||||
|
||||
// If time was over, then expire record
|
||||
if ($created_at->diffInHours(now()) >= 72) {
|
||||
$uploadRequest->update([
|
||||
'status' => 'expired',
|
||||
]);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Domain\UploadRequest;
|
||||
|
||||
use Storage;
|
||||
@@ -9,6 +8,7 @@ use App\Users\Models\User;
|
||||
use Domain\Files\Models\File;
|
||||
use Illuminate\Http\UploadedFile;
|
||||
use Domain\UploadRequest\Models\UploadRequest;
|
||||
use Support\Scheduler\Actions\ExpireUnfilledUploadRequestAction;
|
||||
use Domain\UploadRequest\Notifications\UploadRequestNotification;
|
||||
|
||||
class UploadRequestTest extends TestCase
|
||||
@@ -192,4 +192,22 @@ class UploadRequestTest extends TestCase
|
||||
'status' => 'filled',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_mark_upload_request_as_expired_after_72_hours()
|
||||
{
|
||||
UploadRequest::factory()
|
||||
->create([
|
||||
'status' => 'active',
|
||||
'created_at' => now()->subHours(72),
|
||||
]);
|
||||
|
||||
resolve(ExpireUnfilledUploadRequestAction::class)();
|
||||
|
||||
$this->assertDatabaseHas('upload_requests', [
|
||||
'status' => 'expired',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user