client->account); $this->checkSubscriptions(EVENT_CREATE_CLIENT, $event->client, $transformer); } /** * @param QuoteWasCreated $event */ public function createdQuote(QuoteWasCreated $event) { $transformer = new InvoiceTransformer($event->quote->account); $this->checkSubscriptions(EVENT_CREATE_QUOTE, $event->quote, $transformer, ENTITY_CLIENT); } /** * @param PaymentWasCreated $event */ public function createdPayment(PaymentWasCreated $event) { $transformer = new PaymentTransformer($event->payment->account); $this->checkSubscriptions(EVENT_CREATE_PAYMENT, $event->payment, $transformer, [ENTITY_CLIENT, ENTITY_INVOICE]); } /** * @param InvoiceWasCreated $event */ public function createdInvoice(InvoiceWasCreated $event) { $transformer = new InvoiceTransformer($event->invoice->account); $this->checkSubscriptions(EVENT_CREATE_INVOICE, $event->invoice, $transformer, ENTITY_CLIENT); } /** * @param CreditWasCreated $event */ public function createdCredit(CreditWasCreated $event) { } /** * @param VendorWasCreated $event */ public function createdVendor(VendorWasCreated $event) { } /** * @param ExpenseWasCreated $event */ public function createdExpense(ExpenseWasCreated $event) { } /** * @param $eventId * @param $entity * @param $transformer * @param string $include */ private function checkSubscriptions($eventId, $entity, $transformer, $include = '') { if ( ! EntityModel::$notifySubscriptions) { return; } $subscription = $entity->account->getSubscription($eventId); if ($subscription) { $manager = new Manager(); $manager->setSerializer(new ArraySerializer()); $manager->parseIncludes($include); $resource = new Item($entity, $transformer, $entity->getEntityType()); $data = $manager->createData($resource)->toArray(); // For legacy Zapier support if (isset($data['client_id'])) { $data['client_name'] = $entity->client->getDisplayName(); } Utils::notifyZapier($subscription, $data); } } }