feature/IO-3556-Chattr-Integration - Retry beef up / tweeks

This commit is contained in:
Dave
2026-02-11 11:37:47 -05:00
parent 503c217c99
commit d08bfc61cd
2 changed files with 204 additions and 8 deletions

View File

@@ -61,6 +61,8 @@ class ChatterApiClient {
const err = new Error(`Chatter API error ${res.status} | ${data?.message}`);
err.status = res.status;
err.data = data;
const retryAfterMs = parseRetryAfterMs(res.headers.get("retry-after"));
if (retryAfterMs != null) err.retryAfterMs = retryAfterMs;
throw err;
}
return data;
@@ -78,6 +80,17 @@ function safeJson(text) {
}
}
function parseRetryAfterMs(value) {
if (!value) return null;
const sec = Number(value);
if (Number.isFinite(sec) && sec >= 0) return Math.ceil(sec * 1000);
const dateMs = Date.parse(value);
if (!Number.isFinite(dateMs)) return null;
return Math.max(0, dateMs - Date.now());
}
/**
* Fetches Chatter API token from AWS Secrets Manager
* SecretId format: CHATTER_COMPANY_KEY_<companyId>