. */ declare(strict_types=1); namespace FireflyIII\Services\Ynab\Request; use Log; /** * Class GetBudgetsRequest * @codeCoverageIgnore */ class GetBudgetsRequest extends YnabRequest { /** @var array */ public $budgets; public function __construct() { parent::__construct(); $this->budgets = []; } /** * */ public function call(): void { Log::debug('Now in GetBudgetsRequest::call()'); $uri = $this->api . '/budgets'; Log::debug(sprintf('URI is %s', $uri)); $result = $this->authenticatedGetRequest($uri, []); Log::debug('Raw GetBudgetsRequest result', $result); // expect data in [data][budgets] $rawBudgets = $result['data']['budgets'] ?? []; $freshBudgets = []; foreach ($rawBudgets as $rawBudget) { Log::debug(sprintf('Raw content of budget is: %s', json_encode($rawBudget))); Log::debug(sprintf('Content of currency format is: %s', json_encode($rawBudget['currency_format'] ?? []))); 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'] ?? null, ]; } $this->budgets = $freshBudgets; } }