update project
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace App\Http\Controllers\Api\V2\Finance;
|
||||
|
||||
use App\Domain\SchoolCore\Context\SchoolContextStore;
|
||||
use App\Domain\SchoolCore\Finance\Contracts\PaymentServiceContract;
|
||||
use App\Http\Requests\Finance\EditPaymentRequest;
|
||||
use App\Http\Requests\Finance\RecordPaymentRequest;
|
||||
use App\Http\Resources\V2\Finance\PaymentResource;
|
||||
use App\Support\Api\ApiResponse;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Routing\Controller;
|
||||
|
||||
final class PaymentController extends Controller
|
||||
{
|
||||
public function __construct(private readonly SchoolContextStore $context, private readonly PaymentServiceContract $payments) {}
|
||||
|
||||
public function store(RecordPaymentRequest $request): JsonResponse
|
||||
{
|
||||
$result = $this->payments->recordPayment($this->context->current(), $request->toDTO());
|
||||
return ApiResponse::success((new PaymentResource($result))->resolve($request), 'Payment recorded.', [], 201);
|
||||
}
|
||||
|
||||
public function update(EditPaymentRequest $request, int $payment): JsonResponse
|
||||
{
|
||||
$result = $this->payments->editPayment($this->context->current(), $payment, $request->toDTO());
|
||||
return ApiResponse::success((new PaymentResource($result))->resolve($request), 'Payment updated.');
|
||||
}
|
||||
|
||||
public function reverse(EditPaymentRequest $request, int $payment): JsonResponse
|
||||
{
|
||||
$result = $this->payments->reversePayment($this->context->current(), $payment, (string) $request->validated('edit_reason', 'Reversed through API'));
|
||||
return ApiResponse::success((new PaymentResource($result))->resolve($request), 'Payment reversed.');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user