mirror of
				https://github.com/firefly-iii/firefly-iii.git
				synced 2025-10-31 10:47:00 +00:00 
			
		
		
		
	Update request data to match API definition.
This commit is contained in:
		| @@ -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(); | ||||
|   | ||||
| @@ -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: | ||||
|   | ||||
| @@ -72,6 +72,7 @@ class AttachmentRequest extends Request | ||||
|                    Bill::class, | ||||
|                    ImportJob::class, | ||||
|                    TransactionJournal::class, | ||||
|                    ImportJob::class, | ||||
|                ] | ||||
|         ); | ||||
|         $model  = $this->string('model'); | ||||
|   | ||||
| @@ -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; | ||||
|   | ||||
| @@ -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()) { | ||||
|   | ||||
| @@ -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: | ||||
|   | ||||
| @@ -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: | ||||
|   | ||||
| @@ -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()], | ||||
|  | ||||
|   | ||||
| @@ -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'), | ||||
|         ]; | ||||
|     } | ||||
|   | ||||
| @@ -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', | ||||
|  | ||||
|  | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -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')), | ||||
|                 ]; | ||||
|             } | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| <?php | ||||
| /** | ||||
|  * JournalLinkRequest.php | ||||
|  * TransactionLinkRequest.php | ||||
|  * Copyright (c) 2018 thegrumpydictator@gmail.com | ||||
|  * | ||||
|  * This file is part of Firefly III. | ||||
| @@ -29,9 +29,9 @@ use Illuminate\Validation\Validator; | ||||
| 
 | ||||
| /** | ||||
|  * | ||||
|  * Class JournalLinkRequest | ||||
|  * Class TransactionLinkRequest | ||||
|  */ | ||||
| class JournalLinkRequest extends Request | ||||
| class TransactionLinkRequest extends Request | ||||
| { | ||||
|     /** | ||||
|      * Authorize logged in users. | ||||
| @@ -74,7 +74,7 @@ class TransactionRequest extends Request | ||||
|             'invoice_date'       => $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, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user