Skip to content

Commit

Permalink
Merge pull request #21 from bakaphp/feat-find-cobuyer
Browse files Browse the repository at this point in the history
feat: find cobuyer
  • Loading branch information
kaioken authored Mar 12, 2024
2 parents 7dd6c3c + ddc657e commit 91fe5c8
Showing 1 changed file with 41 additions and 59 deletions.
100 changes: 41 additions & 59 deletions src/Leads/Lead.php
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<?php

declare(strict_types=1);

namespace Kanvas\VinSolutions\Leads;
Expand All @@ -19,11 +20,8 @@ class Lead
public int $isOnShowroom = 0;
public int $coBuyerContact = 0;


/**
* Initialize.
*
* @param array $data
*/
public function __construct(array $data)
{
Expand All @@ -40,14 +38,8 @@ public function __construct(array $data)

/**
* Get all the leads for the given dealer.
*
* @param Dealer $dealer
* @param User $user
* @param array $params
*
* @return array
*/
public static function getAll(Dealer $dealer, User $user, array $params = []) : array
public static function getAll(Dealer $dealer, User $user, array $params = []): array
{
$client = new Client($dealer->id, $user->id);
$client->useDigitalShowRoomKey();
Expand All @@ -67,14 +59,8 @@ public static function getAll(Dealer $dealer, User $user, array $params = []) :

/**
* Get a contact by its ID.
*
* @param Dealer $dealer
* @param User $user
* @param int $leadsId
*
* @return self
*/
public static function getById(Dealer $dealer, User $user, int $leadsId) : self
public static function getById(Dealer $dealer, User $user, int $leadsId): self
{
$client = new Client($dealer->id, $user->id);
$client->useDigitalShowRoomKey();
Expand All @@ -92,14 +78,8 @@ public static function getById(Dealer $dealer, User $user, int $leadsId) : self

/**
* Create a new contact.
*
* @param Dealer $dealer
* @param User $user
* @param array $data
*
* @return self
*/
public static function create(Dealer $dealer, User $user, array $data) : self
public static function create(Dealer $dealer, User $user, array $data): self
{
$client = new Client($dealer->id, $user->id);
$data['DealerId'] = $dealer->id;
Expand All @@ -113,8 +93,8 @@ public static function create(Dealer $dealer, User $user, array $data) : self
json_encode($data),
[
'headers' => [
'Content-Type' => 'application/vnd.coxauto.v3+json'
]
'Content-Type' => 'application/vnd.coxauto.v3+json',
],
]
);

Expand All @@ -123,13 +103,8 @@ public static function create(Dealer $dealer, User $user, array $data) : self

/**
* Create a new contact.
*
* @param Dealer $dealer
* @param User $user
*
* @return self
*/
public function update(Dealer $dealer, User $user) : self
public function update(Dealer $dealer, User $user): self
{
$client = new Client($dealer->id, $user->id);

Expand All @@ -145,17 +120,17 @@ public function update(Dealer $dealer, User $user) : self
json_encode($data),
[
'headers' => [
'Content-Type' => 'application/vnd.coxauto.v3+json'
]
'Content-Type' => 'application/vnd.coxauto.v3+json',
],
]
);

$data['LeadId'] = $this->id;

return new self($data);
}


public function addNotes(Dealer $dealer, User $user, string $notes) : self
public function addNotes(Dealer $dealer, User $user, string $notes): self
{
$client = new Client($dealer->id, $user->id);
$client->useDigitalShowRoomKey();
Expand All @@ -170,18 +145,14 @@ public function addNotes(Dealer $dealer, User $user, string $notes) : self
);

$data['LeadId'] = $this->id;

return new self($data);
}

/**
* Start a show room.
*
* @param Dealer $dealer
* @param User $user
*
* @return self
*/
public function startShowRoom(Dealer $dealer, User $user) : self
public function startShowRoom(Dealer $dealer, User $user): self
{
$client = new Client($dealer->id, $user->id);
$client->useDigitalShowRoomKey();
Expand All @@ -200,16 +171,32 @@ public function startShowRoom(Dealer $dealer, User $user) : self
return new self($response);
}

public static function getCoBuyer(Dealer $dealer, User $user, int $leadsId): ?string
{
$client = new Client($dealer->id, $user->id);
$data['DealerId'] = $dealer->id;
$data['UserId'] = $user->id;

$response = $client->get(
'/leads/id/' . $leadsId,
[
'headers' => [
'Accept' => 'application/vnd.coxauto.v3+json',
],
]
);

if (preg_match("/\/id\/(\d+)/", $response['coBuyerContact'], $matches)) {
return $matches[1];
}

return null;
}

/**
* Add a trade in to the vehicle.
*
* @param Dealer $dealer
* @param User $user
* @param array $data
*
* @return array
*/
public function addTradeIn(Dealer $dealer, User $user, array $data) : array
public function addTradeIn(Dealer $dealer, User $user, array $data): array
{
$client = new Client($dealer->id, $user->id);

Expand All @@ -223,8 +210,8 @@ public function addTradeIn(Dealer $dealer, User $user, array $data) : array
json_encode($request),
[
'headers' => [
'Content-Type' => 'application/vnd.coxauto.v1+json'
]
'Content-Type' => 'application/vnd.coxauto.v1+json',
],
]
);

Expand All @@ -233,22 +220,17 @@ public function addTradeIn(Dealer $dealer, User $user, array $data) : array

/**
* Get the list of trade-in vehicles.
*
* @param Dealer $dealer
* @param User $user
*
* @return array
*/
public function getTradeIn(Dealer $dealer, User $user) : array
public function getTradeIn(Dealer $dealer, User $user): array
{
$client = new Client($dealer->id, $user->id);

$response = $client->get(
'/vehicles/trade?leadId=' . $this->id,
[
'headers' => [
'Accept' => 'application/vnd.coxauto.v1+json'
]
'Accept' => 'application/vnd.coxauto.v1+json',
],
]
);

Expand Down

0 comments on commit 91fe5c8

Please sign in to comment.