Skip to content

Commit

Permalink
Accessories and blueprints observers
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelnakamura committed May 30, 2022
1 parent c5121bf commit ea43992
Show file tree
Hide file tree
Showing 5 changed files with 206 additions and 0 deletions.
12 changes: 12 additions & 0 deletions src/IssSupernova.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
use Bildvitta\IssSupernova\Resources\CustomerPersonalReferences;
use Bildvitta\IssSupernova\Resources\Customers;
use Bildvitta\IssSupernova\Resources\RealEstateAgencies;
use Bildvitta\IssSupernova\Resources\RealEstateDevelopmentAccessories;
use Bildvitta\IssSupernova\Resources\RealEstateDevelopmentBlueprints;
use Bildvitta\IssSupernova\Resources\RealEstateDevelopmentParameters;
use Bildvitta\IssSupernova\Resources\RealEstateDevelopments;
use Bildvitta\IssSupernova\Contracts\IssSupernovaFactory;
Expand Down Expand Up @@ -125,6 +127,16 @@ public function realEstateDevelopmentTypologies()
return new RealEstateDevelopmentTypologies($this);
}

public function realEstateDevelopmentBlueprints()
{
return new RealEstateDevelopmentBlueprints($this);
}

public function realEstateDevelopmentAccessories()
{
return new RealEstateDevelopmentAccessories($this);
}

public function realEstateAgencies()
{
return new RealEstateAgencies($this);
Expand Down
74 changes: 74 additions & 0 deletions src/Observers/RealEstateDevelopment/AccessoryObserver.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
<?php

namespace Bildvitta\IssSupernova\Observers\RealEstateDevelopment;

use Bildvitta\IssSupernova\IssSupernova;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Log;

class AccessoryObserver
{
public function created($accessory)
{
if (!Config::get('iss-supernova.base_uri')) {
return;
}

$accessory->loadMissing(
'real_estate_development',
'accessory'
);
if ($accessory->real_estate_development) {
$accessory->real_estate_development->loadMissing(
'blueprints'
);
}

$data = $accessory->toArray();
$data['sync_to'] = 'sys';

try {
$issSupernova = new IssSupernova();
$response = $issSupernova->realEstateDevelopmentAccessories()->create($data);
return $response;
} catch (\Throwable $exception) {
Log::error($exception->getMessage());
throw $exception;
}
}

public function updated($accessory)
{
if (!Config::get('iss-supernova.base_uri')) {
return;
}

$accessory->loadMissing(
'real_estate_development',
'accessory'
);
if ($accessory->real_estate_development) {
$accessory->real_estate_development->loadMissing(
'blueprints'
);
}

$data = $accessory->toArray();
$data['sync_to'] = 'sys';

try {
$issSupernova = new IssSupernova();
$response = $issSupernova->realEstateDevelopmentAccessories()->update($data);
return $response;
} catch (\Throwable $exception) {
Log::error($exception->getMessage());
throw $exception;
}
}

public function deleted($accessory)
{
//
}
}
58 changes: 58 additions & 0 deletions src/Observers/RealEstateDevelopment/BlueprintObserver.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
<?php

namespace Bildvitta\IssSupernova\Observers\RealEstateDevelopment;

use Bildvitta\IssSupernova\IssSupernova;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Log;

class BlueprintObserver
{
public function created($blueprint)
{
if (!Config::get('iss-supernova.base_uri')) {
return;
}

$blueprint->loadMissing('real_estate_development');

$data = $blueprint->toArray();
$data['sync_to'] = 'sys';

try {
$issSupernova = new IssSupernova();
$response = $issSupernova->realEstateDevelopmentBlueprints()->create($data);
return $response;
} catch (\Throwable $exception) {
Log::error($exception->getMessage());
throw $exception;
}
}

public function updated($blueprint)
{
if (!Config::get('iss-supernova.base_uri')) {
return;
}

$blueprint->loadMissing('real_estate_development');

$data = $blueprint->toArray();
$data['sync_to'] = 'sys';

try {
$issSupernova = new IssSupernova();
$response = $issSupernova->realEstateDevelopmentBlueprints()->update($data);
return $response;
} catch (\Throwable $exception) {
Log::error($exception->getMessage());
throw $exception;
}
}

public function deleted($blueprint)
{
//
}
}
31 changes: 31 additions & 0 deletions src/Resources/RealEstateDevelopmentAccessories.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?php

namespace Bildvitta\IssSupernova\Resources;

use Bildvitta\IssSupernova\IssSupernova;

class RealEstateDevelopmentAccessories
{
private IssSupernova $issSupernova;

public function __construct(IssSupernova $issSupernova)
{
$this->issSupernova = $issSupernova;
}

public function create($data)
{
return $this->issSupernova->request->post(
'/real-estate-developments/accessories',
$data
)->throw()->object();
}

public function update($data)
{
return $this->issSupernova->request->put(
'/real-estate-developments/accessories',
$data
)->throw()->object();
}
}
31 changes: 31 additions & 0 deletions src/Resources/RealEstateDevelopmentBlueprints.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?php

namespace Bildvitta\IssSupernova\Resources;

use Bildvitta\IssSupernova\IssSupernova;

class RealEstateDevelopmentBlueprints
{
private IssSupernova $issSupernova;

public function __construct(IssSupernova $issSupernova)
{
$this->issSupernova = $issSupernova;
}

public function create($data)
{
return $this->issSupernova->request->post(
'/real-estate-developments/blueprints',
$data
)->throw()->object();
}

public function update($data)
{
return $this->issSupernova->request->put(
'/real-estate-developments/blueprints',
$data
)->throw()->object();
}
}

0 comments on commit ea43992

Please sign in to comment.