From d7b25e0dae00fa8c5c7609842951d711857dc0f0 Mon Sep 17 00:00:00 2001 From: Aaron Fiore Date: Tue, 30 Jul 2024 22:42:51 -0700 Subject: [PATCH] php: fetch: prices: base: catch unrecoverable CoinGecko error Thrown when 'all' years are requested without paid-plan API key. --- .../lib/internal/fetch/prices/internal/base.php | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/container/src/finance/lib/internal/fetch/prices/internal/base.php b/container/src/finance/lib/internal/fetch/prices/internal/base.php index adc4dbb..84267a8 100644 --- a/container/src/finance/lib/internal/fetch/prices/internal/base.php +++ b/container/src/finance/lib/internal/fetch/prices/internal/base.php @@ -354,10 +354,18 @@ namespace docker_finance\prices\internal $code = $e->getCode(); $message = $e->getMessage(); - utils\CLI::print_warning( - "server sent error '{$message}' with code '{$code}' for '{$asset['id']}'" - . " - retrying in '{$timer}' seconds" - ); + $print = "server sent error '{$message}' with code '{$code}' for '{$asset['id']}'" + . " - retrying in '{$timer}' seconds"; + + switch ($code) { + // CoinGecko's unrecoverable error (paid plan needed) + case 10012: + utils\CLI::throw_fatal($print); + break; + default: + utils\CLI::print_warning($print); + break; + } $i = 1; $j = 1;