. */ declare(strict_types=1); namespace FireflyIII\Services\Spectre\Request; use FireflyIII\Services\Spectre\Object\Customer; use Log; /** * Class ListCustomersRequest * * @codeCoverageIgnore * @deprecated */ class ListCustomersRequest extends SpectreRequest { /** @var array */ private $customers = []; /** * * @throws \FireflyIII\Exceptions\FireflyException * */ public function call(): void { $hasNextPage = true; $nextId = 0; while ($hasNextPage) { Log::debug(sprintf('Now calling ListCustomersRequest for next_id %d', $nextId)); $parameters = ['from_id' => $nextId]; $uri = '/api/v4/customers/?' . http_build_query($parameters); $response = $this->sendSignedSpectreGet($uri, []); // count entries: Log::debug(sprintf('Found %d entries in data-array', count($response['data']))); // extract next ID $hasNextPage = false; if (isset($response['meta']['next_id']) && (int)$response['meta']['next_id'] > $nextId) { $hasNextPage = true; $nextId = $response['meta']['next_id']; Log::debug(sprintf('Next ID is now %d.', $nextId)); } // store customers: foreach ($response['data'] as $customerArray) { $this->customers[] = new Customer($customerArray); } } } /** * @return array */ public function getCustomers(): array { return $this->customers; } }