Files
exchange-2.0/app/Classes/Modules/Wallets/ControllersLogic/CreateWalletLogic.php
T
2020-11-30 06:38:06 +08:00

91 lines
2.8 KiB
PHP

<?php
namespace App\Classes\Modules\Wallets\ControllersLogic;
use App\Classes\General\Abstracts\AbstractControllerLogic;
use App\Classes\Modules\Wallets\DataTransferObjects\WalletObject;
use App\Classes\Modules\Wallets\Services\CreatesWallet;
use App\Http\Resources\WalletResource;
/*
use App\Classes\Modules\Accounts\Standards\Rules\CanCreateUser;
use App\Classes\Modules\Accounts\Services\CreatesUser;
use App\Classes\Modules\Accounts\DataTransferObjects\UserObject;
use App\Http\Resources\UserResource;
use App\Classes\Modules\Companies\Standards\Rules\CanCreateCompany;
use App\Classes\Modules\Companies\Services\CreatesCompany;
use App\Classes\Modules\Companies\DataTransferObjects\CompanyObject;
use App\Classes\Modules\Contacts\Standards\Rules\CanCreateContact;
use App\Classes\Modules\Contacts\Services\CreatesContact;
use App\Classes\Modules\Contacts\DataTransferObjects\ContactObject;
use App\Classes\Modules\CompanyEmployees\Standards\Rules\CanCreateCompanyEmployee;
use App\Classes\Modules\CompanyEmployees\Services\CreatesCompanyEmployee;
use App\Classes\Modules\CompanyEmployees\DataTransferObjects\CompanyEmployeeObject;
use App\Classes\Modules\SegmentCompanies\Standards\Rules\CanCreateSegmentCompany;
use App\Classes\Modules\SegmentCompanies\Services\CreatesSegmentCompany;
use App\Classes\Modules\SegmentCompanies\DataTransferObjects\SegmentCompanyObject;
*/
use ErrorException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class CreateWalletLogic extends AbstractControllerLogic
{
/**
* @return array
*/
protected function notification():array {
return [
'title' => 'Created Company Wallet',
'message' => 'You have successfully created a company wallet'
];
}
private $createsWallet;
public function __construct(
CreatesWallet $createsWallet
)
{
$this->createsWallet= $createsWallet;
}
/**
* @param Request $request
* @return JsonResponse
* @throws ErrorException
*/
public function logic(Request $request) : JsonResponse
{
try {
DB::beginTransaction();
echo $request->input('amount');
echo $request->input('company_id');
$amount = doubleval($request->input('amount'));
$wallet_object = new WalletObject(
$request->input('code'),
$request->input('currency'),
$request->input('amount'),
$request->input('company_id')
);
$wallet_query = $this->createsWallet->execute($wallet_object);
DB::commit();
return $this->resourceResponse(new WalletResource($wallet_query));
} catch (\Exception $exception) {
dd($exception);
throw new ErrorException($exception->getMessage(), $exception->getCode());
}
}
}