mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-25 21:16:47 +00:00
🤖 Auto commit for release 'develop' on 2025-08-17
This commit is contained in:
@@ -142,6 +142,7 @@ class ConfigurationController extends Controller
|
||||
'value' => $dynamic[$shortKey],
|
||||
'editable' => true,
|
||||
];
|
||||
|
||||
return response()->api(['data' => $data])->header('Content-Type', self::JSON_CONTENT_TYPE);
|
||||
}
|
||||
if (str_starts_with($configKey, 'webhook.')) {
|
||||
@@ -150,6 +151,7 @@ class ConfigurationController extends Controller
|
||||
'value' => $this->getWebhookConfiguration($configKey),
|
||||
'editable' => false,
|
||||
];
|
||||
|
||||
return response()->api(['data' => $data])->header('Content-Type', self::JSON_CONTENT_TYPE);
|
||||
}
|
||||
|
||||
@@ -176,7 +178,7 @@ class ConfigurationController extends Controller
|
||||
*/
|
||||
public function update(UpdateRequest $request, string $name): JsonResponse
|
||||
{
|
||||
$rules = ['value' => 'required'];
|
||||
$rules = ['value' => 'required'];
|
||||
if (!$this->repository->hasRole(auth()->user(), 'owner')) {
|
||||
$messages = ['value' => '200005: You need the "owner" role to do this.'];
|
||||
Validator::make([], $rules, $messages)->validate();
|
||||
@@ -206,21 +208,27 @@ class ConfigurationController extends Controller
|
||||
foreach ($cases as $c) {
|
||||
$data[$c->name] = $c->value;
|
||||
}
|
||||
|
||||
return $data;
|
||||
|
||||
case 'webhook.responses':
|
||||
$cases = WebhookResponse::cases();
|
||||
$data = [];
|
||||
foreach ($cases as $c) {
|
||||
$data[$c->name] = $c->value;
|
||||
}
|
||||
|
||||
return $data;
|
||||
|
||||
case 'webhook.deliveries':
|
||||
$cases = WebhookDelivery::cases();
|
||||
$data = [];
|
||||
foreach ($cases as $c) {
|
||||
$data[$c->name] = $c->value;
|
||||
}
|
||||
|
||||
return $data;
|
||||
|
||||
default:
|
||||
throw new FireflyException(sprintf('Unknown webhook configuration key "%s".', $configKey));
|
||||
}
|
||||
|
||||
@@ -44,11 +44,11 @@ class CreateRequest extends FormRequest
|
||||
|
||||
public function getData(): array
|
||||
{
|
||||
$triggers = Webhook::getTriggersForValidation();
|
||||
$responses = Webhook::getResponsesForValidation();
|
||||
$deliveries = Webhook::getDeliveriesForValidation();
|
||||
$triggers = Webhook::getTriggersForValidation();
|
||||
$responses = Webhook::getResponsesForValidation();
|
||||
$deliveries = Webhook::getDeliveriesForValidation();
|
||||
|
||||
$fields = [
|
||||
$fields = [
|
||||
'title' => ['title', 'convertString'],
|
||||
'active' => ['active', 'boolean'],
|
||||
'trigger' => ['trigger', 'convertString'],
|
||||
@@ -91,16 +91,17 @@ class CreateRequest extends FormRequest
|
||||
$validator->after(
|
||||
function (Validator $validator): void {
|
||||
Log::debug('Validating webhook');
|
||||
$data = $validator->getData();
|
||||
$trigger = $data['trigger'] ?? null;
|
||||
$response = $data['response'] ?? null;
|
||||
$data = $validator->getData();
|
||||
$trigger = $data['trigger'] ?? null;
|
||||
$response = $data['response'] ?? null;
|
||||
if (null === $trigger || null === $response) {
|
||||
Log::debug('No trigger or response, return.');
|
||||
|
||||
return;
|
||||
}
|
||||
$triggers = array_keys(Webhook::getTriggersForValidation());
|
||||
$responses = array_keys(Webhook::getResponsesForValidation());
|
||||
if (!in_array($trigger, $triggers) || !in_array($response, $responses)) {
|
||||
if (!in_array($trigger, $triggers, true) || !in_array($response, $responses, true)) {
|
||||
return;
|
||||
}
|
||||
// cannot deliver budget info.
|
||||
|
||||
@@ -98,21 +98,23 @@ class UpdateRequest extends FormRequest
|
||||
'url' => [sprintf('url:%s', $validProtocols), sprintf('uniqueExistingWebhook:%d', $webhook->id)],
|
||||
];
|
||||
}
|
||||
|
||||
public function withValidator(Validator $validator): void
|
||||
{
|
||||
$validator->after(
|
||||
function (Validator $validator): void {
|
||||
Log::debug('Validating webhook');
|
||||
$data = $validator->getData();
|
||||
$trigger = $data['trigger'] ?? null;
|
||||
$response = $data['response'] ?? null;
|
||||
$data = $validator->getData();
|
||||
$trigger = $data['trigger'] ?? null;
|
||||
$response = $data['response'] ?? null;
|
||||
if (null === $trigger || null === $response) {
|
||||
Log::debug('No trigger or response, return.');
|
||||
|
||||
return;
|
||||
}
|
||||
$triggers = array_keys(Webhook::getTriggersForValidation());
|
||||
$responses = array_keys(Webhook::getResponsesForValidation());
|
||||
if (!in_array($trigger, $triggers) || !in_array($response, $responses)) {
|
||||
if (!in_array($trigger, $triggers, true) || !in_array($response, $responses, true)) {
|
||||
return;
|
||||
}
|
||||
// cannot deliver budget info.
|
||||
|
||||
@@ -109,20 +109,20 @@ 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();
|
||||
$basicMessage = [
|
||||
'uuid' => $uuid->toString(),
|
||||
'user_id' => 0,
|
||||
'uuid' => $uuid->toString(),
|
||||
'user_id' => 0,
|
||||
'user_group_id' => 0,
|
||||
'trigger' => $webhook->trigger->name,
|
||||
'response' => WebhookResponse::from($webhook->response)->name,
|
||||
'url' => $webhook->url,
|
||||
'version' => sprintf('v%d', $this->getVersion()),
|
||||
'content' => [],
|
||||
'trigger' => $webhook->trigger->name,
|
||||
'response' => WebhookResponse::from($webhook->response)->name,
|
||||
'url' => $webhook->url,
|
||||
'version' => sprintf('v%d', $this->getVersion()),
|
||||
'content' => [],
|
||||
];
|
||||
|
||||
// depends on the model how user_id is set:
|
||||
@@ -135,7 +135,7 @@ class StandardMessageGenerator implements MessageGeneratorInterface
|
||||
|
||||
case TransactionGroup::class:
|
||||
/** @var TransactionGroup $model */
|
||||
$basicMessage['user_id'] = $model->user_id;
|
||||
$basicMessage['user_id'] = $model->user_id;
|
||||
$basicMessage['user_group_id'] = $model->user_group_id;
|
||||
|
||||
break;
|
||||
@@ -155,7 +155,7 @@ class StandardMessageGenerator implements MessageGeneratorInterface
|
||||
|
||||
case WebhookResponse::TRANSACTIONS->value:
|
||||
/** @var TransactionGroup $model */
|
||||
$transformer = new TransactionGroupTransformer();
|
||||
$transformer = new TransactionGroupTransformer();
|
||||
|
||||
try {
|
||||
$basicMessage['content'] = $transformer->transformObject($model);
|
||||
@@ -172,13 +172,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);
|
||||
}
|
||||
@@ -208,7 +208,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;
|
||||
|
||||
@@ -57,8 +57,8 @@ class AvailableBudgetEnrichment implements EnrichmentInterface
|
||||
private readonly BudgetRepositoryInterface $repository;
|
||||
|
||||
|
||||
private ?Carbon $start = null;
|
||||
private ?Carbon $end = null;
|
||||
private ?Carbon $start = null;
|
||||
private ?Carbon $end = null;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user