company_id) ->where('event_id', Webhook::EVENT_CREATE_PRODUCT) ->exists(); if ($subscriptions) WebhookHandler::dispatch(Webhook::EVENT_CREATE_PRODUCT, $product, $product->company)->delay(0); } /** * Handle the product "updated" event. * * @param Product $product * @return void */ public function updated(Product $product) { $event = Webhook::EVENT_UPDATE_PRODUCT; if($product->getOriginal('deleted_at') && !$product->deleted_at) $event = Webhook::EVENT_RESTORE_PRODUCT; if($product->is_deleted) $event = Webhook::EVENT_DELETE_PRODUCT; $subscriptions = Webhook::where('company_id', $product->company_id) ->where('event_id', $event) ->exists(); if ($subscriptions) WebhookHandler::dispatch($event, $product, $product->company)->delay(0); } /** * Handle the product "deleted" event. * * @param Product $product * @return void */ public function deleted(Product $product) { if($product->is_deleted) return; $subscriptions = Webhook::where('company_id', $product->company_id) ->where('event_id', Webhook::EVENT_ARCHIVE_PRODUCT) ->exists(); if ($subscriptions) WebhookHandler::dispatch(Webhook::EVENT_ARCHIVE_PRODUCT, $product, $product->company)->delay(0); } /** * Handle the product "restored" event. * * @param Product $product * @return void */ public function restored(Product $product) { // } /** * Handle the product "force deleted" event. * * @param Product $product * @return void */ public function forceDeleted(Product $product) { // } }