Skip to content

Commit a2c0152

Browse files
author
=
committed
upgrade done
1 parent 7b6359b commit a2c0152

File tree

7 files changed

+79
-60
lines changed

7 files changed

+79
-60
lines changed

database/factories/ExportFactory.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace LaravelEnso\DataExport\Database\Factories;
44

55
use Illuminate\Database\Eloquent\Factories\Factory;
6-
use LaravelEnso\DataExport\Enums\Statuses;
6+
use LaravelEnso\DataExport\Enums\Status;
77
use LaravelEnso\DataExport\Models\Export;
88

99
class ExportFactory extends Factory
@@ -16,7 +16,7 @@ public function definition()
1616
'name' => null,
1717
'entries' => 0,
1818
'total' => 0,
19-
'status' => Statuses::Waiting,
19+
'status' => Status::Waiting->value,
2020
];
2121
}
2222
}

src/Commands/Purge.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace LaravelEnso\DataExport\Commands;
44

55
use Illuminate\Console\Command;
6-
use LaravelEnso\DataExport\Enums\Statuses;
6+
use LaravelEnso\DataExport\Enums\Status;
77
use LaravelEnso\DataExport\Models\Export;
88

99
class Purge extends Command
@@ -15,7 +15,7 @@ class Purge extends Command
1515
public function handle()
1616
{
1717
Export::expired()->notDeletable()
18-
->update(['status' => Statuses::Cancelled]);
18+
->update(['status' => Status::Cancelled->value]);
1919

2020
Export::expired()->deletable()->get()->each->delete();
2121
}

src/EnumServiceProvider.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@
22

33
namespace LaravelEnso\DataExport;
44

5-
use LaravelEnso\DataExport\Enums\Statuses;
65
use LaravelEnso\Enums\EnumServiceProvider as ServiceProvider;
76

87
class EnumServiceProvider extends ServiceProvider
98
{
109
public $register = [
11-
'exportStatuses' => Statuses::class,
1210
];
1311
}

src/Enums/Status.php

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
<?php
2+
3+
namespace LaravelEnso\DataExport\Enums;
4+
5+
use LaravelEnso\Enums\Contracts\Frontend;
6+
use LaravelEnso\Enums\Contracts\Mappable;
7+
8+
enum Status: int implements Mappable, Frontend
9+
{
10+
case Waiting = 10;
11+
case Processing = 20;
12+
case Finalized = 30;
13+
case Cancelled = 40;
14+
case Failed = 50;
15+
16+
public function map(): string
17+
{
18+
return match ($this) {
19+
self::Waiting => 'waiting',
20+
self::Processing => 'processing',
21+
self::Finalized => 'finalized',
22+
self::Cancelled => 'cancelled',
23+
self::Failed => 'failed',
24+
};
25+
}
26+
27+
public function isRunning(): bool
28+
{
29+
return match ($this) {
30+
self::Waiting->value => true,
31+
self::Processing->value => true,
32+
self::Finalized->value => false,
33+
self::Cancelled->value => false,
34+
self::Failed->value => false,
35+
};
36+
}
37+
38+
public function isDeletable(): bool
39+
{
40+
return match ($this) {
41+
self::Waiting => false,
42+
self::Processing => false,
43+
self::Finalized => true,
44+
self::Cancelled => true,
45+
self::Failed => true,
46+
};
47+
}
48+
49+
public static function registerBy(): string
50+
{
51+
return 'exportStatuses';
52+
}
53+
54+
public static function deletable(): array
55+
{
56+
return [self::Finalized->value, self::Cancelled->value, self::Failed->value];
57+
}
58+
}

src/Enums/Statuses.php

Lines changed: 0 additions & 37 deletions
This file was deleted.

src/Models/Export.php

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
use Illuminate\Support\Str;
1414
use LaravelEnso\DataExport\Contracts\CustomCount;
1515
use LaravelEnso\DataExport\Contracts\ExportsExcel as AsyncExcel;
16-
use LaravelEnso\DataExport\Enums\Statuses;
16+
use LaravelEnso\DataExport\Enums\Status;
1717
use LaravelEnso\DataExport\Exceptions\Exception;
1818
use LaravelEnso\DataExport\Notifications\ExportDone;
1919
use LaravelEnso\DataExport\Services\ExcelExport as AsyncExporter;
@@ -57,39 +57,39 @@ public function cancel(): void
5757
throw Exception::cannotBeCancelled();
5858
}
5959

