mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/exchange-2.0.git
synced 2026-08-22 22:13:59 +00:00
76 lines
2.5 KiB
PHP
76 lines
2.5 KiB
PHP
<?php
|
|
|
|
namespace App\Classes\Modules\Accounts\ControllersLogic;
|
|
|
|
use App\Classes\Exceptions\ErrorException;
|
|
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
|
use App\Classes\Modules\Accounts\Processors\CreateUserProcessor;
|
|
use App\Classes\Modules\Accounts\Processors\GenerateEmailVerificationAttemptProcessor;
|
|
use App\Classes\Modules\Companies\DataTransferObjects\EmploymentObject;
|
|
use App\Classes\Modules\Companies\Processors\AssignEmployeeProcessor;
|
|
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
|
use App\Classes\ValueObjects\Constants\RoleTypes;
|
|
use App\Models\User;
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\App;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
class AddNewMemberLogic extends AbstractControllerLogic
|
|
{
|
|
|
|
/**
|
|
* @var AssignEmployeeProcessor
|
|
*/
|
|
private $assignEmployeeProcessor;
|
|
|
|
/** @var CreateUserProcessor */
|
|
private $createUserProcessor;
|
|
/**
|
|
* @var GenerateEmailVerificationAttemptProcessor
|
|
*/
|
|
private $generateEmailVerificationAttemptProcessor;
|
|
|
|
public function notification(): array
|
|
{
|
|
return [
|
|
'title' => 'Updated Email',
|
|
'message' => 'Successfully updated email'
|
|
];
|
|
}
|
|
|
|
|
|
public function __construct(CreateUserProcessor $createUserProcessor, AssignEmployeeProcessor $assignEmployeeProcessor, GenerateEmailVerificationAttemptProcessor $generateEmailVerificationAttemptProcessor)
|
|
{
|
|
$this->createUserProcessor = $createUserProcessor;
|
|
$this->assignEmployeeProcessor = $assignEmployeeProcessor;
|
|
$this->generateEmailVerificationAttemptProcessor = $generateEmailVerificationAttemptProcessor;
|
|
}
|
|
|
|
public function logic(Request $request): JsonResponse
|
|
{
|
|
$new_email = $request->input('name');
|
|
$user = Auth::user();
|
|
$company = $user->company()->first();
|
|
$user->email = $new_email;
|
|
|
|
request()->request->add([
|
|
'name' => $user->name,
|
|
'email' => $new_email,
|
|
'password' => $user->getAuthPassword(),
|
|
'password_confirmation' => $user->getAuthPassword()
|
|
]);
|
|
|
|
/** @var User $user */
|
|
$user = $this->createUserProcessor->execute($request, RoleTypes::USER, ApprovalStatus::PENDING_VERIFICATION);
|
|
|
|
$Object = new EmploymentObject($company, $user);
|
|
$this->assignEmployeeProcessor->execute($Object);
|
|
|
|
$this->generateEmailVerificationAttemptProcessor->execute($user);
|
|
return $this->response([
|
|
'message' => 'test'
|
|
]);
|
|
}
|
|
}
|