From c7043dffc2d106e46a9102d4f08cec5dee4f2a3c Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 9 Sep 2018 07:57:15 +0200 Subject: [PATCH] Extra code for #1668 --- app/Services/Ynab/Request/GetBudgetsRequest.php | 8 +++++--- app/Services/Ynab/Request/YnabRequest.php | 1 + app/Support/Import/Routine/Ynab/ImportDataHandler.php | 10 +++++++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/app/Services/Ynab/Request/GetBudgetsRequest.php b/app/Services/Ynab/Request/GetBudgetsRequest.php index 3af6c54eb1..a39e363a7f 100644 --- a/app/Services/Ynab/Request/GetBudgetsRequest.php +++ b/app/Services/Ynab/Request/GetBudgetsRequest.php @@ -50,17 +50,19 @@ class GetBudgetsRequest extends YnabRequest Log::debug(sprintf('URI is %s', $uri)); $result = $this->authenticatedGetRequest($uri, []); - //Log::debug('Raw GetBudgetsRequest result', $result); + Log::debug('Raw GetBudgetsRequest result', $result); // expect data in [data][budgets] $rawBudgets = $result['data']['budgets'] ?? []; $freshBudgets = []; foreach ($rawBudgets as $rawBudget) { - Log::debug('Raw content of budget is:', $rawBudget); + Log::debug(sprintf('Raw content of budget is: %s', json_encode($rawBudget, true))); + Log::debug(sprintf('Content of currency format is: %s', json_encode($rawBudget['currency_format'] ?? [], true))); + Log::debug(sprintf('ISO code is: %s', $rawBudget['currency_format']['iso_code'] ?? '(none)')); $freshBudgets[] = [ 'id' => $rawBudget['id'], 'name' => $rawBudget['name'], - 'currency_code' => $rawBudget['currency_format']['iso_code'] ?? 'EUR', + 'currency_code' => $rawBudget['currency_format']['iso_code'] ?? null, ]; } $this->budgets = $freshBudgets; diff --git a/app/Services/Ynab/Request/YnabRequest.php b/app/Services/Ynab/Request/YnabRequest.php index 3e6a00a185..382f1d3003 100644 --- a/app/Services/Ynab/Request/YnabRequest.php +++ b/app/Services/Ynab/Request/YnabRequest.php @@ -74,6 +74,7 @@ abstract class YnabRequest } try { $content = trim($res->getBody()->getContents()); + Log::debug(sprintf('Raw body is: %s', $content)); } catch (RuntimeException $e) { Log::error($e->getMessage()); Log::error($e->getTraceAsString()); diff --git a/app/Support/Import/Routine/Ynab/ImportDataHandler.php b/app/Support/Import/Routine/Ynab/ImportDataHandler.php index 01982df142..4986bd78ea 100644 --- a/app/Support/Import/Routine/Ynab/ImportDataHandler.php +++ b/app/Support/Import/Routine/Ynab/ImportDataHandler.php @@ -29,6 +29,7 @@ use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; use FireflyIII\Models\ImportJob; +use FireflyIII\Models\TransactionCurrency; use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\ImportJob\ImportJobRepositoryInterface; use FireflyIII\Services\Ynab\Request\GetTransactionsRequest; @@ -42,6 +43,8 @@ class ImportDataHandler { /** @var AccountRepositoryInterface */ private $accountRepository; + /** @var TransactionCurrency */ + private $defaultCurrency; /** @var ImportJob */ private $importJob; /** @var OpposingAccountMapper */ @@ -56,8 +59,9 @@ class ImportDataHandler */ public function run(): void { - $config = $this->repository->getConfiguration($this->importJob); - $token = $config['access_token']; + $config = $this->repository->getConfiguration($this->importJob); + $this->defaultCurrency = app('amount')->getDefaultCurrencyByUser($this->importJob->user); + $token = $config['access_token']; // make request for each mapping: $mapping = $config['mapping'] ?? []; $total = [[]]; @@ -179,7 +183,7 @@ class ImportDataHandler 'transactions' => [ [ 'currency_id' => null, - 'currency_code' => $budget['currency_code'], + 'currency_code' => $budget['currency_code'] ?? $this->defaultCurrency->code, 'description' => null, 'amount' => bcdiv((string)$transaction['amount'], '1000'), 'budget_id' => null,