Skip to content

Commit 0876e56

Browse files
committed
CancelPromiseAction
1 parent c1d2acc commit 0876e56

File tree

3 files changed

+30
-3
lines changed

3 files changed

+30
-3
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
namespace App\Actions\Promises;
4+
5+
use App\Models\Enums\PrintJobPromiseStatusEnum;
6+
use App\Models\PrintJobPromise;
7+
8+
class CancelPromiseAction
9+
{
10+
public function handle(PrintJobPromise $promise): void
11+
{
12+
if (! in_array(
13+
needle: $promise->status,
14+
haystack: [
15+
PrintJobPromiseStatusEnum::Draft,
16+
PrintJobPromiseStatusEnum::New,
17+
PrintJobPromiseStatusEnum::Ready,
18+
],
19+
)) {
20+
throw new \RuntimeException('Cannot cancel a promise that is not in draft, new or ready state.');
21+
}
22+
23+
$promise->status = PrintJobPromiseStatusEnum::Cancelled;
24+
$promise->save();
25+
}
26+
}

app/Http/Controllers/WebPrintApi/PrintJobPromisesController.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace App\Http\Controllers\WebPrintApi;
44

5+
use App\Actions\Promises\CancelPromiseAction;
56
use App\Actions\Promises\SetPromiseContentAction;
67
use App\Http\Controllers\Controller;
78
use App\Http\Resources\PrintJobPromiseResource;
@@ -181,10 +182,9 @@ public function update(Request $request, PrintJobPromise $promise)
181182
*
182183
* @return \Illuminate\Http\Response
183184
*/
184-
public function destroy(PrintJobPromise $promise)
185+
public function destroy(PrintJobPromise $promise, CancelPromiseAction $cancelPromiseAction)
185186
{
186-
$promise->status = PrintJobPromiseStatusEnum::Cancelled;
187-
$promise->save();
187+
$cancelPromiseAction->handle($promise);
188188

189189
return response()->noContent();
190190
}

database/migrations/2014_04_02_193005_create_translations_table.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public function up(): void
2121
$table->timestamps();
2222
});
2323
}
24+
2425
/**
2526
* Reverse the migrations.
2627
*/

0 commit comments

Comments
 (0)