33namespace App \Http \Controllers \WebPrintApi ;
44
55use App \Actions \Promises \CancelPromiseAction ;
6+ use App \Actions \Promises \CheckPromiseAbilityToBePrintedAction ;
7+ use App \Actions \Promises \ConvertPromiseToJobAction ;
68use App \Actions \Promises \SetPromiseContentAction ;
79use App \Http \Controllers \Controller ;
810use App \Http \Resources \PrintJobPromiseResource ;
@@ -56,8 +58,12 @@ public function index(Request $request)
5658 *
5759 * @return PrintJobPromiseResource|\Illuminate\Http\Response
5860 */
59- public function store (Request $ request , SetPromiseContentAction $ setPromiseContentAction ): PrintJobPromiseResource
60- {
61+ public function store (
62+ Request $ request ,
63+ SetPromiseContentAction $ setPromiseContentAction ,
64+ ConvertPromiseToJobAction $ convertPromiseToJobAction ,
65+ CheckPromiseAbilityToBePrintedAction $ checkPromiseAbilityToBePrintedAction
66+ ): PrintJobPromiseResource {
6167 /** @var ClientApplication $client_application */
6268 $ client_application = $ request ->user ();
6369
@@ -123,8 +129,8 @@ public function store(Request $request, SetPromiseContentAction $setPromiseConte
123129 $ promise ->save ();
124130 }
125131
126- if ($ promise -> isReadyToPrint ( )) {
127- $ promise -> sendForPrinting ( );
132+ if ($ checkPromiseAbilityToBePrintedAction -> handle ( $ promise , true )) {
133+ $ convertPromiseToJobAction -> handle ( $ promise );
128134 }
129135
130136 $ promise ->load (['AvailablePrinters ' , 'Printer ' , 'PrintJob ' ]);
@@ -149,8 +155,12 @@ public function show(PrintJobPromise $promise): PrintJobPromiseResource
149155 *
150156 * @return \Illuminate\Http\Response
151157 */
152- public function update (Request $ request , PrintJobPromise $ promise )
153- {
158+ public function update (
159+ Request $ request ,
160+ PrintJobPromise $ promise ,
161+ ConvertPromiseToJobAction $ convertPromiseToJobAction ,
162+ CheckPromiseAbilityToBePrintedAction $ checkPromiseAbilityToBePrintedAction
163+ ) {
154164 $ available_printers = $ promise ->AvailablePrinters ()->pluck ('ulid ' );
155165 $ validated = $ request ->validate ([
156166 'status ' => ['nullable ' , 'in:ready ' ],
@@ -170,8 +180,8 @@ public function update(Request $request, PrintJobPromise $promise)
170180
171181 $ promise ->save ();
172182
173- if ($ promise -> isReadyToPrint ( )) {
174- $ promise -> sendForPrinting ( );
183+ if ($ checkPromiseAbilityToBePrintedAction -> handle ( $ promise , true )) {
184+ $ convertPromiseToJobAction -> handle ( $ promise );
175185 }
176186
177187 return response ()->noContent ();
0 commit comments