/
var
/
www
/
html
/
plugin-techloyce
/
Modules
/
Webstores
/
Bridges
/
Upload File
HOME
<?php namespace Modules\Webstores\Bridges; use Illuminate\Http\Request; use Modules\Webstores\Entities\Webstore; use Modules\Webstores\Contracts\ShopifyContract; use Modules\Webstores\Feeders\ShopifySubscriptionFlowFeeder; class ShopifySubscriptionFlowBridge { public $feeder; public $provider; public $identifier; public function initializeBridge(Webstore $identifier) { $this->identifier = $identifier; $this->feeder = resolve('Feeder_Shopify_SubscriptionFlow') ?? false; $this->provider = resolve(ShopifyContract::class); $this->feeder = $this->feeder->setup($identifier); return $this; } public function syncResources() { if($this->feeder !== false && $this->feeder instanceof ShopifySubscriptionFlowFeeder) { // $this->syncProductsAndPlans(); // $this->syncCustomers(); } else { dd('invalid feeder'); } } private function syncProductsAndPlans() { $request = $this->requestBuilder([ 'requiredResource' => 'Products', ]); $products = $this->provider->getResource($request,$this->identifier); if(isset($products['status']) && $products['status'] == true) { $products = $products['data']['response_data']; if(is_array($products) && count(array_filter($products)) > 0) { $response = $this->feeder->feedProducts($products); } } } private function syncCustomers() { $request = $this->requestBuilder([ 'requiredResource' => 'Customers', ]); $customers = $this->provider->getResource($request,$this->identifier); if(isset($customers['status']) && $customers['status'] == true) { $customers = $customers['data']['response_data']; if(is_array($customers) && count(array_filter($customers)) > 0) { $response = $this->feeder->feedCustomers($customers); } } } private function syncOrders() { $request = $this->requestBuilder([ 'requiredResource' => 'Orders', ]); $orders = $this->provider->getResource($request,$this->identifier); if(isset($orders['status']) && $orders['status'] == true) { $orders = $orders['data']['response_data']; if(is_array($orders) && count(array_filter($orders)) > 0) { $response = $this->feeder->feedOrders($orders); } } } private function requestBuilder($array,$method='GET') { $request = new Request($array); // $request->setMethod($method); // $request->request->add($array); return $request; } }