45 lines
1.0 KiB
PHP
45 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Actions\ProcessOrderPaymentAction;
|
|
use App\Enums\PaymentModes;
|
|
use App\Http\Requests\PaymentRequest;
|
|
use App\Http\Resources\PaymentResource;
|
|
use App\Models\Order;
|
|
use App\Models\Payment;
|
|
|
|
class PaymentController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
return PaymentResource::collection(Payment::all());
|
|
}
|
|
|
|
public function store(PaymentRequest $request, Order $order, ProcessOrderPaymentAction $action)
|
|
{
|
|
$response = $action->execute($order, PaymentModes::tryFrom($request->mode));
|
|
|
|
return new PaymentResource($response);
|
|
}
|
|
|
|
public function show(Payment $payment)
|
|
{
|
|
return new PaymentResource($payment);
|
|
}
|
|
|
|
public function update(PaymentRequest $request, Payment $payment)
|
|
{
|
|
$payment->update($request->validated());
|
|
|
|
return new PaymentResource($payment);
|
|
}
|
|
|
|
public function destroy(Payment $payment)
|
|
{
|
|
$payment->delete();
|
|
|
|
return response()->json();
|
|
}
|
|
}
|