mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/exchange-2.0.git
synced 2026-08-19 04:23:55 +00:00
registration step 2 front end
This commit is contained in:
@@ -0,0 +1,157 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Accounts\ControllersLogic;
|
||||
|
||||
use App\Http\Resources\UserResource;
|
||||
|
||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||
|
||||
use App\Classes\Modules\Accounts\Services\FetchesUser;
|
||||
|
||||
use App\Classes\Modules\Companies\Standards\Rules\CanUpdateCompany;
|
||||
use App\Classes\Modules\Companies\Services\UpdatesCompany;
|
||||
use App\Classes\Modules\Companies\DataTransferObjects\CompanyObject;
|
||||
|
||||
use App\Classes\Modules\Documents\Standards\Rules\CanCreateDocument;
|
||||
use App\Classes\Modules\Documents\Services\CreatesDocument;
|
||||
use App\Classes\Modules\Documents\DataTransferObjects\DocumentObject;
|
||||
|
||||
use App\Classes\Modules\Documents\Standards\Rules\CanCreateFile;
|
||||
use App\Classes\Modules\Documents\Services\CreatesFile;
|
||||
use App\Classes\Modules\Documents\Services\Convert64ToFile;
|
||||
use App\Classes\Modules\Documents\DataTransferObjects\FileObject;
|
||||
|
||||
use App\Classes\ValueObjects\Constants\OwnerType;
|
||||
use App\Classes\ValueObjects\Constants\DocumentType;
|
||||
use App\Classes\ValueObjects\Constants\ObjectStatus;
|
||||
use App\Classes\ValueObjects\Constants\FileType;
|
||||
|
||||
use ErrorException;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class RegistrationStep2Logic extends AbstractControllerLogic
|
||||
{
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
protected function notification():array {
|
||||
return [
|
||||
'title' => 'Registration Step 2',
|
||||
'message' => 'You have completed registration step 2'
|
||||
];
|
||||
}
|
||||
|
||||
/** @var FetchesUser */
|
||||
private $fetchesUser;
|
||||
|
||||
/** @var CanUpdateCompany */
|
||||
private $canUpdateCompany;
|
||||
|
||||
/** @var UpdatesCompany */
|
||||
private $updatesCompany;
|
||||
|
||||
/** @var CanCreateDocument */
|
||||
private $canCreateDocument;
|
||||
|
||||
/** @var CreatesDocument */
|
||||
private $createsDocument;
|
||||
|
||||
/** @var CanCreateFile */
|
||||
private $canCreateFIle;
|
||||
|
||||
/** @var CreatesFile */
|
||||
private $createsFile;
|
||||
|
||||
/** @var Convert64ToFile */
|
||||
private $convert64ToFile;
|
||||
|
||||
/**
|
||||
* UpdateUserControllerLogic constructor.
|
||||
* @param FetchesUser $fetchesUser
|
||||
* @param CanUpdateCompany $canUpdateCompany
|
||||
* @param UpdatesCompany $updatesCompany
|
||||
* @param CanCreateDocument $canCreateDocument
|
||||
* @param CreatesDocument $createsDocument
|
||||
* @param CanCreateFile $canCreateFile
|
||||
* @param CreatesFile $createsFile
|
||||
*/
|
||||
public function __construct(
|
||||
FetchesUser $fetchesUser,
|
||||
CanUpdateCompany $canUpdateCompany,
|
||||
UpdatesCompany $updatesCompany,
|
||||
CanCreateDocument $canCreateDocument,
|
||||
CreatesDocument $createsDocument,
|
||||
CanCreateFile $canCreateFile,
|
||||
CreatesFile $createsFile,
|
||||
Convert64ToFile $convert64ToFile
|
||||
)
|
||||
{
|
||||
$this->fetchesUser = $fetchesUser;
|
||||
$this->canUpdateCompany = $canUpdateCompany;
|
||||
$this->updatesCompany = $updatesCompany;
|
||||
$this->canCreateDocument = $canCreateDocument;
|
||||
$this->createsDocument = $createsDocument;
|
||||
$this->canCreateFile = $canCreateFile;
|
||||
$this->createsFile = $createsFile;
|
||||
$this->convert64ToFile = $convert64ToFile;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @return JsonResponse
|
||||
* @throws ErrorException
|
||||
*/
|
||||
public function logic(Request $request) : JsonResponse
|
||||
{
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
|
||||
$user_query = $this->fetchesUser->execute(['id' => \Auth::user()->id]);
|
||||
$company_query = $user_query->company()->first();
|
||||
|
||||
$company_object = new CompanyObject(
|
||||
$request->input('company_name', $company_query->name),
|
||||
$request->input('company_reference', $company_query->refence),
|
||||
$request->input('type', $company_query->type)
|
||||
);
|
||||
$this->canUpdateCompany->passes($company_object);
|
||||
$company_query = $this->updatesCompany->execute($company_query, $company_object);
|
||||
|
||||
$document_type = $company_query->type == 1 ? DocumentType::COMPANY_PUBLIC_SMS_REGISTER : DocumentType::COMPANY_PERSONAL_IC;
|
||||
$document_object = new DocumentObject(
|
||||
$user_query->id,
|
||||
OwnerType::COMPANY,
|
||||
$document_type,
|
||||
$request->input('document_reference'),
|
||||
ObjectStatus::PENDING,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null
|
||||
);
|
||||
$this->canCreateDocument->passes($document_object);
|
||||
$document_query = $this->createsDocument->execute($document_object);
|
||||
|
||||
$file = $this->convert64ToFile->convert($request->input('file'));
|
||||
$file_type = $company_query->type == 1 ? FileType::COMPANY_PUBLIC_SMS_REGISTER : FileType::COMPANY_PERSONAL_IC;
|
||||
|
||||
$file_object = new FileObject(
|
||||
$document_query->id,
|
||||
!empty($file[0]) ? json_encode($file[0]) : null,
|
||||
$file_type
|
||||
);
|
||||
$this->canCreateFile->passes($file_object);
|
||||
$file_query = $this->createsFile->execute($file_object);
|
||||
|
||||
DB::commit();
|
||||
|
||||
return $this->resourceResponse(new UserResource(\Auth::user()));
|
||||
|
||||
} catch (\Exception $exception) {
|
||||
throw new ErrorException($exception->getMessage(), $exception->getCode());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -150,7 +150,6 @@ class UpdateUserLogic extends AbstractControllerLogic
|
||||
return $this->resourceResponse(new UserResource(\Auth::user()));
|
||||
|
||||
} catch (\Exception $exception) {
|
||||
dd($exception);
|
||||
throw new ErrorException($exception->getMessage(), $exception->getCode());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user