diff --git a/app/Api/V1/Controllers/TransactionLinkController.php b/app/Api/V1/Controllers/TransactionLinkController.php index c504b2d396..08e311ccf8 100644 --- a/app/Api/V1/Controllers/TransactionLinkController.php +++ b/app/Api/V1/Controllers/TransactionLinkController.php @@ -23,7 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers; -use FireflyIII\Api\V1\Requests\JournalLinkRequest; +use FireflyIII\Api\V1\Requests\TransactionLinkRequest; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\TransactionJournalLink; use FireflyIII\Repositories\Journal\JournalRepositoryInterface; @@ -148,12 +148,12 @@ class TransactionLinkController extends Controller /** * Store new object. * - * @param JournalLinkRequest $request + * @param TransactionLinkRequest $request * * @return JsonResponse * @throws FireflyException */ - public function store(JournalLinkRequest $request): JsonResponse + public function store(TransactionLinkRequest $request): JsonResponse { $manager = new Manager; $data = $request->getAll(); @@ -174,13 +174,13 @@ class TransactionLinkController extends Controller /** * Update object. * - * @param JournalLinkRequest $request + * @param TransactionLinkRequest $request * @param TransactionJournalLink $journalLink * * @return JsonResponse * @throws FireflyException */ - public function update(JournalLinkRequest $request, TransactionJournalLink $journalLink): JsonResponse + public function update(TransactionLinkRequest $request, TransactionJournalLink $journalLink): JsonResponse { $manager = new Manager; $data = $request->getAll(); diff --git a/app/Api/V1/Requests/AccountRequest.php b/app/Api/V1/Requests/AccountRequest.php index adebf62dbf..36c85e8f8c 100644 --- a/app/Api/V1/Requests/AccountRequest.php +++ b/app/Api/V1/Requests/AccountRequest.php @@ -23,6 +23,9 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; + +use FireflyIII\Rules\IsBoolean; + /** * Class AccountRequest */ @@ -69,12 +72,7 @@ class AccountRequest extends Request 'interest' => $this->string('interest'), 'interest_period' => $this->string('interest_period'), ]; - // new fields for liabilities - // 'liability_type' => $this->string('liability_type'), - // 'liability_start_date' => $this->date('liability_start_date'), - - //]; if ('liability' === $data['accountType']) { $data['openingBalance'] = bcmul($this->string('liability_amount'), '-1'); $data['openingBalanceDate'] = $this->date('liability_start_date'); @@ -96,35 +94,27 @@ class AccountRequest extends Request $types = implode(',', array_keys(config('firefly.subTitlesByIdentifier'))); $ccPaymentTypes = implode(',', array_keys(config('firefly.ccTypes'))); $rules = [ - 'name' => 'required|min:1|uniqueAccountForUser', - 'type' => 'required|in:' . $types, - 'active' => 'required|boolean', - 'account_role' => 'in:' . $accountRoles . '|required_if:type,asset', - 'currency_id' => 'numeric|exists:transaction_currencies,id|required_without:currency_code', - 'currency_code' => 'min:3|max:3|exists:transaction_currencies,code|required_without:currency_id', - 'notes' => 'min:0|max:65536', - 'monthly_payment_date' => 'date' . '|required_if:account_role,ccAsset|required_if:cc_type,monthlyFull', - 'credit_card_type' => 'in:' . $ccPaymentTypes . '|required_if:account_role,ccAsset', - 'account_number' => 'between:1,255|nullable|uniqueAccountNumberForUser', - 'iban' => 'iban|nullable', - 'bic' => 'bic|nullable', - 'virtual_balance' => 'numeric|nullable', - 'opening_balance' => 'numeric|required_with:opening_balance_date|nullable', - 'opening_balance_date' => 'date|required_with:opening_balance|nullable', - - - - - 'include_net_worth' => 'required|boolean', - - - // required fields for liabilities: - 'liability_type' => 'required_if:type,liability|in:loan,debt,mortgage,credit card', - 'liability_amount' => 'required_if:type,liability|min:0|numeric', - 'liability_start_date' => 'required_if:type,liability|date', - 'interest' => 'required_if:type,liability|between:0,100|numeric', - 'interest_period' => 'required_if:type,liability|in:daily,monthly,yearly', - + 'name' => 'required|min:1|uniqueAccountForUser', + 'type' => 'required|in:' . $types, + 'iban' => 'iban|nullable', + 'bic' => 'bic|nullable', + 'account_number' => 'between:1,255|nullable|uniqueAccountNumberForUser', + 'opening_balance' => 'numeric|required_with:opening_balance_date|nullable', + 'opening_balance_date' => 'date|required_with:opening_balance|nullable', + 'virtual_balance' => 'numeric|nullable', + 'currency_id' => 'numeric|exists:transaction_currencies,id', + 'currency_code' => 'min:3|max:3|exists:transaction_currencies,code', + 'active' => [new IsBoolean], + 'include_net_worth' => [new IsBoolean], + 'account_role' => 'in:' . $accountRoles . '|required_if:type,asset', + 'cc_type' => 'in:' . $ccPaymentTypes . '|required_if:account_role,ccAsset', + 'cc_monthly_payment_date' => 'date' . '|required_if:account_role,ccAsset|required_if:cc_type,monthlyFull', + 'liability_type' => 'required_if:type,liability|in:loan,debt,mortgage', + 'liability_amount' => 'required_if:type,liability|min:0|numeric', + 'liability_start_date' => 'required_if:type,liability|date', + 'interest' => 'required_if:type,liability|between:0,100|numeric', + 'interest_period' => 'required_if:type,liability|in:daily,monthly,yearly', + 'notes' => 'min:0|max:65536', ]; switch ($this->method()) { default: diff --git a/app/Api/V1/Requests/AttachmentRequest.php b/app/Api/V1/Requests/AttachmentRequest.php index e78c5555bf..be29aa510c 100644 --- a/app/Api/V1/Requests/AttachmentRequest.php +++ b/app/Api/V1/Requests/AttachmentRequest.php @@ -72,6 +72,7 @@ class AttachmentRequest extends Request Bill::class, ImportJob::class, TransactionJournal::class, + ImportJob::class, ] ); $model = $this->string('model'); diff --git a/app/Api/V1/Requests/AvailableBudgetRequest.php b/app/Api/V1/Requests/AvailableBudgetRequest.php index 865b2b7fd5..a68999993c 100644 --- a/app/Api/V1/Requests/AvailableBudgetRequest.php +++ b/app/Api/V1/Requests/AvailableBudgetRequest.php @@ -50,8 +50,8 @@ class AvailableBudgetRequest extends Request 'currency_id' => $this->integer('currency_id'), 'currency_code' => $this->string('currency_code'), 'amount' => $this->string('amount'), - 'start_date' => $this->date('start_date'), - 'end_date' => $this->date('end_date'), + 'start' => $this->date('start'), + 'end' => $this->date('end'), ]; } @@ -63,11 +63,11 @@ class AvailableBudgetRequest extends Request public function rules(): array { $rules = [ - 'currency_id' => 'numeric|exists:transaction_currencies,id|required_without:currency_code', - 'currency_code' => 'min:3|max:3|exists:transaction_currencies,code|required_without:currency_id', + 'currency_id' => 'numeric|exists:transaction_currencies,id', + 'currency_code' => 'min:3|max:3|exists:transaction_currencies,code', 'amount' => 'required|numeric|more:0', - 'start_date' => 'required|date|before:end_date', - 'end_date' => 'required|date|after:start_date', + 'start' => 'required|date|before:end', + 'end' => 'required|date|after:start', ]; return $rules; diff --git a/app/Api/V1/Requests/BillRequest.php b/app/Api/V1/Requests/BillRequest.php index 79775b0c0a..80e4d66ca4 100644 --- a/app/Api/V1/Requests/BillRequest.php +++ b/app/Api/V1/Requests/BillRequest.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; +use FireflyIII\Rules\IsBoolean; use Illuminate\Validation\Validator; /** @@ -78,13 +79,13 @@ class BillRequest extends Request 'name' => 'required|between:1,255|uniqueObjectForUser:bills,name', 'amount_min' => 'required|numeric|more:0', 'amount_max' => 'required|numeric|more:0', - 'currency_id' => 'numeric|exists:transaction_currencies,id|required_without:currency_code', - 'currency_code' => 'min:3|max:3|exists:transaction_currencies,code|required_without:currency_id', + 'currency_id' => 'numeric|exists:transaction_currencies,id', + 'currency_code' => 'min:3|max:3|exists:transaction_currencies,code', 'date' => 'required|date', 'repeat_freq' => 'required|in:weekly,monthly,quarterly,half-year,yearly', - 'skip' => 'required|between:0,31', - 'automatch' => 'required|boolean', - 'active' => 'required|boolean', + 'skip' => 'between:0,31', + 'automatch' => [new IsBoolean], + 'active' => [new IsBoolean], 'notes' => 'between:1,65536', ]; switch ($this->method()) { diff --git a/app/Api/V1/Requests/BudgetRequest.php b/app/Api/V1/Requests/BudgetRequest.php index f2b926931d..9e48acccd2 100644 --- a/app/Api/V1/Requests/BudgetRequest.php +++ b/app/Api/V1/Requests/BudgetRequest.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; use FireflyIII\Models\Budget; +use FireflyIII\Rules\IsBoolean; /** * Class BudgetRequest @@ -64,7 +65,7 @@ class BudgetRequest extends Request { $rules = [ 'name' => 'required|between:1,100|uniqueObjectForUser:budgets,name', - 'active' => 'required|boolean', + 'active' => [new IsBoolean], ]; switch ($this->method()) { default: diff --git a/app/Api/V1/Requests/CategoryRequest.php b/app/Api/V1/Requests/CategoryRequest.php index 7cd5a2bd1e..23cd21def8 100644 --- a/app/Api/V1/Requests/CategoryRequest.php +++ b/app/Api/V1/Requests/CategoryRequest.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; use FireflyIII\Models\Category; +use FireflyIII\Rules\IsBoolean; /** * Class CategoryRequest @@ -49,8 +50,7 @@ class CategoryRequest extends Request public function getAll(): array { return [ - 'name' => $this->string('name'), - 'active' => $this->boolean('active'), + 'name' => $this->string('name') ]; } @@ -62,8 +62,7 @@ class CategoryRequest extends Request public function rules(): array { $rules = [ - 'name' => 'required|between:1,100|uniqueObjectForUser:categories,name', - 'active' => 'required|boolean', + 'name' => 'required|between:1,100|uniqueObjectForUser:categories,name' ]; switch ($this->method()) { default: diff --git a/app/Api/V1/Requests/CurrencyRequest.php b/app/Api/V1/Requests/CurrencyRequest.php index c145a78142..5a504cb2bf 100644 --- a/app/Api/V1/Requests/CurrencyRequest.php +++ b/app/Api/V1/Requests/CurrencyRequest.php @@ -79,7 +79,7 @@ class CurrencyRequest extends Request 'name' => 'required|between:1,255|unique:transaction_currencies,name', 'code' => 'required|between:3,3|unique:transaction_currencies,code', 'symbol' => 'required|between:1,5|unique:transaction_currencies,symbol', - 'decimal_places' => 'required|between:0,20|numeric|min:0|max:20', + 'decimal_places' => 'between:0,20|numeric|min:0|max:20', 'enabled' => [new IsBoolean()], 'default' => [new IsBoolean()], diff --git a/app/Api/V1/Requests/PiggyBankRequest.php b/app/Api/V1/Requests/PiggyBankRequest.php index 080a9fe8c1..427915cc6d 100644 --- a/app/Api/V1/Requests/PiggyBankRequest.php +++ b/app/Api/V1/Requests/PiggyBankRequest.php @@ -58,8 +58,8 @@ class PiggyBankRequest extends Request 'account_id' => $this->integer('account_id'), 'targetamount' => $this->string('target_amount'), 'current_amount' => $current, - 'startdate' => $this->date('start_date'), - 'targetdate' => $this->date('target_date'), + 'startdate' => $this->date('start_date'), + 'targetdate' => $this->date('target_date'), 'notes' => $this->string('notes'), ]; } diff --git a/app/Api/V1/Requests/RecurrenceRequest.php b/app/Api/V1/Requests/RecurrenceRequest.php index ab5ce03d31..dc901d8658 100644 --- a/app/Api/V1/Requests/RecurrenceRequest.php +++ b/app/Api/V1/Requests/RecurrenceRequest.php @@ -96,23 +96,25 @@ class RecurrenceRequest extends Request $today = Carbon::now()->addDay(); return [ - 'type' => 'required|in:withdrawal,transfer,deposit', + 'type' => 'required|in:Withdrawal,Transfer,Deposit', 'title' => 'required|between:1,255|uniqueObjectForUser:recurrences,title', 'description' => 'between:1,65000', 'first_date' => sprintf('required|date|after:%s', $today->format('Y-m-d')), - 'repeat_until' => sprintf('date|after:%s', $today->format('Y-m-d')), - 'nr_of_repetitions' => 'numeric|between:1,31', 'apply_rules' => [new IsBoolean], 'active' => [new IsBoolean], + 'repeat_until' => sprintf('date|after:%s', $today->format('Y-m-d')), + 'nr_of_repetitions' => 'numeric|between:1,31', 'tags' => 'between:1,64000', 'piggy_bank_id' => 'numeric', 'repetitions.*.type' => 'required|in:daily,weekly,ndom,monthly,yearly', 'repetitions.*.moment' => 'between:0,10', 'repetitions.*.skip' => 'required|numeric|between:0,31', 'repetitions.*.weekend' => 'required|numeric|min:1|max:4', - 'transactions.*.currency_id' => 'numeric|exists:transaction_currencies,id|required_without:transactions.*.currency_code', - 'transactions.*.currency_code' => 'min:3|max:3|exists:transaction_currencies,code|required_without:transactions.*.currency_id', + 'transactions.*.description' => 'required|between:1,255', + 'transactions.*.amount' => 'required|numeric|more:0', 'transactions.*.foreign_amount' => 'numeric|more:0', + 'transactions.*.currency_id' => 'numeric|exists:transaction_currencies,id', + 'transactions.*.currency_code' => 'min:3|max:3|exists:transaction_currencies,code', 'transactions.*.foreign_currency_id' => 'numeric|exists:transaction_currencies,id', 'transactions.*.foreign_currency_code' => 'min:3|max:3|exists:transaction_currencies,code', 'transactions.*.budget_id' => ['mustExist:budgets,id', new BelongsUser], @@ -121,8 +123,8 @@ class RecurrenceRequest extends Request 'transactions.*.source_name' => 'between:1,255|nullable', 'transactions.*.destination_id' => ['numeric', 'nullable', new BelongsUser], 'transactions.*.destination_name' => 'between:1,255|nullable', - 'transactions.*.amount' => 'required|numeric|more:0', - 'transactions.*.description' => 'required|between:1,255', + + ]; } diff --git a/app/Api/V1/Requests/RuleRequest.php b/app/Api/V1/Requests/RuleRequest.php index 7eee6982b1..daec700662 100644 --- a/app/Api/V1/Requests/RuleRequest.php +++ b/app/Api/V1/Requests/RuleRequest.php @@ -95,20 +95,25 @@ class RuleRequest extends Request $rules = [ - 'title' => 'required|between:1,100|uniqueObjectForUser:rules,title', - 'description' => 'between:1,5000|nullable', - 'rule_group_id' => 'required|belongsToUser:rule_groups|required_without:rule_group_title', - 'rule_group_title' => 'nullable|between:1,255|required_without:rule_group_id|belongsToUser:rule_groups,title', - 'trigger' => 'required|in:store-journal,update-journal', - 'triggers.*.name' => 'required|in:' . implode(',', $validTriggers), - 'triggers.*.stop_processing' => [new IsBoolean], + 'title' => 'required|between:1,100|uniqueObjectForUser:rules,title', + 'description' => 'between:1,5000|nullable', + 'rule_group_id' => 'required|belongsToUser:rule_groups|required_without:rule_group_title', + 'rule_group_title' => 'nullable|between:1,255|required_without:rule_group_id|belongsToUser:rule_groups,title', + 'trigger' => 'required|in:store-journal,update-journal', + + 'triggers.*.type' => 'required|in:' . implode(',', $validTriggers), 'triggers.*.value' => 'required_if:actions.*.type,' . $contextTriggers . '|min:1|ruleTriggerValue', - 'actions.*.name' => 'required|in:' . implode(',', $validActions), - 'actions.*.value' => 'required_if:actions.*.type,' . $contextActions . '|ruleActionValue', - 'actions.*.stop_processing' => [new IsBoolean], - 'strict' => [new IsBoolean], - 'stop_processing' => [new IsBoolean], - 'active' => [new IsBoolean], + 'triggers.*.stop_processing' => [new IsBoolean], + 'triggers.*.active' => [new IsBoolean], + + 'actions.*.type' => 'required|in:' . implode(',', $validActions), + 'actions.*.value' => 'required_if:actions.*.type,' . $contextActions . '|ruleActionValue', + 'actions.*.stop_processing' => [new IsBoolean], + 'actions.*.active' => [new IsBoolean], + + 'strict' => [new IsBoolean], + 'stop_processing' => [new IsBoolean], + 'active' => [new IsBoolean], ]; return $rules; @@ -171,8 +176,9 @@ class RuleRequest extends Request if (\is_array($actions)) { foreach ($actions as $action) { $return[] = [ - 'name' => $action['name'], + 'type' => $action['type'], 'value' => $action['value'], + 'active' => $this->convertBoolean((string)($action['active'] ?? 'false')), 'stop_processing' => $this->convertBoolean((string)($action['stop_processing'] ?? 'false')), ]; } @@ -191,8 +197,9 @@ class RuleRequest extends Request if (\is_array($triggers)) { foreach ($triggers as $trigger) { $return[] = [ - 'name' => $trigger['name'], + 'type' => $trigger['type'], 'value' => $trigger['value'], + 'active' => $this->convertBoolean((string)($trigger['active'] ?? 'false')), 'stop_processing' => $this->convertBoolean((string)($trigger['stop_processing'] ?? 'false')), ]; } diff --git a/app/Api/V1/Requests/JournalLinkRequest.php b/app/Api/V1/Requests/TransactionLinkRequest.php similarity index 97% rename from app/Api/V1/Requests/JournalLinkRequest.php rename to app/Api/V1/Requests/TransactionLinkRequest.php index 530af0d6de..ad74b713f6 100644 --- a/app/Api/V1/Requests/JournalLinkRequest.php +++ b/app/Api/V1/Requests/TransactionLinkRequest.php @@ -1,6 +1,6 @@ $this->date('invoice_date'), 'internal_reference' => $this->string('internal_reference'), 'notes' => $this->string('notes'), - 'original-source' => sprintf('ff3-v%s|api-v%s', config('firefly.version'),config('firefly.api_version')), + 'original-source' => sprintf('ff3-v%s|api-v%s', config('firefly.version'), config('firefly.api_version')), 'transactions' => $this->getTransactionData(), // SEPA fields: @@ -105,8 +105,8 @@ class TransactionRequest extends Request $rules = [ // basic fields for journal: 'type' => 'required|in:withdrawal,deposit,transfer', - 'date' => 'required|date', 'description' => 'between:1,255', + 'date' => 'required|date', 'piggy_bank_id' => ['numeric', 'nullable', 'mustExist:piggy_banks,id', new BelongsUser], 'piggy_bank_name' => ['between:1,255', 'nullable', new BelongsUser], 'bill_id' => ['numeric', 'nullable', 'mustExist:bills,id', new BelongsUser], @@ -121,11 +121,14 @@ class TransactionRequest extends Request 'payment_date' => 'date|nullable', 'invoice_date' => 'date|nullable', 'internal_reference' => 'min:1,max:255|nullable', + 'bunq_payment_id' => 'min:1,max:255|nullable', + 'external_id' => 'min:1,max:255|nullable', 'notes' => 'min:1,max:50000|nullable', // SEPA fields: 'sepa_cc' => 'min:1,max:255|nullable', 'sepa_ct_op' => 'min:1,max:255|nullable', + 'sepa_ct_id' => 'min:1,max:255|nullable', 'sepa_db' => 'min:1,max:255|nullable', 'sepa_country' => 'min:1,max:255|nullable', 'sepa_ep' => 'min:1,max:255|nullable', @@ -133,8 +136,8 @@ class TransactionRequest extends Request 'sepa_batch_id' => 'min:1,max:255|nullable', // transaction rules (in array for splits): - 'transactions.*.description' => 'nullable|between:1,255', 'transactions.*.amount' => 'required|numeric|more:0', + 'transactions.*.description' => 'nullable|between:1,255', 'transactions.*.currency_id' => 'numeric|exists:transaction_currencies,id', 'transactions.*.currency_code' => 'min:3|max:3|exists:transaction_currencies,code', 'transactions.*.foreign_amount' => 'numeric|more:0', @@ -145,7 +148,6 @@ class TransactionRequest extends Request 'transactions.*.category_id' => ['mustExist:categories,id', new BelongsUser], 'transactions.*.category_name' => 'between:1,255|nullable', 'transactions.*.reconciled' => [new IsBoolean], - // basic rules will be expanded later. 'transactions.*.source_id' => ['numeric', 'nullable', new BelongsUser], 'transactions.*.source_name' => 'between:1,255|nullable', 'transactions.*.destination_id' => ['numeric', 'nullable', new BelongsUser], @@ -195,8 +197,8 @@ class TransactionRequest extends Request $return = []; foreach ($this->get('transactions') as $index => $transaction) { $return[] = [ - 'description' => $transaction['description'] ?? null, 'amount' => $transaction['amount'], + 'description' => $transaction['description'] ?? null, 'currency_id' => isset($transaction['currency_id']) ? (int)$transaction['currency_id'] : null, 'currency_code' => $transaction['currency_code'] ?? null, 'foreign_amount' => $transaction['foreign_amount'] ?? null, diff --git a/tests/Api/V1/Controllers/TransactionLinkControllerTest.php b/tests/Api/V1/Controllers/TransactionLinkControllerTest.php index 46271da8fd..9fea1a324a 100644 --- a/tests/Api/V1/Controllers/TransactionLinkControllerTest.php +++ b/tests/Api/V1/Controllers/TransactionLinkControllerTest.php @@ -142,7 +142,7 @@ class TransactionLinkControllerTest extends TestCase /** * @covers \FireflyIII\Api\V1\Controllers\TransactionLinkController - * @covers \FireflyIII\Api\V1\Requests\JournalLinkRequest + * @covers \FireflyIII\Api\V1\Requests\TransactionLinkRequest */ public function testStore(): void { @@ -193,7 +193,7 @@ class TransactionLinkControllerTest extends TestCase * In this particular test the journal link request will fail. * * @covers \FireflyIII\Api\V1\Controllers\TransactionLinkController - * @covers \FireflyIII\Api\V1\Requests\JournalLinkRequest + * @covers \FireflyIII\Api\V1\Requests\TransactionLinkRequest */ public function testStoreExistingLink(): void { @@ -242,10 +242,10 @@ class TransactionLinkControllerTest extends TestCase } /** - * In this particular test the JournalLinkRequest will report the failure. + * In this particular test the TransactionLinkRequest will report the failure. * * @covers \FireflyIII\Api\V1\Controllers\TransactionLinkController - * @covers \FireflyIII\Api\V1\Requests\JournalLinkRequest + * @covers \FireflyIII\Api\V1\Requests\TransactionLinkRequest */ public function testStoreInvalidInward(): void { @@ -292,10 +292,10 @@ class TransactionLinkControllerTest extends TestCase } /** - * In this particular test the JournalLinkRequest will report the failure. + * In this particular test the TransactionLinkRequest will report the failure. * * @covers \FireflyIII\Api\V1\Controllers\TransactionLinkController - * @covers \FireflyIII\Api\V1\Requests\JournalLinkRequest + * @covers \FireflyIII\Api\V1\Requests\TransactionLinkRequest */ public function testStoreInvalidOutward(): void { @@ -343,7 +343,7 @@ class TransactionLinkControllerTest extends TestCase /** * @covers \FireflyIII\Api\V1\Controllers\TransactionLinkController - * @covers \FireflyIII\Api\V1\Requests\JournalLinkRequest + * @covers \FireflyIII\Api\V1\Requests\TransactionLinkRequest */ public function testStoreNoJournal(): void { @@ -392,7 +392,7 @@ class TransactionLinkControllerTest extends TestCase /** * @covers \FireflyIII\Api\V1\Controllers\TransactionLinkController - * @covers \FireflyIII\Api\V1\Requests\JournalLinkRequest + * @covers \FireflyIII\Api\V1\Requests\TransactionLinkRequest */ public function testStoreWithNull(): void { @@ -439,7 +439,7 @@ class TransactionLinkControllerTest extends TestCase /** * @covers \FireflyIII\Api\V1\Controllers\TransactionLinkController - * @covers \FireflyIII\Api\V1\Requests\JournalLinkRequest + * @covers \FireflyIII\Api\V1\Requests\TransactionLinkRequest */ public function testUpdate(): void { @@ -489,7 +489,7 @@ class TransactionLinkControllerTest extends TestCase /** * @covers \FireflyIII\Api\V1\Controllers\TransactionLinkController - * @covers \FireflyIII\Api\V1\Requests\JournalLinkRequest + * @covers \FireflyIII\Api\V1\Requests\TransactionLinkRequest */ public function testUpdateNoJournal(): void { @@ -539,7 +539,7 @@ class TransactionLinkControllerTest extends TestCase /** * @covers \FireflyIII\Api\V1\Controllers\TransactionLinkController - * @covers \FireflyIII\Api\V1\Requests\JournalLinkRequest + * @covers \FireflyIII\Api\V1\Requests\TransactionLinkRequest */ public function testUpdateWithNull(): void {