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());
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Accounts;
|
||||
|
||||
use App\Classes\Modules\Accounts\ControllersLogic\RegistrationStep2Logic;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class RegistrationStep2Controller
|
||||
{
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param RegistrationStep2Logic $logic
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function create(Request $request, RegistrationStep2Logic $logic): JsonResponse {
|
||||
return $logic->execute($request);
|
||||
}
|
||||
}
|
||||
+53
@@ -1131,4 +1131,57 @@
|
||||
.hidden-xs {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.upload-box {
|
||||
width: 250px;
|
||||
/*margin: auto;*/
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.file-container {
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.file-container [type=file] {
|
||||
cursor: inherit;
|
||||
display: block;
|
||||
filter: alpha(opacity=0);
|
||||
min-height: 100%;
|
||||
min-width: 100%;
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
text-align: right;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.file-container {
|
||||
text-align: center;
|
||||
border: 1px dashed #d9d9d9;
|
||||
background: #f3f3f4;
|
||||
/*border-radius: 10px;*/
|
||||
/* float: left; */
|
||||
padding: .5em;
|
||||
}
|
||||
|
||||
.file-container:hover {
|
||||
border-color: #1AB394;
|
||||
}
|
||||
|
||||
.file-container [type=file] {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.upload-img {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.upload-img img {
|
||||
width: 100%;
|
||||
border: 1px solid #d9d9d9;
|
||||
border-top: none;
|
||||
pointer-events: none;
|
||||
}
|
||||
@@ -79,14 +79,11 @@
|
||||
methods:{
|
||||
successHandler(response){
|
||||
localStorage.setItem('user-token', response.payload.access_token);
|
||||
console.log(response.payload.access_token);
|
||||
|
||||
this.$store.dispatch('userAuthentication', {access_token: response.payload.access_token});
|
||||
|
||||
this.error = '';
|
||||
this.$store.dispatch('toggleSection', {name: 'loginSuccess', status: true})
|
||||
setTimeout(function(){
|
||||
// window.location.href = response.payload.redirect_url;
|
||||
window.location.href = response.payload.redirect_url;
|
||||
}, 2000);
|
||||
},
|
||||
errorHandler(error){
|
||||
|
||||
@@ -0,0 +1,122 @@
|
||||
<template>
|
||||
<div class="row p-t-25 text-left">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="b-l b-success p-l-15 m-b-15" style="border-left-width: 3px;">
|
||||
<h6 class="bold all-caps no-margin text-success">Registration Step 2</h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<validation-wrapper-component :validator="$v.parameters.type">
|
||||
<label class="muted">Type</label>
|
||||
<select class="form-control" v-model="parameters.type">
|
||||
<option value="1">Public Company</option>
|
||||
<option value="2">Personal Company</option>
|
||||
</select>
|
||||
</validation-wrapper-component>
|
||||
<validation-wrapper-component :validator="$v.parameters.file">
|
||||
<label class="muted">File</label>
|
||||
<div class="upload-box">
|
||||
<div class="file-container">
|
||||
<i class="fa fa-cloud-upload"></i>
|
||||
<input type='file'
|
||||
@change="onChange"
|
||||
/>
|
||||
</div>
|
||||
<div class="upload-img">
|
||||
<div v-if="preview" v-for="(img, $index) in preview" :key="$index">
|
||||
<img class='img-responsive' alt='' :src="img"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</validation-wrapper-component>
|
||||
<validation-wrapper-component :validator="$v.parameters.document_reference">
|
||||
<label class="muted">Refrence</label>
|
||||
<input class="form-control" name="name" v-model="parameters.document_reference">
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col text-right">
|
||||
<button type="button" class="btn btn-success" @click="submitForm()">Submit</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { required, email, sameAs, numeric } from "vuelidate/lib/validators";
|
||||
export default {
|
||||
props: {
|
||||
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
parameters : {
|
||||
type: '',
|
||||
file: [],
|
||||
document_reference: ''
|
||||
},
|
||||
preview: []
|
||||
}
|
||||
},
|
||||
validations: {
|
||||
parameters: {
|
||||
type: { required },
|
||||
file: { required },
|
||||
document_reference: { required },
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
onChange(e) {
|
||||
let vm = this;
|
||||
let files = e.target.files;
|
||||
|
||||
vm.preview = [];
|
||||
Array.from(files).forEach(file => {
|
||||
vm.preview.push(URL.createObjectURL(file));
|
||||
});
|
||||
|
||||
vm.imageBase64(e.target.files).then(data => {
|
||||
vm.parameters.file = data;
|
||||
});
|
||||
},
|
||||
imageBase64(imgs) {
|
||||
let num = 1;
|
||||
let base = [];
|
||||
let count = imgs.length;
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
Array.from(imgs).forEach(file => {
|
||||
let reader = new FileReader();
|
||||
reader.onload = () => {
|
||||
base.push(reader.result);
|
||||
if (num >= count) {
|
||||
resolve(base);
|
||||
}
|
||||
num++;
|
||||
};
|
||||
reader.readAsDataURL(file);
|
||||
})
|
||||
});
|
||||
},
|
||||
submitForm(){
|
||||
this.submit((this.route('api.account.registration-step-2')), 'post', 'RegistrationSectionStep2', true, true)
|
||||
},
|
||||
errorHandler(){
|
||||
|
||||
},
|
||||
successHandler(){
|
||||
this.crudSuccess();
|
||||
EventBus.$emit('updateAddress')
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,4 @@
|
||||
@extends('layouts.base_login')
|
||||
@section('inner_content')
|
||||
<registration-step-2-form-component ref="registration-step-2" :section="'RegistrationSectionStep2'"></registration-step-2-form-component>
|
||||
@endSection
|
||||
+1
-4
@@ -10,18 +10,15 @@ Route::group(['prefix' => 'account', 'namespace' => 'Accounts', 'as' => 'account
|
||||
Route::post('/attempt', 'UserAuthenticationController@authenticate')->name('attempt');
|
||||
});
|
||||
|
||||
|
||||
|
||||
// Route::group(['prefix' => 'password', 'as' => 'password.'], function () {
|
||||
// Route::post('/forget', 'GeneratePasswordResetController@generate')->name('forget');
|
||||
// Route::post('/reset', 'ResetPasswordController@reset')->name('reset');
|
||||
// });
|
||||
|
||||
|
||||
});
|
||||
|
||||
Route::group(['middleware' => 'valid.token'], function () {
|
||||
Route::post('/registration-setp-2', 'UpdateUserController@update')->name('registration');
|
||||
Route::post('/registration-setp-2', 'RegistrationStep2Controller@create')->name('registration-step-2');
|
||||
});
|
||||
|
||||
Route::post('/registration', 'CreateUserController@create')->name('registration');
|
||||
|
||||
+6
-1
@@ -22,10 +22,15 @@ Route::get('account/registration', function () {
|
||||
return view('pages.accounts.registration');
|
||||
})->name('registration');
|
||||
|
||||
Route::get('account/registration-step-2', function () {
|
||||
return view('pages.accounts.registration_step_2');
|
||||
})->name('registration-step-2');
|
||||
|
||||
|
||||
Route::get('account/password/reset/{token}', function ($token){
|
||||
return view('pages.accounts.authentication.reset_password',['token' => $token]);
|
||||
})->name('account.password.reset');
|
||||
|
||||
route::get('dashboard/', function (){
|
||||
return 'dashboard page here';
|
||||
return redirect()->route('registration-step-2');
|
||||
})->name('dashboard');
|
||||
|
||||
Reference in New Issue
Block a user