Files
exchange-2.0/app/Classes/Modules/Accounting/ControllersLogic/UpdateBankStatementDetailLogic.php
T

67 lines
2.2 KiB
PHP

<?php
namespace App\Classes\Modules\Accounting\ControllersLogic;
use App\Classes\General\Abstracts\AbstractControllerLogic;
use App\Classes\Modules\Accounting\Services\UpdatesBankStatementDetails;
use App\Classes\Modules\Accounting\Services\FetchesBankStatementDetails;
use App\Classes\Modules\Accounting\Standards\Rules\CanUpdateCompany;
use App\Classes\Modules\Accounting\DataTransferObjects\BankStatementDetailObject;
use App\Http\Resources\BankStatementDetailResource;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use ErrorException;
class UpdateBankStatementDetailLogic extends AbstractControllerLogic
{
/**
* @return array
*/
protected function notification():array {
return [
'title' => 'Updated Bank Statement Transactions Details',
'message' => 'You have successfully updated the Bank Statement Transactions Details'
];
}
// /** @var CanUpdateCompany */
// private $canUpdateCompany;
/** @var UpdatesBankStatementDetails */
private $updatesBankStatementDetails;
/** @var FetchesBankStatementDetails */
private $fetchesBankStatementDetails;
/**
* UpdateBankStatementDetailLogic constructor.
* @param UpdatesBankStatementDetails $updatesBankStatementDetails
* @param FetchesBankStatementDetails $fetchesBankStatementDetails
*/
public function __construct(UpdatesBankStatementDetails $updatesBankStatementDetails, FetchesBankStatementDetails $fetchesBankStatementDetails)
{
$this->updatesBankStatementDetails = $updatesBankStatementDetails;
$this->fetchesBankStatementDetails = $fetchesBankStatementDetails;
}
/**
* @param Request $request
* @return JsonResponse
* @throws ErrorException
*/
public function logic(Request $request) : JsonResponse
{
$object = new BankStatementDetailObject($request->input('pay_for'), $request->input('system_references'));
$query = $this->fetchesBankStatementDetails->execute(['id' => $request->route('id')]);
$query = $this->updatesBankStatementDetails->execute($query, $object);
return $this->resourceResponse(new BankStatementDetailResource($query));
}
}