inti 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.');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace App\Http\Controllers\Api\V2\Finance;
|
||||
|
||||
use App\Domain\SchoolCore\Context\SchoolContextStore;
|
||||
use App\Domain\SchoolCore\Finance\Contracts\FinanceFileServiceContract;
|
||||
use App\Http\Requests\Finance\DownloadPaymentFileRequest;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
|
||||
final class PaymentFileController extends Controller
|
||||
{
|
||||
public function __construct(private readonly SchoolContextStore $context, private readonly FinanceFileServiceContract $files) {}
|
||||
|
||||
public function show(DownloadPaymentFileRequest $request, int $payment): BinaryFileResponse
|
||||
{
|
||||
return $this->files->downloadPaymentFile($this->context->current(), $payment, (string) $request->validated('mode', 'download'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user