mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-06-01 01:24:36 -04:00
Refactor for observers
This commit is contained in:
parent
399b397ecf
commit
b8d97a69a2
@ -47,27 +47,27 @@ class Handler extends ExceptionHandler
|
|||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $dontReport = [
|
protected $dontReport = [
|
||||||
PDOException::class,
|
// PDOException::class,
|
||||||
MaxAttemptsExceededException::class,
|
// MaxAttemptsExceededException::class,
|
||||||
CommandNotFoundException::class,
|
// CommandNotFoundException::class,
|
||||||
ValidationException::class,
|
// ValidationException::class,
|
||||||
ModelNotFoundException::class,
|
// ModelNotFoundException::class,
|
||||||
NotFoundHttpException::class,
|
// NotFoundHttpException::class,
|
||||||
];
|
];
|
||||||
|
|
||||||
protected $selfHostDontReport = [
|
protected $selfHostDontReport = [
|
||||||
FilePermissionsFailure::class,
|
// FilePermissionsFailure::class,
|
||||||
PDOException::class,
|
// PDOException::class,
|
||||||
MaxAttemptsExceededException::class,
|
// MaxAttemptsExceededException::class,
|
||||||
CommandNotFoundException::class,
|
// CommandNotFoundException::class,
|
||||||
ValidationException::class,
|
// ValidationException::class,
|
||||||
ModelNotFoundException::class,
|
// ModelNotFoundException::class,
|
||||||
NotFoundHttpException::class,
|
// NotFoundHttpException::class,
|
||||||
UnableToCreateDirectory::class,
|
// UnableToCreateDirectory::class,
|
||||||
GuzzleHttp\Exception\ConnectException::class,
|
// GuzzleHttp\Exception\ConnectException::class,
|
||||||
Symfony\Component\Process\Exception\RuntimeException::class,
|
// Symfony\Component\Process\Exception\RuntimeException::class,
|
||||||
InvalidArgumentException::class,
|
// InvalidArgumentException::class,
|
||||||
RuntimeException::class,
|
// RuntimeException::class,
|
||||||
];
|
];
|
||||||
|
|
||||||
protected $hostedDontReport = [
|
protected $hostedDontReport = [
|
||||||
|
@ -422,16 +422,6 @@ class InvoiceController extends BaseController
|
|||||||
|
|
||||||
event(new InvoiceWasUpdated($invoice, $invoice->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null)));
|
event(new InvoiceWasUpdated($invoice, $invoice->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null)));
|
||||||
|
|
||||||
// $transaction = [
|
|
||||||
// 'invoice' => $invoice->transaction_event(),
|
|
||||||
// 'payment' => [],
|
|
||||||
// 'client' => $invoice->client->transaction_event(),
|
|
||||||
// 'credit' => [],
|
|
||||||
// 'metadata' => [],
|
|
||||||
// ];
|
|
||||||
|
|
||||||
// TransactionLog::dispatch(TransactionEvent::INVOICE_UPDATED, $transaction, $invoice->company->db);
|
|
||||||
|
|
||||||
return $this->itemResponse($invoice);
|
return $this->itemResponse($invoice);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -160,9 +160,5 @@ class AdjustProductInventory implements ShouldQueue
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// $nmo->to_user = $this->company->owner();
|
|
||||||
|
|
||||||
// NinjaMailerJob::dispatch($nmo);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -131,7 +131,7 @@ class UpdateOrCreateProduct implements ShouldQueue
|
|||||||
$product->company_id = $this->invoice->company_id;
|
$product->company_id = $this->invoice->company_id;
|
||||||
$product->project_id = $this->invoice->project_id;
|
$product->project_id = $this->invoice->project_id;
|
||||||
$product->vendor_id = $this->invoice->vendor_id;
|
$product->vendor_id = $this->invoice->vendor_id;
|
||||||
$product->save();
|
$product->saveQuietly();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,11 +15,14 @@ use App\Jobs\Util\SystemLogger;
|
|||||||
use App\Libraries\MultiDB;
|
use App\Libraries\MultiDB;
|
||||||
use App\Models\Client as ClientModel;
|
use App\Models\Client as ClientModel;
|
||||||
use App\Models\Company;
|
use App\Models\Company;
|
||||||
|
use App\Models\Product;
|
||||||
use App\Models\SystemLog;
|
use App\Models\SystemLog;
|
||||||
use App\Models\Webhook;
|
use App\Models\Webhook;
|
||||||
use App\Transformers\ArraySerializer;
|
use App\Transformers\ArraySerializer;
|
||||||
use GuzzleHttp\Client;
|
use GuzzleHttp\Client;
|
||||||
use GuzzleHttp\Exception\BadResponseException;
|
use GuzzleHttp\Exception\BadResponseException;
|
||||||
|
use GuzzleHttp\Exception\ClientException;
|
||||||
|
use GuzzleHttp\Exception\ServerException;
|
||||||
use GuzzleHttp\RequestOptions;
|
use GuzzleHttp\RequestOptions;
|
||||||
use Illuminate\Bus\Queueable;
|
use Illuminate\Bus\Queueable;
|
||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
@ -28,8 +31,6 @@ use Illuminate\Queue\InteractsWithQueue;
|
|||||||
use Illuminate\Queue\SerializesModels;
|
use Illuminate\Queue\SerializesModels;
|
||||||
use League\Fractal\Manager;
|
use League\Fractal\Manager;
|
||||||
use League\Fractal\Resource\Item;
|
use League\Fractal\Resource\Item;
|
||||||
use GuzzleHttp\Exception\ClientException;
|
|
||||||
use GuzzleHttp\Exception\ServerException;
|
|
||||||
|
|
||||||
class WebhookSingle implements ShouldQueue
|
class WebhookSingle implements ShouldQueue
|
||||||
{
|
{
|
||||||
@ -78,9 +79,15 @@ class WebhookSingle implements ShouldQueue
|
|||||||
MultiDB::setDb($this->db);
|
MultiDB::setDb($this->db);
|
||||||
|
|
||||||
$subscription = Webhook::with('company')->find($this->subscription_id);
|
$subscription = Webhook::with('company')->find($this->subscription_id);
|
||||||
|
|
||||||
|
if($subscription)
|
||||||
|
nlog("firing event ID {$subscription->event_id}");
|
||||||
|
|
||||||
if(!$subscription){
|
if(!$subscription){
|
||||||
$this->fail();
|
$this->fail();
|
||||||
|
|
||||||
|
nlog("failed to fire event, could not find webhook ID {$this->subscription_id}");
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -237,17 +244,19 @@ class WebhookSingle implements ShouldQueue
|
|||||||
private function resolveClient()
|
private function resolveClient()
|
||||||
{
|
{
|
||||||
//make sure it isn't an instance of the Client Model
|
//make sure it isn't an instance of the Client Model
|
||||||
if ((! $this->entity instanceof ClientModel) && $this->entity->client()->exists()) {
|
if (! $this->entity instanceof ClientModel && ! $this->entity instanceof Product && $this->entity->client()->exists()) {
|
||||||
return $this->entity->client;
|
return $this->entity->client;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->company->clients()->first();
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function failed($exception = null)
|
public function failed($exception = null)
|
||||||
{
|
{
|
||||||
if($exception)
|
if($exception){
|
||||||
|
nlog("failed in webhooksingle");
|
||||||
nlog($exception->getMessage());
|
nlog($exception->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,21 +38,18 @@ class CreateInvoicePdf implements ShouldQueue
|
|||||||
|
|
||||||
if (isset($event->invoice)) {
|
if (isset($event->invoice)) {
|
||||||
$event->invoice->invitations->each(function ($invitation) {
|
$event->invoice->invitations->each(function ($invitation) {
|
||||||
// CreateEntityPdf::dispatch($invitation->load('invoice', 'contact.client.company'));
|
|
||||||
(new CreateEntityPdf($invitation->load('invoice', 'contact.client.company')))->handle();
|
(new CreateEntityPdf($invitation->load('invoice', 'contact.client.company')))->handle();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($event->quote)) {
|
if (isset($event->quote)) {
|
||||||
$event->quote->invitations->each(function ($invitation) {
|
$event->quote->invitations->each(function ($invitation) {
|
||||||
// CreateEntityPdf::dispatch($invitation->load('quote', 'contact.client.company'));
|
|
||||||
(new CreateEntityPdf($invitation->load('quote', 'contact.client.company')))->handle();
|
(new CreateEntityPdf($invitation->load('quote', 'contact.client.company')))->handle();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($event->credit)) {
|
if (isset($event->credit)) {
|
||||||
$event->credit->invitations->each(function ($invitation) {
|
$event->credit->invitations->each(function ($invitation) {
|
||||||
// CreateEntityPdf::dispatch($invitation->load('credit', 'contact.client.company'));
|
|
||||||
(new CreateEntityPdf($invitation->load('credit', 'contact.client.company')))->handle();
|
(new CreateEntityPdf($invitation->load('credit', 'contact.client.company')))->handle();
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@ -212,7 +212,7 @@ class Quote extends BaseModel
|
|||||||
$this->invitations->each(function ($invitation) {
|
$this->invitations->each(function ($invitation) {
|
||||||
if (! isset($invitation->sent_date)) {
|
if (! isset($invitation->sent_date)) {
|
||||||
$invitation->sent_date = Carbon::now();
|
$invitation->sent_date = Carbon::now();
|
||||||
$invitation->save();
|
$invitation->saveQuietly();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -18,11 +18,11 @@ class Webhook extends BaseModel
|
|||||||
use SoftDeletes;
|
use SoftDeletes;
|
||||||
use Filterable;
|
use Filterable;
|
||||||
|
|
||||||
const EVENT_CREATE_CLIENT = 1;
|
const EVENT_CREATE_CLIENT = 1; //tested
|
||||||
|
|
||||||
const EVENT_CREATE_INVOICE = 2;
|
const EVENT_CREATE_INVOICE = 2; //tested
|
||||||
|
|
||||||
const EVENT_CREATE_QUOTE = 3;
|
const EVENT_CREATE_QUOTE = 3; //tested
|
||||||
|
|
||||||
const EVENT_CREATE_PAYMENT = 4;
|
const EVENT_CREATE_PAYMENT = 4;
|
||||||
|
|
||||||
@ -32,9 +32,9 @@ class Webhook extends BaseModel
|
|||||||
|
|
||||||
const EVENT_DELETE_QUOTE = 7;
|
const EVENT_DELETE_QUOTE = 7;
|
||||||
|
|
||||||
const EVENT_UPDATE_INVOICE = 8;
|
const EVENT_UPDATE_INVOICE = 8; //tested
|
||||||
|
|
||||||
const EVENT_DELETE_INVOICE = 9;
|
const EVENT_DELETE_INVOICE = 9; //tested
|
||||||
|
|
||||||
const EVENT_UPDATE_CLIENT = 10;
|
const EVENT_UPDATE_CLIENT = 10;
|
||||||
|
|
||||||
@ -82,7 +82,7 @@ class Webhook extends BaseModel
|
|||||||
|
|
||||||
const EVENT_ARCHIVE_PAYMENT = 32;
|
const EVENT_ARCHIVE_PAYMENT = 32;
|
||||||
|
|
||||||
const EVENT_ARCHIVE_INVOICE = 33;
|
const EVENT_ARCHIVE_INVOICE = 33; //tested
|
||||||
|
|
||||||
const EVENT_ARCHIVE_QUOTE = 34;
|
const EVENT_ARCHIVE_QUOTE = 34;
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ use App\Models\Webhook;
|
|||||||
|
|
||||||
class ClientObserver
|
class ClientObserver
|
||||||
{
|
{
|
||||||
|
public $afterCommit = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle the client "created" event.
|
* Handle the client "created" event.
|
||||||
|
@ -19,6 +19,9 @@ use App\Models\Webhook;
|
|||||||
|
|
||||||
class CreditObserver
|
class CreditObserver
|
||||||
{
|
{
|
||||||
|
|
||||||
|
public $afterCommit = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle the client "created" event.
|
* Handle the client "created" event.
|
||||||
*
|
*
|
||||||
|
@ -17,6 +17,8 @@ use App\Models\Webhook;
|
|||||||
|
|
||||||
class ExpenseObserver
|
class ExpenseObserver
|
||||||
{
|
{
|
||||||
|
public $afterCommit = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle the expense "created" event.
|
* Handle the expense "created" event.
|
||||||
*
|
*
|
||||||
|
@ -17,6 +17,9 @@ use App\Models\Webhook;
|
|||||||
|
|
||||||
class PaymentObserver
|
class PaymentObserver
|
||||||
{
|
{
|
||||||
|
|
||||||
|
public $afterCommit = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle the payment "created" event.
|
* Handle the payment "created" event.
|
||||||
*
|
*
|
||||||
|
@ -17,6 +17,9 @@ use App\Models\Webhook;
|
|||||||
|
|
||||||
class ProductObserver
|
class ProductObserver
|
||||||
{
|
{
|
||||||
|
|
||||||
|
public $afterCommit = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle the product "created" event.
|
* Handle the product "created" event.
|
||||||
*
|
*
|
||||||
|
@ -17,6 +17,9 @@ use App\Models\Webhook;
|
|||||||
|
|
||||||
class PurchaseOrderObserver
|
class PurchaseOrderObserver
|
||||||
{
|
{
|
||||||
|
|
||||||
|
public $afterCommit = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle the client "created" event.
|
* Handle the client "created" event.
|
||||||
*
|
*
|
||||||
|
@ -17,6 +17,9 @@ use App\Models\Webhook;
|
|||||||
|
|
||||||
class QuoteObserver
|
class QuoteObserver
|
||||||
{
|
{
|
||||||
|
|
||||||
|
public $afterCommit = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle the quote "created" event.
|
* Handle the quote "created" event.
|
||||||
*
|
*
|
||||||
@ -42,7 +45,7 @@ class QuoteObserver
|
|||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function updated(Quote $quote)
|
public function updated(Quote $quote)
|
||||||
{
|
{nlog("updated");
|
||||||
|
|
||||||
$event = Webhook::EVENT_UPDATE_QUOTE;
|
$event = Webhook::EVENT_UPDATE_QUOTE;
|
||||||
|
|
||||||
|
@ -17,6 +17,9 @@ use App\Models\Webhook;
|
|||||||
|
|
||||||
class TaskObserver
|
class TaskObserver
|
||||||
{
|
{
|
||||||
|
|
||||||
|
public $afterCommit = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle the task "created" event.
|
* Handle the task "created" event.
|
||||||
*
|
*
|
||||||
|
@ -17,6 +17,9 @@ use App\Models\Webhook;
|
|||||||
|
|
||||||
class VendorObserver
|
class VendorObserver
|
||||||
{
|
{
|
||||||
|
|
||||||
|
public $afterCommit = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle the vendor "created" event.
|
* Handle the vendor "created" event.
|
||||||
*
|
*
|
||||||
|
@ -231,8 +231,9 @@ class BaseRepository
|
|||||||
$invitation_class = sprintf('App\\Models\\%sInvitation', $resource);
|
$invitation_class = sprintf('App\\Models\\%sInvitation', $resource);
|
||||||
$invitation = $invitation_class::where('key', $invitation)->first();
|
$invitation = $invitation_class::where('key', $invitation)->first();
|
||||||
|
|
||||||
if ($invitation)
|
if ($invitation){
|
||||||
$invitation->delete();
|
$invitation->delete();
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -257,7 +258,6 @@ class BaseRepository
|
|||||||
->first();
|
->first();
|
||||||
|
|
||||||
if ($new_invitation && $new_invitation->trashed()) {
|
if ($new_invitation && $new_invitation->trashed()) {
|
||||||
|
|
||||||
$new_invitation->restore();
|
$new_invitation->restore();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -267,7 +267,7 @@ class BaseRepository
|
|||||||
$new_invitation->{$lcfirst_resource_id} = $model->id;
|
$new_invitation->{$lcfirst_resource_id} = $model->id;
|
||||||
$new_invitation->client_contact_id = $contact->id;
|
$new_invitation->client_contact_id = $contact->id;
|
||||||
$new_invitation->key = $this->createDbHash($model->company->db);
|
$new_invitation->key = $this->createDbHash($model->company->db);
|
||||||
$new_invitation->save();
|
$new_invitation->saveQuietly();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -350,7 +350,6 @@ class BaseRepository
|
|||||||
|
|
||||||
$model = $model->calc()->getQuote();
|
$model = $model->calc()->getQuote();
|
||||||
|
|
||||||
|
|
||||||
if($this->new_model)
|
if($this->new_model)
|
||||||
event('eloquent.created: App\Models\Quote', $model);
|
event('eloquent.created: App\Models\Quote', $model);
|
||||||
else
|
else
|
||||||
@ -371,9 +370,7 @@ class BaseRepository
|
|||||||
event('eloquent.updated: App\Models\RecurringInvoice', $model);
|
event('eloquent.updated: App\Models\RecurringInvoice', $model);
|
||||||
}
|
}
|
||||||
|
|
||||||
$model->save();
|
$model->saveQuietly();
|
||||||
|
|
||||||
// nlog("save time = ". microtime(true) - $start);
|
|
||||||
|
|
||||||
return $model->fresh();
|
return $model->fresh();
|
||||||
}
|
}
|
||||||
|
@ -156,8 +156,8 @@ class MarkInvoiceDeleted extends AbstractService
|
|||||||
$this->invoice->number = $number;
|
$this->invoice->number = $number;
|
||||||
|
|
||||||
//wipe references to invoices from related entities.
|
//wipe references to invoices from related entities.
|
||||||
$this->invoice->tasks()->update(['invoice_id' => null]);
|
$this->invoice->tasks()->updateQuietly(['invoice_id' => null]);
|
||||||
$this->invoice->expenses()->update(['invoice_id' => null]);
|
$this->invoice->expenses()->updateQuietly(['invoice_id' => null]);
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
@ -37,12 +37,10 @@ class ApplyNumber
|
|||||||
switch ($this->client->getSetting('counter_number_applied')) {
|
switch ($this->client->getSetting('counter_number_applied')) {
|
||||||
case 'when_saved':
|
case 'when_saved':
|
||||||
$quote = $this->trySaving($quote);
|
$quote = $this->trySaving($quote);
|
||||||
// $quote->number = $this->getNextQuoteNumber($this->client, $quote);
|
|
||||||
break;
|
break;
|
||||||
case 'when_sent':
|
case 'when_sent':
|
||||||
if ($quote->status_id == Quote::STATUS_SENT) {
|
if ($quote->status_id == Quote::STATUS_SENT) {
|
||||||
$quote = $this->trySaving($quote);
|
$quote = $this->trySaving($quote);
|
||||||
// $quote->number = $this->getNextQuoteNumber($this->client, $quote);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ class CreateInvitations
|
|||||||
$ii->key = $this->createDbHash($this->quote->company->db);
|
$ii->key = $this->createDbHash($this->quote->company->db);
|
||||||
$ii->quote_id = $this->quote->id;
|
$ii->quote_id = $this->quote->id;
|
||||||
$ii->client_contact_id = $contact->id;
|
$ii->client_contact_id = $contact->id;
|
||||||
$ii->save();
|
$ii->saveQuietly();
|
||||||
} elseif ($invitation && ! $contact->send_email) {
|
} elseif ($invitation && ! $contact->send_email) {
|
||||||
$invitation->delete();
|
$invitation->delete();
|
||||||
}
|
}
|
||||||
@ -81,7 +81,7 @@ class CreateInvitations
|
|||||||
$ii->key = $this->createDbHash($this->quote->company->db);
|
$ii->key = $this->createDbHash($this->quote->company->db);
|
||||||
$ii->quote_id = $this->quote->id;
|
$ii->quote_id = $this->quote->id;
|
||||||
$ii->client_contact_id = $contact->id;
|
$ii->client_contact_id = $contact->id;
|
||||||
$ii->save();
|
$ii->saveQuietly();
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->quote->fresh();
|
return $this->quote->fresh();
|
||||||
@ -93,6 +93,6 @@ class CreateInvitations
|
|||||||
$new_contact->client_id = $this->quote->client_id;
|
$new_contact->client_id = $this->quote->client_id;
|
||||||
$new_contact->contact_key = Str::random(40);
|
$new_contact->contact_key = Str::random(40);
|
||||||
$new_contact->is_primary = true;
|
$new_contact->is_primary = true;
|
||||||
$new_contact->save();
|
$new_contact->saveQuietly();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -58,6 +58,7 @@ class ClientApiTest extends TestCase
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function testCrossCompanyBulkActionsFail()
|
public function testCrossCompanyBulkActionsFail()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
namespace Tests\Feature;
|
namespace Tests\Feature;
|
||||||
|
|
||||||
|
use App\Jobs\Util\WebhookHandler;
|
||||||
use App\Repositories\ClientContactRepository;
|
use App\Repositories\ClientContactRepository;
|
||||||
use App\Repositories\ClientRepository;
|
use App\Repositories\ClientRepository;
|
||||||
use App\Utils\Traits\MakesHash;
|
use App\Utils\Traits\MakesHash;
|
||||||
@ -48,6 +49,33 @@ class WebhookAPITest extends TestCase
|
|||||||
$this->withoutExceptionHandling();
|
$this->withoutExceptionHandling();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// public function testClientWebhooks()
|
||||||
|
// {
|
||||||
|
// // client archived = 37
|
||||||
|
// $data = [
|
||||||
|
// 'target_url' => 'http://hook.com',
|
||||||
|
// 'event_id' => 37,
|
||||||
|
// 'rest_method' => 'post',
|
||||||
|
// 'format' => 'JSON',
|
||||||
|
// ];
|
||||||
|
|
||||||
|
// $response = $this->withHeaders([
|
||||||
|
// 'X-API-SECRET' => config('ninja.api_secret'),
|
||||||
|
// 'X-API-TOKEN' => $this->token,
|
||||||
|
// ])->post('/api/v1/webhooks', $data);
|
||||||
|
|
||||||
|
// $repo = new ClientRepository(new ClientContactRepository());
|
||||||
|
|
||||||
|
// $repo->archive($this->client);
|
||||||
|
|
||||||
|
// \Illuminate\Support\Facades\Queue::after(function (WebhookHandler $event) {
|
||||||
|
// $this->assertTrue($event->job->isReleased());
|
||||||
|
// });
|
||||||
|
|
||||||
|
// \Illuminate\Support\Facades\Queue::assertPushed(WebhookHandler::class);
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
public function testWebhookGetFilter()
|
public function testWebhookGetFilter()
|
||||||
{
|
{
|
||||||
$response = $this->withHeaders([
|
$response = $this->withHeaders([
|
||||||
|
Loading…
x
Reference in New Issue
Block a user