Add more subscription types

This commit is contained in:
Hillel Coren 2017-12-26 16:35:31 +02:00
parent 25f21eb7d8
commit 4777586dbe
6 changed files with 197 additions and 28 deletions

View File

@ -307,6 +307,17 @@ if (! defined('APP_NAME')) {
define('EVENT_DELETE_QUOTE', 7); define('EVENT_DELETE_QUOTE', 7);
define('EVENT_UPDATE_INVOICE', 8); define('EVENT_UPDATE_INVOICE', 8);
define('EVENT_DELETE_INVOICE', 9); define('EVENT_DELETE_INVOICE', 9);
define('EVENT_UPDATE_CLIENT', 10);
define('EVENT_DELETE_CLIENT', 11);
define('EVENT_DELETE_PAYMENT', 12);
define('EVENT_UPDATE_VENDOR', 13);
define('EVENT_DELETE_VENDOR', 14);
define('EVENT_CREATE_EXPENSE', 15);
define('EVENT_UPDATE_EXPENSE', 16);
define('EVENT_DELETE_EXPENSE', 17);
define('EVENT_CREATE_TASK', 18);
define('EVENT_UPDATE_TASK', 19);
define('EVENT_DELETE_TASK', 20);
define('REQUESTED_PRO_PLAN', 'REQUESTED_PRO_PLAN'); define('REQUESTED_PRO_PLAN', 'REQUESTED_PRO_PLAN');
define('NINJA_ACCOUNT_KEY', env('NINJA_ACCOUNT_KEY', 'zg4ylmzDkdkPOT8yoKQw9LTWaoZJx79h')); define('NINJA_ACCOUNT_KEY', env('NINJA_ACCOUNT_KEY', 'zg4ylmzDkdkPOT8yoKQw9LTWaoZJx79h'));

View File

@ -1,3 +1,4 @@
<?php <?php
namespace App\Events; namespace App\Events;

View File

@ -3,21 +3,33 @@
namespace App\Listeners; namespace App\Listeners;
use App\Events\ClientWasCreated; use App\Events\ClientWasCreated;
use App\Events\CreditWasCreated; use App\Events\ClientWasUpdated;
use App\Events\ClientWasDeleted;
use App\Events\ExpenseWasCreated; use App\Events\ExpenseWasCreated;
use App\Events\ExpenseWasUpdated;
use App\Events\ExpenseWasDeleted;
use App\Events\QuoteItemsWereCreated; use App\Events\QuoteItemsWereCreated;
use App\Events\QuoteItemsWereUpdated; use App\Events\QuoteItemsWereUpdated;
use App\Events\InvoiceWasDeleted; use App\Events\QuoteWasDeleted;
use App\Events\PaymentWasCreated; use App\Events\PaymentWasCreated;
use App\Events\PaymentWasDeleted;
use App\Events\InvoiceItemsWereCreated; use App\Events\InvoiceItemsWereCreated;
use App\Events\InvoiceItemsWereUpdated; use App\Events\InvoiceItemsWereUpdated;
use App\Events\QuoteWasDeleted; use App\Events\InvoiceWasDeleted;
use App\Events\VendorWasCreated; use App\Events\VendorWasCreated;
use App\Events\VendorWasUpdated;
use App\Events\VendorWasDeleted;
use App\Events\TaskWasCreated;
use App\Events\TaskWasUpdated;
use App\Events\TaskWasDeleted;
use App\Models\EntityModel; use App\Models\EntityModel;
use App\Ninja\Serializers\ArraySerializer; use App\Ninja\Serializers\ArraySerializer;
use App\Ninja\Transformers\ClientTransformer; use App\Ninja\Transformers\ClientTransformer;
use App\Ninja\Transformers\InvoiceTransformer; use App\Ninja\Transformers\InvoiceTransformer;
use App\Ninja\Transformers\PaymentTransformer; use App\Ninja\Transformers\PaymentTransformer;
use App\Ninja\Transformers\VendorTransformer;
use App\Ninja\Transformers\ExpenseTransformer;
use App\Ninja\Transformers\TaskTransformer;
use League\Fractal\Manager; use League\Fractal\Manager;
use League\Fractal\Resource\Item; use League\Fractal\Resource\Item;
use Utils; use Utils;
@ -36,6 +48,25 @@ class SubscriptionListener
$this->checkSubscriptions(EVENT_CREATE_CLIENT, $event->client, $transformer); $this->checkSubscriptions(EVENT_CREATE_CLIENT, $event->client, $transformer);
} }
/**
* @param ClientWasUpdated $event
*/
public function updatedClient(ClientWasUpdated $event)
{
$transformer = new ClientTransformer($event->client->account);
$this->checkSubscriptions(EVENT_UPDATE_CLIENT, $event->client, $transformer);
}
/**
* @param ClientWasDeleted $event
*/
public function deletedClient(ClientWasDeleted $event)
{
$transformer = new ClientTransformer($event->client->account);
$this->checkSubscriptions(EVENT_DELETE_CLIENT, $event->client, $transformer);
}
/** /**
* @param PaymentWasCreated $event * @param PaymentWasCreated $event
*/ */
@ -46,25 +77,14 @@ class SubscriptionListener
} }
/** /**
* @param CreditWasCreated $event * @param PaymentWasDeleted $event
*/ */
public function createdCredit(CreditWasCreated $event) public function deletedPayment(PaymentWasDeleted $event)
{ {
$transformer = new PaymentTransformer($event->payment->account);
$this->checkSubscriptions(EVENT_DELETE_PAYMENT, $event->payment, $transformer, [ENTITY_CLIENT, ENTITY_INVOICE]);
} }
/**
* @param VendorWasCreated $event
*/
public function createdVendor(VendorWasCreated $event)
{
}
/**
* @param ExpenseWasCreated $event
*/
public function createdExpense(ExpenseWasCreated $event)
{
}
/** /**
* @param InvoiceWasCreated $event * @param InvoiceWasCreated $event
@ -84,6 +104,16 @@ class SubscriptionListener
$this->checkSubscriptions(EVENT_UPDATE_INVOICE, $event->invoice, $transformer, ENTITY_CLIENT); $this->checkSubscriptions(EVENT_UPDATE_INVOICE, $event->invoice, $transformer, ENTITY_CLIENT);
} }
/**
* @param InvoiceWasDeleted $event
*/
public function deletedInvoice(InvoiceWasDeleted $event)
{
$transformer = new InvoiceTransformer($event->invoice->account);
$this->checkSubscriptions(EVENT_DELETE_INVOICE, $event->invoice, $transformer, ENTITY_CLIENT);
}
/** /**
* @param QuoteWasCreated $event * @param QuoteWasCreated $event
*/ */
@ -102,15 +132,6 @@ class SubscriptionListener
$this->checkSubscriptions(EVENT_UPDATE_QUOTE, $event->quote, $transformer, ENTITY_CLIENT); $this->checkSubscriptions(EVENT_UPDATE_QUOTE, $event->quote, $transformer, ENTITY_CLIENT);
} }
/**
* @param InvoiceWasDeleted $event
*/
public function deletedInvoice(InvoiceWasDeleted $event)
{
$transformer = new InvoiceTransformer($event->invoice->account);
$this->checkSubscriptions(EVENT_DELETE_INVOICE, $event->invoice, $transformer, ENTITY_CLIENT);
}
/** /**
* @param InvoiceWasDeleted $event * @param InvoiceWasDeleted $event
*/ */
@ -120,6 +141,91 @@ class SubscriptionListener
$this->checkSubscriptions(EVENT_DELETE_QUOTE, $event->quote, $transformer, ENTITY_CLIENT); $this->checkSubscriptions(EVENT_DELETE_QUOTE, $event->quote, $transformer, ENTITY_CLIENT);
} }
/**
* @param VendorWasCreated $event
*/
public function createdVendor(VendorWasCreated $event)
{
$transformer = new VendorTransformer($event->vendor->account);
$this->checkSubscriptions(EVENT_CREATE_VENDOR, $event->vendor, $transformer);
}
/**
* @param VendorWasUpdated $event
*/
public function updatedVendor(VendorWasUpdated $event)
{
$transformer = new VendorTransformer($event->vendor->account);
$this->checkSubscriptions(EVENT_UPDATE_VENDOR, $event->vendor, $transformer);
}
/**
* @param VendorWasDeleted $event
*/
public function deletedVendor(VendorWasDeleted $event)
{
$transformer = new VendorTransformer($event->vendor->account);
$this->checkSubscriptions(EVENT_DELETE_VENDOR, $event->vendor, $transformer);
}
/**
* @param ExpenseWasCreated $event
*/
public function createdExpense(ExpenseWasCreated $event)
{
$transformer = new ExpenseTransformer($event->expense->account);
$this->checkSubscriptions(EVENT_CREATE_EXPENSE, $event->expense, $transformer);
}
/**
* @param ExpenseWasUpdated $event
*/
public function updatedExpense(ExpenseWasUpdated $event)
{
$transformer = new ExpenseTransformer($event->expense->account);
$this->checkSubscriptions(EVENT_UPDATE_EXPENSE, $event->expense, $transformer);
}
/**
* @param ExpenseWasDeleted $event
*/
public function deletedExpense(ExpenseWasDeleted $event)
{
$transformer = new ExpenseTransformer($event->expense->account);
$this->checkSubscriptions(EVENT_DELETE_EXPENSE, $event->expense, $transformer);
}
/**
* @param TaskWasCreated $event
*/
public function createdTask(TaskWasCreated $event)
{
$transformer = new TaskTransformer($event->task->account);
$this->checkSubscriptions(EVENT_CREATE_TASK, $event->task, $transformer);
}
/**
* @param TaskWasUpdated $event
*/
public function updatedTask(TaskWasUpdated $event)
{
$transformer = new TaskTransformer($event->task->account);
$this->checkSubscriptions(EVENT_UPDATE_TAK, $event->task, $transformer);
}
/**
* @param TaskWasDeleted $event
*/
public function deletedTask(TaskWasDeleted $event)
{
$transformer = new TaskTransformer($event->task->account);
$this->checkSubscriptions(EVENT_DELETE_TASK, $event->task, $transformer);
}
/** /**
* @param $eventId * @param $eventId
* @param $entity * @param $entity

View File

@ -21,8 +21,12 @@ class EventServiceProvider extends ServiceProvider
'App\Events\ClientWasArchived' => [ 'App\Events\ClientWasArchived' => [
'App\Listeners\ActivityListener@archivedClient', 'App\Listeners\ActivityListener@archivedClient',
], ],
'App\Events\ClientWasUpdated' => [
'App\Listeners\SubscriptionListener@updatedClient',
],
'App\Events\ClientWasDeleted' => [ 'App\Events\ClientWasDeleted' => [
'App\Listeners\ActivityListener@deletedClient', 'App\Listeners\ActivityListener@deletedClient',
'App\Listeners\SubscriptionListener@deletedClient',
], ],
'App\Events\ClientWasRestored' => [ 'App\Events\ClientWasRestored' => [
'App\Listeners\ActivityListener@restoredClient', 'App\Listeners\ActivityListener@restoredClient',
@ -121,6 +125,7 @@ class EventServiceProvider extends ServiceProvider
'App\Listeners\ActivityListener@deletedPayment', 'App\Listeners\ActivityListener@deletedPayment',
'App\Listeners\InvoiceListener@deletedPayment', 'App\Listeners\InvoiceListener@deletedPayment',
'App\Listeners\CreditListener@deletedPayment', 'App\Listeners\CreditListener@deletedPayment',
'App\Listeners\SubscriptionListener@deletedPayment',
], ],
'App\Events\PaymentWasRefunded' => [ 'App\Events\PaymentWasRefunded' => [
'App\Listeners\ActivityListener@refundedPayment', 'App\Listeners\ActivityListener@refundedPayment',
@ -168,9 +173,11 @@ class EventServiceProvider extends ServiceProvider
// Task events // Task events
'App\Events\TaskWasCreated' => [ 'App\Events\TaskWasCreated' => [
'App\Listeners\ActivityListener@createdTask', 'App\Listeners\ActivityListener@createdTask',
'App\Listeners\SubscriptionListener@createdTask',
], ],
'App\Events\TaskWasUpdated' => [ 'App\Events\TaskWasUpdated' => [
'App\Listeners\ActivityListener@updatedTask', 'App\Listeners\ActivityListener@updatedTask',
'App\Listeners\SubscriptionListener@updatedTask',
], ],
'App\Events\TaskWasRestored' => [ 'App\Events\TaskWasRestored' => [
'App\Listeners\ActivityListener@restoredTask', 'App\Listeners\ActivityListener@restoredTask',
@ -180,14 +187,28 @@ class EventServiceProvider extends ServiceProvider
], ],
'App\Events\TaskWasDeleted' => [ 'App\Events\TaskWasDeleted' => [
'App\Listeners\ActivityListener@deletedTask', 'App\Listeners\ActivityListener@deletedTask',
'App\Listeners\SubscriptionListener@deletedTask',
],
// Vendor events
'App\Events\VendorWasCreated' => [
'App\Listeners\SubscriptionListener@createdVendor',
],
'App\Events\VendorWasUpdated' => [
'App\Listeners\SubscriptionListener@updatedVendor',
],
'App\Events\VendorWasDeleted' => [
'App\Listeners\SubscriptionListener@deletedVendor',
], ],
// Expense events // Expense events
'App\Events\ExpenseWasCreated' => [ 'App\Events\ExpenseWasCreated' => [
'App\Listeners\ActivityListener@createdExpense', 'App\Listeners\ActivityListener@createdExpense',
'App\Listeners\SubscriptionListener@createdExpense',
], ],
'App\Events\ExpenseWasUpdated' => [ 'App\Events\ExpenseWasUpdated' => [
'App\Listeners\ActivityListener@updatedExpense', 'App\Listeners\ActivityListener@updatedExpense',
'App\Listeners\SubscriptionListener@updatedExpense',
], ],
'App\Events\ExpenseWasRestored' => [ 'App\Events\ExpenseWasRestored' => [
'App\Listeners\ActivityListener@restoredExpense', 'App\Listeners\ActivityListener@restoredExpense',
@ -197,6 +218,7 @@ class EventServiceProvider extends ServiceProvider
], ],
'App\Events\ExpenseWasDeleted' => [ 'App\Events\ExpenseWasDeleted' => [
'App\Listeners\ActivityListener@deletedExpense', 'App\Listeners\ActivityListener@deletedExpense',
'App\Listeners\SubscriptionListener@deletedExpense',
], ],
'Illuminate\Queue\Events\JobExceptionOccurred' => [ 'Illuminate\Queue\Events\JobExceptionOccurred' => [

View File

@ -2581,6 +2581,17 @@ $LANG = array(
'subscription_event_7' => 'Deleted Quote', 'subscription_event_7' => 'Deleted Quote',
'subscription_event_8' => 'Updated Invoice', 'subscription_event_8' => 'Updated Invoice',
'subscription_event_9' => 'Deleted Invoice', 'subscription_event_9' => 'Deleted Invoice',
'subscription_event_10' => 'Updated Client',
'subscription_event_11' => 'Deleted Client',
'subscription_event_12' => 'Deleted Payment',
'subscription_event_13' => 'Updated Vendor',
'subscription_event_14' => 'Deleted Vendor',
'subscription_event_15' => 'Created Expense',
'subscription_event_16' => 'Updated Expense',
'subscription_event_17' => 'Deleted Expense',
'subscription_event_18' => 'Created Task',
'subscription_event_19' => 'Updated Task',
'subscription_event_20' => 'Deleted Task',
'subscriptions' => 'Subscriptions', 'subscriptions' => 'Subscriptions',
'updated_subscription' => 'Successfully updated subscription', 'updated_subscription' => 'Successfully updated subscription',
'created_subscription' => 'Successfully created subscription', 'created_subscription' => 'Successfully created subscription',

View File

@ -23,6 +23,8 @@
->options([ ->options([
trans('texts.clients') => [ trans('texts.clients') => [
EVENT_CREATE_CLIENT => trans('texts.subscription_event_' . EVENT_CREATE_CLIENT), EVENT_CREATE_CLIENT => trans('texts.subscription_event_' . EVENT_CREATE_CLIENT),
EVENT_UPDATE_CLIENT => trans('texts.subscription_event_' . EVENT_UPDATE_CLIENT),
EVENT_DELETE_CLIENT => trans('texts.subscription_event_' . EVENT_DELETE_CLIENT),
], ],
trans('texts.invoices') => [ trans('texts.invoices') => [
EVENT_CREATE_INVOICE => trans('texts.subscription_event_' . EVENT_CREATE_INVOICE), EVENT_CREATE_INVOICE => trans('texts.subscription_event_' . EVENT_CREATE_INVOICE),
@ -31,12 +33,28 @@
], ],
trans('texts.payments') => [ trans('texts.payments') => [
EVENT_CREATE_PAYMENT => trans('texts.subscription_event_' . EVENT_CREATE_PAYMENT), EVENT_CREATE_PAYMENT => trans('texts.subscription_event_' . EVENT_CREATE_PAYMENT),
EVENT_DELETE_PAYMENT => trans('texts.subscription_event_' . EVENT_DELETE_PAYMENT),
], ],
trans('texts.quotes') => [ trans('texts.quotes') => [
EVENT_CREATE_QUOTE => trans('texts.subscription_event_' . EVENT_CREATE_QUOTE), EVENT_CREATE_QUOTE => trans('texts.subscription_event_' . EVENT_CREATE_QUOTE),
EVENT_UPDATE_QUOTE => trans('texts.subscription_event_' . EVENT_UPDATE_QUOTE), EVENT_UPDATE_QUOTE => trans('texts.subscription_event_' . EVENT_UPDATE_QUOTE),
EVENT_DELETE_QUOTE => trans('texts.subscription_event_' . EVENT_DELETE_QUOTE), EVENT_DELETE_QUOTE => trans('texts.subscription_event_' . EVENT_DELETE_QUOTE),
] ],
trans('texts.tasks') => [
EVENT_CREATE_TASK => trans('texts.subscription_event_' . EVENT_CREATE_TASK),
EVENT_UPDATE_TASK => trans('texts.subscription_event_' . EVENT_UPDATE_TASK),
EVENT_DELETE_TASK => trans('texts.subscription_event_' . EVENT_DELETE_TASK),
],
trans('texts.vendors') => [
EVENT_CREATE_VENDOR => trans('texts.subscription_event_' . EVENT_CREATE_VENDOR),
EVENT_UPDATE_VENDOR => trans('texts.subscription_event_' . EVENT_UPDATE_VENDOR),
EVENT_DELETE_VENDOR => trans('texts.subscription_event_' . EVENT_DELETE_VENDOR),
],
trans('texts.expenses') => [
EVENT_CREATE_EXPENSE => trans('texts.subscription_event_' . EVENT_CREATE_EXPENSE),
EVENT_UPDATE_EXPENSE => trans('texts.subscription_event_' . EVENT_UPDATE_EXPENSE),
EVENT_DELETE_EXPENSE => trans('texts.subscription_event_' . EVENT_DELETE_EXPENSE),
],
]) ])
->label('event') !!} ->label('event') !!}