MarkPaidTransaction::class, TransactionEvent::INVOICE_UPDATED => MarkPaidTransaction::class, TransactionEvent::INVOICE_DELETED => MarkPaidTransaction::class, TransactionEvent::INVOICE_PAYMENT_APPLIED => MarkPaidTransaction::class, TransactionEvent::INVOICE_CANCELLED => MarkPaidTransaction::class, TransactionEvent::INVOICE_FEE_APPLIED => MarkPaidTransaction::class, TransactionEvent::PAYMENT_MADE => MarkPaidTransaction::class, TransactionEvent::PAYMENT_APPLIED => MarkPaidTransaction::class, TransactionEvent::PAYMENT_REFUND => MarkPaidTransaction::class, TransactionEvent::PAYMENT_FAILED => MarkPaidTransaction::class, ]; /** * Create a new job instance. * * @return void */ public function __construct($event, $data, $db) { $this->db = $db; $this->event = $event; $this->data = $data; } /** * Execute the job. * * @return void */ public function handle() { if(!Ninja::isHosted()) return; $this->setTransformer(); $this->payload = $this->event_transformer->transform($this->data); $this->persist(); } private function setTransformer() { $class = $this->transformer_array[$this->event]; $this->event_transformer = new $class(); return $this; } private function persist() { MultiDB::setDB($this->db); TransactionEvent::create($this->payload); } }