This commit is contained in:
Bozhidar Slaveykov 2024-04-06 20:46:33 +03:00
parent 5a4eb09c55
commit 3594ec3301

View file

@ -6,6 +6,7 @@ use App\ApiSDK\PhyreApiSDK;
use App\Events\ModelPhyreServerCreated;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class PhyreServer extends Model
{
@ -46,6 +47,8 @@ class PhyreServer extends Model
foreach ($getExternalCustomers['data']['customers'] as $externalCustomer) {
$externalCustomerIds[] = $externalCustomer['id'];
}
// Delete customers to main server that are not in external server
foreach ($customerExternalIds as $customerExternalId) {
if (!in_array($customerExternalId, $externalCustomerIds)) {
$getCustomer = Customer::where('external_id', $customerExternalId)->first();
@ -54,6 +57,29 @@ class PhyreServer extends Model
}
}
}
// Add customers to main server from external server
foreach ($getExternalCustomers['data']['customers'] as $externalCustomer) {
$findCustomer = Customer::where('external_id', $externalCustomer['id'])
->where('phyre_server_id', $this->id)
->first();
if (!$findCustomer) {
// Use db table to prevent model events from firing
$customer = DB::table('customers')->insert([
'phyre_server_id' => $this->id,
'external_id' => $externalCustomer['id'],
'name' => $externalCustomer['name'],
'email' => $externalCustomer['email'],
'phone' => $externalCustomer['phone'],
'address' => $externalCustomer['address'],
'city' => $externalCustomer['city'],
'state' => $externalCustomer['state'],
'zip' => $externalCustomer['zip'],
'country' => $externalCustomer['country'],
]);
}
}
}
// // Sync Hosting Plans