diff --git a/app/Generator/Webhook/StandardMessageGenerator.php b/app/Generator/Webhook/StandardMessageGenerator.php index 733b2fbc44..6143aee75f 100644 --- a/app/Generator/Webhook/StandardMessageGenerator.php +++ b/app/Generator/Webhook/StandardMessageGenerator.php @@ -115,7 +115,7 @@ class StandardMessageGenerator implements MessageGeneratorInterface */ private function generateMessage(Webhook $webhook, Model $model): void { - $class = $model::class; + $class = $model::class; // Line is ignored because all of Firefly III's Models have an id property. Log::debug(sprintf('Now in generateMessage(#%d, %s#%d)', $webhook->id, $class, $model->id)); $uuid = Uuid::uuid4(); @@ -137,15 +137,20 @@ class StandardMessageGenerator implements MessageGeneratorInterface Log::error(sprintf('Webhook #%d was given %s#%d to deal with but can\'t extract user ID from it.', $webhook->id, $class, $model->id)); return; + case Budget::class: /** @var Budget $model */ $basicMessage['user_id'] = $model->user_id; $basicMessage['user_group_id'] = $model->user_group_id; + break; + case BudgetLimit::class: $basicMessage['user_id'] = $model->budget->user_id; $basicMessage['user_group_id'] = $model->budget->user_group_id; + break; + case TransactionGroup::class: /** @var TransactionGroup $model */ $basicMessage['user_id'] = $model->user_id; @@ -160,27 +165,28 @@ class StandardMessageGenerator implements MessageGeneratorInterface Log::error(sprintf('The response code for webhook #%d is "%d" and the message generator cant handle it. Soft fail.', $webhook->id, $webhook->response)); return; - case WebhookResponse::BUDGET->value; + + case WebhookResponse::BUDGET->value: $basicMessage['content'] = []; - if($model instanceof Budget) { - $enrichment = new BudgetEnrichment(); - $enrichment->setUser($model->user); - $model = $enrichment->enrichSingle($model); - $transformer = new BudgetTransformer(); - $basicMessage['content'] = $transformer->transform($model); - } - if($model instanceof BudgetLimit) { - $user = $model->budget->user; - $enrichment = new BudgetEnrichment(); + if ($model instanceof Budget) { + $enrichment = new BudgetEnrichment(); + $enrichment->setUser($model->user); + $model = $enrichment->enrichSingle($model); + $transformer = new BudgetTransformer(); + $basicMessage['content'] = $transformer->transform($model); + } + if ($model instanceof BudgetLimit) { + $user = $model->budget->user; + $enrichment = new BudgetEnrichment(); $enrichment->setUser($user); $enrichment->setStart($model->start_date); $enrichment->setEnd($model->end_date); - $budget = $enrichment->enrichSingle($model->budget); + $budget = $enrichment->enrichSingle($model->budget); - $enrichment = new BudgetLimitEnrichment(); + $enrichment = new BudgetLimitEnrichment(); $enrichment->setUser($user); - $parameters = new ParameterBag(); + $parameters = new ParameterBag(); $parameters->set('start', $model->start_date); $parameters->set('end', $model->end_date); @@ -189,6 +195,7 @@ class StandardMessageGenerator implements MessageGeneratorInterface $transformer->setParameters($parameters); $basicMessage['content'] = $transformer->transform($model); } + break; case WebhookResponse::NONE->value: @@ -198,7 +205,7 @@ class StandardMessageGenerator implements MessageGeneratorInterface case WebhookResponse::TRANSACTIONS->value: /** @var TransactionGroup $model */ - $transformer = new TransactionGroupTransformer(); + $transformer = new TransactionGroupTransformer(); try { $basicMessage['content'] = $transformer->transformObject($model); @@ -215,13 +222,13 @@ class StandardMessageGenerator implements MessageGeneratorInterface case WebhookResponse::ACCOUNTS->value: /** @var TransactionGroup $model */ - $accounts = $this->collectAccounts($model); - $enrichment = new AccountEnrichment(); + $accounts = $this->collectAccounts($model); + $enrichment = new AccountEnrichment(); $enrichment->setDate(null); $enrichment->setUser($model->user); - $accounts = $enrichment->enrich($accounts); + $accounts = $enrichment->enrich($accounts); foreach ($accounts as $account) { - $transformer = new AccountTransformer(); + $transformer = new AccountTransformer(); $transformer->setParameters(new ParameterBag()); $basicMessage['content'][] = $transformer->transform($account); } @@ -251,7 +258,7 @@ class StandardMessageGenerator implements MessageGeneratorInterface private function storeMessage(Webhook $webhook, array $message): void { - $webhookMessage = new WebhookMessage(); + $webhookMessage = new WebhookMessage(); $webhookMessage->webhook()->associate($webhook); $webhookMessage->sent = false; $webhookMessage->errored = false; diff --git a/app/Handlers/Events/Model/BudgetLimitHandler.php b/app/Handlers/Events/Model/BudgetLimitHandler.php index 63235f9014..1fcab8f608 100644 --- a/app/Handlers/Events/Model/BudgetLimitHandler.php +++ b/app/Handlers/Events/Model/BudgetLimitHandler.php @@ -27,37 +27,19 @@ namespace FireflyIII\Handlers\Events\Model; use FireflyIII\Events\Model\BudgetLimit\Created; use FireflyIII\Events\Model\BudgetLimit\Deleted; use FireflyIII\Events\Model\BudgetLimit\Updated; -use FireflyIII\Models\AvailableBudget; -use FireflyIII\Models\Budget; -use FireflyIII\Models\BudgetLimit; -use FireflyIII\Repositories\Budget\BudgetLimitRepositoryInterface; -use FireflyIII\Support\Observers\RecalculatesAvailableBudgetsTrait; -use FireflyIII\User; use Illuminate\Support\Facades\Log; -use Psr\Container\ContainerExceptionInterface; -use Psr\Container\NotFoundExceptionInterface; -use Spatie\Period\Boundaries; -use Spatie\Period\Period; -use Spatie\Period\Precision; /** * Class BudgetLimitHandler */ class BudgetLimitHandler { - public function created(Created $event): void { Log::debug(sprintf('BudgetLimitHandler::created(#%s)', $event->budgetLimit->id)); } - public function deleted(Deleted $event): void - { + public function deleted(Deleted $event): void {} - } - - public function updated(Updated $event): void - { - - } + public function updated(Updated $event): void {} } diff --git a/app/Handlers/Observer/BudgetLimitObserver.php b/app/Handlers/Observer/BudgetLimitObserver.php index e2ab062c34..f6fcc85f03 100644 --- a/app/Handlers/Observer/BudgetLimitObserver.php +++ b/app/Handlers/Observer/BudgetLimitObserver.php @@ -37,6 +37,7 @@ use Illuminate\Support\Facades\Log; class BudgetLimitObserver { use RecalculatesAvailableBudgetsTrait; + public function created(BudgetLimit $budgetLimit): void { Log::debug('Observe "created" of a budget limit.'); diff --git a/app/Handlers/Observer/BudgetObserver.php b/app/Handlers/Observer/BudgetObserver.php index 9f89ab2577..51a87b864f 100644 --- a/app/Handlers/Observer/BudgetObserver.php +++ b/app/Handlers/Observer/BudgetObserver.php @@ -46,7 +46,8 @@ class BudgetObserver Log::debug(sprintf('Observe "created" of budget #%d ("%s").', $budget->id, $budget->name)); // fire event. - $user = $budget->user; + $user = $budget->user; + /** @var MessageGeneratorInterface $engine */ $engine = app(MessageGeneratorInterface::class); $engine->setUser($user); @@ -60,7 +61,7 @@ class BudgetObserver public function updated(Budget $budget): void { Log::debug(sprintf('Observe "updated" of budget #%d ("%s").', $budget->id, $budget->name)); - $user = $budget->user; + $user = $budget->user; /** @var MessageGeneratorInterface $engine */ $engine = app(MessageGeneratorInterface::class); @@ -76,10 +77,10 @@ class BudgetObserver { Log::debug('Observe "deleting" of a budget.'); - $user = $budget->user; + $user = $budget->user; /** @var MessageGeneratorInterface $engine */ - $engine = app(MessageGeneratorInterface::class); + $engine = app(MessageGeneratorInterface::class); $engine->setUser($user); $engine->setObjects(new Collection()->push($budget)); $engine->setTrigger(WebhookTrigger::DESTROY_BUDGET); @@ -87,7 +88,7 @@ class BudgetObserver event(new RequestedSendWebhookMessages()); - $repository = app(AttachmentRepositoryInterface::class); + $repository = app(AttachmentRepositoryInterface::class); $repository->setUser($budget->user); /** @var Attachment $attachment */ diff --git a/app/Support/Observers/RecalculatesAvailableBudgetsTrait.php b/app/Support/Observers/RecalculatesAvailableBudgetsTrait.php index b15d41a455..a6f33660dc 100644 --- a/app/Support/Observers/RecalculatesAvailableBudgetsTrait.php +++ b/app/Support/Observers/RecalculatesAvailableBudgetsTrait.php @@ -1,5 +1,7 @@ start_date, - $budgetLimit->end_date, + $budgetLimit->start_date, + $budgetLimit->end_date, precision : Precision::DAY(), boundaries: Boundaries::EXCLUDE_NONE() ); @@ -194,8 +196,8 @@ trait RecalculatesAvailableBudgetsTrait return '0'; } $limitPeriod = Period::make( - $budgetLimit->start_date, - $budgetLimit->end_date, + $budgetLimit->start_date, + $budgetLimit->end_date, precision : Precision::DAY(), boundaries: Boundaries::EXCLUDE_NONE() ); diff --git a/config/firefly.php b/config/firefly.php index bf82a375dc..e8004f7cbb 100644 --- a/config/firefly.php +++ b/config/firefly.php @@ -78,8 +78,8 @@ return [ 'running_balance_column' => env('USE_RUNNING_BALANCE', false), // see cer.php for exchange rates feature flag. ], - 'version' => 'develop/2025-08-18', - 'build_time' => 1755530171, + 'version' => '6.3.1', + 'build_time' => 1755540382, 'api_version' => '2.1.0', // field is no longer used. 'db_version' => 26, diff --git a/package-lock.json b/package-lock.json index 7b8791cf0f..55d8fa63ad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5700,9 +5700,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.203", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.203.tgz", - "integrity": "sha512-uz4i0vLhfm6dLZWbz/iH88KNDV+ivj5+2SA+utpgjKaj9Q0iDLuwk6Idhe9BTxciHudyx6IvTvijhkPvFGUQ0g==", + "version": "1.5.204", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.204.tgz", + "integrity": "sha512-s9VbBXWxfDrl67PlO4avwh0/GU2vcwx8Fph3wlR8LJl7ySGYId59EFE17VWVcuC3sLWNPENm6Z/uGqKbkPCcXA==", "dev": true, "license": "ISC" }, diff --git a/public/v1/js/.gitkeep b/public/v1/js/.gitkeep old mode 100755 new mode 100644