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) { // } }