Include company name and phone number into lead during regirstration

This commit is contained in:
Dillon
2023-02-22 10:36:35 +08:00
parent cb8d808562
commit 8a29f10ef3
4 changed files with 35 additions and 8 deletions
@@ -159,7 +159,9 @@ class CreateCustomerLogic extends AbstractControllerLogic
// $this->createPerfexCRMLeadProcessor->execute($request);
$createLeadPerfexCRMObject = new CreateLeadPerfexCRMObject(
$request->input('name'),
$request->input('email')
$request->input('email'),
$request->input('phone'),
$request->input('type') === CompanyType::COMPANY_BUSINESS ? $request->input('company_name') : $request->input('name')
);
CreatePerfexCRMCustomer::dispatch($createLeadPerfexCRMObject);
}
@@ -13,12 +13,19 @@ class CreateLeadPerfexCRMObject implements DataTransferObject
/** @var string */
private $email;
/** @var string */
private $phone;
public function __construct(string $name, string $email)
/** @var string */
private $companyName;
public function __construct(string $name, string $email, string $phone, string $companyName)
{
$this->name = $name;
$this->email = $email;
$this->phone = $phone;
$this->companyName = $companyName;
}
/**
@@ -37,4 +44,20 @@ class CreateLeadPerfexCRMObject implements DataTransferObject
return $this->email;
}
/**
* @return string
*/
public function getPhone(): string
{
return $this->phone;
}
/**
* @return string
*/
public function getCompanyName(): string
{
return $this->companyName;
}
}
@@ -30,7 +30,7 @@ class CreatePerfexCRMLeadProcessor
* @throws \App\Classes\Exceptions\MalformedRequestException
*/
public function execute(CreateLeadPerfexCRMObject $createLeadPerfexCRMObject) {
return $this->createsPerfexCRMLead->execute($createLeadPerfexCRMObject->getName(), $createLeadPerfexCRMObject->getEmail());
return $this->createsPerfexCRMLead->execute($createLeadPerfexCRMObject);
}
}
@@ -5,20 +5,22 @@ namespace App\Classes\Modules\PerfexCRM\Services;
use Illuminate\Support\Facades\Http;
use App\Classes\Exceptions\MalformedRequestException;
use Illuminate\Support\Facades\Log;
use App\Classes\Modules\PerfexCRM\DataTransferObjects\CreateLeadPerfexCRMObject;
class CreatesPerfexCRMLead
{
/**
* @param string $name
* @param string $email
* @param CreateLeadPerfexCRMObject $createLeadPerfexCRMObject
* @return null|object
* @throws MalformedRequestException
*/
public function execute(string $name, string $email) {
public function execute(CreateLeadPerfexCRMObject $createLeadPerfexCRMObject) {
try{
$data = [
'name' => $name,
'email' => $email,
'name' => $createLeadPerfexCRMObject->getName(),
'email' => $createLeadPerfexCRMObject->getEmail(),
'phonenumber' => $createLeadPerfexCRMObject->getPhone(),
'company' => $createLeadPerfexCRMObject->getCompanyName(),
'source' => 2, //1: Exchange, 2: Shipping Portal
'status' => 2 //2: Lead, 1: Customer
];