60-
$this->update(['status' => Statuses::Cancelled]);
60+
$this->update(['status' => Status::Cancelled->value]);
6161
}
6262

6363
public function cancelled(): bool
6464
{
65-
return $this->status === Statuses::Cancelled;
65+
return $this->status === Status::Cancelled->value;
6666
}
6767

6868
public function failed(): bool
6969
{
70-
return $this->status === Statuses::Failed;
70+
return $this->status === Status::Failed->value;
7171
}
7272

7373
public function running(): bool
7474
{
75-
return in_array($this->status, Statuses::running());
75+
return Status::from($this->status)->isRunning();
7676
}
7777

7878
public function finalized(): bool
7979
{
80-
return $this->status === Statuses::Finalized;
80+
return $this->status === Status::Finalized->value;
8181
}
8282

8383
public function operationType(): int
8484
{
85-
return IOTypes::Export;
85+
return IOTypes::Export; //TODO upgrade when IO package is upgraded
8686
}
8787

8888
public function status(): int
8989
{
9090
return $this->running()
9191
? $this->status
92-
: Statuses::Finalized;
92+
: Status::Finalized->value;
9393
}
9494

9595
public function progress(): ?int
@@ -150,7 +150,7 @@ private static function syncExcel(SyncExcel $exporter): self
150150
{
151151
$export = self::factory()->create([
152152
'name' => $exporter->filename(),
153-
'status' => Statuses::Processing,
153+
'status' => Status::Processing->value,
154154
'total' => 0,
155155
]);
156156

@@ -178,7 +178,7 @@ private static function syncExcel(SyncExcel $exporter): self
178178

179179
$file = File::attach(...$args);
180180

181-
$export->fill(['status' => Statuses::Finalized])
181+
$export->fill(['status' => Status::Finalized->value])
182182
->file()->associate($file)
183183
->save();
184184

@@ -201,7 +201,7 @@ public function updateProgress(int $entries)
201201

202202
public function delete()
203203
{
204-
if (! Statuses::isDeletable($this->status)) {
204+
if (! Status::from($this->status)->isDeletable()) {
205205
throw Exception::deleteRunningExport();
206206
}
207207

@@ -222,11 +222,11 @@ public function scopeExpired(Builder $query): Builder
222222

223223
public function scopeDeletable(Builder $query): Builder
224224
{
225-
return $query->whereIn('status', Statuses::deletable());
225+
return $query->whereIn('status', Status::deletable());
226226
}
227227

228228
public function scopeNotDeletable(Builder $query): Builder
229229
{
230-
return $query->whereNotIn('status', Statuses::deletable());
230+
return $query->whereNotIn('status', Status::deletable());
231231
}
232232
}

src/Services/ExcelExport.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
use LaravelEnso\DataExport\Contracts\CustomRowAction;
1212
use LaravelEnso\DataExport\Contracts\ExportsExcel;
1313
use LaravelEnso\DataExport\Contracts\Notifies;
14-
use LaravelEnso\DataExport\Enums\Statuses;
14+
use LaravelEnso\DataExport\Enums\Status;
1515
use LaravelEnso\DataExport\Models\Export;
1616
use LaravelEnso\DataExport\Notifications\ExportDone;
1717
use LaravelEnso\DataExport\Notifications\ExportError;
@@ -89,7 +89,7 @@ private function initWriter(): self
8989

9090
private function start(): self
9191
{
92-
$this->export->update(['status' => Statuses::Processing]);
92+
$this->export->update(['status' => Status::Processing->value]);
9393

9494
return $this;
9595
}
@@ -174,7 +174,7 @@ private function finalize(): self
174174

175175
$file = File::attach(...$args);
176176

177-
$this->export->fill(['status' => Statuses::Finalized])
177+
$this->export->fill(['status' => Status::Finalized->value])
178178
->file()->associate($file)
179179
->save();
180180

@@ -243,7 +243,7 @@ private function emailSubject(): string
243243

244244
private function failed(): void
245245
{
246-
$this->export->update(['status' => Statuses::Failed]);
246+
$this->export->update(['status' => Status::Failed->value]);
247247
Storage::delete($this->path());
248248
$this->notifyError();
249249
$this->closeWriter();

0 commit comments

Comments
 (0)