mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-09-30 02:26:58 +00:00
Add log messages and catch exception
This commit is contained in:
@@ -38,9 +38,16 @@ class Sha3SignatureGenerator implements SignatureGeneratorInterface
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
|
* @throws FireflyException
|
||||||
*/
|
*/
|
||||||
public function generate(WebhookMessage $message): string
|
public function generate(WebhookMessage $message): string
|
||||||
{
|
{
|
||||||
|
// webhook is deleted
|
||||||
|
if (null === $message->webhook) {
|
||||||
|
throw new FireflyException('Part of a deleted webhook.');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$json = json_encode($message->message, JSON_THROW_ON_ERROR);
|
$json = json_encode($message->message, JSON_THROW_ON_ERROR);
|
||||||
} catch (JsonException $e) {
|
} catch (JsonException $e) {
|
||||||
@@ -48,7 +55,7 @@ class Sha3SignatureGenerator implements SignatureGeneratorInterface
|
|||||||
Log::error(sprintf('JSON value: %s', $message->message));
|
Log::error(sprintf('JSON value: %s', $message->message));
|
||||||
Log::error($e->getMessage());
|
Log::error($e->getMessage());
|
||||||
Log::error($e->getTraceAsString());
|
Log::error($e->getTraceAsString());
|
||||||
throw new FireflyException('Could not generate JSON for SHA3 hash.', $e);
|
throw new FireflyException('Could not generate JSON for SHA3 hash.', 0, $e);
|
||||||
}
|
}
|
||||||
|
|
||||||
// signature v1 is generated using the following structure:
|
// signature v1 is generated using the following structure:
|
||||||
|
@@ -24,6 +24,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Jobs;
|
namespace FireflyIII\Jobs;
|
||||||
|
|
||||||
|
use Log;
|
||||||
use FireflyIII\Models\WebhookMessage;
|
use FireflyIII\Models\WebhookMessage;
|
||||||
use FireflyIII\Services\Webhook\WebhookSenderInterface;
|
use FireflyIII\Services\Webhook\WebhookSenderInterface;
|
||||||
use Illuminate\Bus\Queueable;
|
use Illuminate\Bus\Queueable;
|
||||||
@@ -58,6 +59,7 @@ class SendWebhookMessage implements ShouldQueue
|
|||||||
*/
|
*/
|
||||||
public function handle(): void
|
public function handle(): void
|
||||||
{
|
{
|
||||||
|
Log::debug(sprintf('Now handling webhook message #%d', $this->message->id));
|
||||||
// send job!
|
// send job!
|
||||||
$sender = app(WebhookSenderInterface::class);
|
$sender = app(WebhookSenderInterface::class);
|
||||||
$sender->setMessage($this->message);
|
$sender->setMessage($this->message);
|
||||||
|
@@ -23,6 +23,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Services\Webhook;
|
namespace FireflyIII\Services\Webhook;
|
||||||
|
|
||||||
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
use FireflyIII\Helpers\Webhook\SignatureGeneratorInterface;
|
use FireflyIII\Helpers\Webhook\SignatureGeneratorInterface;
|
||||||
use FireflyIII\Models\WebhookAttempt;
|
use FireflyIII\Models\WebhookAttempt;
|
||||||
use FireflyIII\Models\WebhookMessage;
|
use FireflyIII\Models\WebhookMessage;
|
||||||
@@ -55,7 +56,24 @@ class StandardWebhookSender implements WebhookSenderInterface
|
|||||||
// have the signature generator generate a signature. If it fails, the error thrown will
|
// have the signature generator generate a signature. If it fails, the error thrown will
|
||||||
// end up in send() to be caught.
|
// end up in send() to be caught.
|
||||||
$signatureGenerator = app(SignatureGeneratorInterface::class);
|
$signatureGenerator = app(SignatureGeneratorInterface::class);
|
||||||
|
|
||||||
|
try {
|
||||||
$signature = $signatureGenerator->generate($this->message);
|
$signature = $signatureGenerator->generate($this->message);
|
||||||
|
} catch(FireflyException $e) {
|
||||||
|
Log::error('Did not send message because of a Firefly III Exception.');
|
||||||
|
Log::error($e->getMessage());
|
||||||
|
Log::error($e->getTraceAsString());
|
||||||
|
$attempt = new WebhookAttempt;
|
||||||
|
$attempt->webhookMessage()->associate($this->message);
|
||||||
|
$attempt->status_code = 0;
|
||||||
|
$attempt->logs = sprintf('Exception: %s', $e->getMessage());
|
||||||
|
$attempt->save();
|
||||||
|
$this->message->errored = true;
|
||||||
|
$this->message->sent = false;
|
||||||
|
$this->message->save();
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Log::debug(sprintf('Trying to send webhook message #%d', $this->message->id));
|
Log::debug(sprintf('Trying to send webhook message #%d', $this->message->id));
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user