diff --git a/src/Console/CleanEmails.php b/src/Console/CleanEmails.php index 8cd8e3c..d682313 100644 --- a/src/Console/CleanEmails.php +++ b/src/Console/CleanEmails.php @@ -37,12 +37,9 @@ public function handle() $modelClass::where('created_at', '<', $cutOffDate) ->select('id') - ->chunk(100, function ($models) use ($modelClass) { - foreach ($models as $model) { - $modelInstance = $modelClass::find($model->id); - $modelInstance->delete(); - $this->amountDeleted++; - } + ->eachById(count: 100, callback: function ($model) { + $model->delete(); + $this->amountDeleted++; }); $this->info("Deleted {$this->amountDeleted} record(s) from the Mailbox logs."); diff --git a/tests/Console/CleanEmailsTest.php b/tests/Console/CleanEmailsTest.php index 78f88cd..5f18272 100644 --- a/tests/Console/CleanEmailsTest.php +++ b/tests/Console/CleanEmailsTest.php @@ -23,14 +23,14 @@ public function setUp(): void /** @test */ public function it_can_clean_the_statistics() { - Collection::times(60)->each(function (int $index) { + Collection::times(200)->each(function (int $index) { InboundEmail::forceCreate([ 'message' => Str::random(), 'created_at' => Carbon::now()->subDays($index)->startOfDay(), ]); }); - $this->assertCount(60, InboundEmail::all()); + $this->assertCount(200, InboundEmail::all()); Artisan::call('mailbox:clean'); @@ -46,19 +46,19 @@ public function it_errors_if_max_age_inf() { $this->app['config']->set('mailbox.store_incoming_emails_for_days', INF); - Collection::times(60)->each(function (int $index) { + Collection::times(200)->each(function (int $index) { InboundEmail::forceCreate([ 'message' => Str::random(), 'created_at' => Carbon::now()->subDays($index)->startOfDay(), ]); }); - $this->assertCount(60, InboundEmail::all()); + $this->assertCount(200, InboundEmail::all()); $this->artisan('mailbox:clean') ->expectsOutput('mailbox:clean is disabled because store_incoming_emails_for_days is set to INF.') ->assertExitCode(1); - $this->assertCount(60, InboundEmail::all()); + $this->assertCount(200, InboundEmail::all()); } }