Add code to create webhook.

This commit is contained in:
James Cole
2022-09-17 16:54:13 +02:00
parent 23e5cf1b34
commit 625ad14d7d
51 changed files with 1139 additions and 187 deletions

View File

@@ -22,10 +22,8 @@ declare(strict_types=1);
namespace FireflyIII\Http\Controllers\Webhooks;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Http\Controllers\Controller;
use Illuminate\Contracts\View\Factory;
use Illuminate\Http\Request;
use Illuminate\View\View;
/**
@@ -53,18 +51,16 @@ class CreateController extends Controller
}
);
}
/**
* Show debug info.
*
* @param Request $request
*
* @return Factory|View
* @throws FireflyException
*/
public function index(Request $request)
public function index()
{
return view('webhooks.create');
$previousUrl = $this->rememberPreviousUrl('webhooks.create.url');
return view('webhooks.create', compact('previousUrl'));
}
}

View File

@@ -28,6 +28,7 @@ use FireflyIII\Models\Account;
use FireflyIII\Models\Bill;
use FireflyIII\Models\TransactionGroup;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\Webhook;
use Illuminate\Http\Request;
use Preferences;
@@ -63,6 +64,10 @@ class InterestingMessage
Preferences::mark();
$this->handleBillMessage($request);
}
if ($this->webhookMessage($request)) {
Preferences::mark();
$this->handleWebhookMessage($request);
}
return $next($request);
}
@@ -186,6 +191,19 @@ class InterestingMessage
return null !== $billId && null !== $message;
}
/**
* @param Request $request
*
* @return bool
*/
private function webhookMessage(Request $request): bool
{
// get parameters from request.
$billId = $request->get('webhook_id');
$message = $request->get('message');
return null !== $billId && null !== $message;
}
/**
* @param Request $request
@@ -210,4 +228,28 @@ class InterestingMessage
session()->flash('success', (string) trans('firefly.stored_new_bill', ['name' => $bill->name]));
}
}
/**
* @param Request $request
*/
private function handleWebhookMessage(Request $request): void
{
// get parameters from request.
$webhookId = $request->get('webhook_id');
$message = $request->get('message');
/** @var Webhook $webhook */
$webhook = auth()->user()->webhooks()->withTrashed()->find($webhookId);
if (null === $webhook) {
return;
}
if ('deleted' === $message) {
session()->flash('success', (string) trans('firefly.deleted_webhook', ['title' => $webhook->title]));
}
if ('created' === $message) {
session()->flash('success', (string) trans('firefly.stored_new_webhook', ['title' => $webhook->title]));
}
}
}