Skip to content

Commit ed055fb

Browse files
committed
Use constants for query status
1 parent ccafa38 commit ed055fb

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

integration.js

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,15 @@ const {
1414
const { get } = require('lodash');
1515
const { DateTime } = require('luxon');
1616

17+
// Query status constants
18+
const QUERY_STATUS = {
19+
SUCCEEDED: 'SUCCEEDED',
20+
RUNNING: 'RUNNING',
21+
QUEUED: 'QUEUED',
22+
FAILED: 'FAILED',
23+
CANCELLED: 'CANCELLED'
24+
};
25+
1726
// Athena query execution configuration constants
1827
const MAX_QUERY_STATUS_POLLING_ATTEMPTS = 10; // 10 attempts * 3 second interval = 30 seconds wait time
1928
const POLLING_WAIT_INTERVAL = 3000; // 3 second intervals
@@ -291,11 +300,11 @@ async function executeAthenaQuery(athenaClient, queryParams, options) {
291300
Logger.trace({ queryExecutionId }, 'Started Athena query execution');
292301

293302
// Wait for query to complete with timeout
294-
let queryStatus = 'RUNNING';
303+
let queryStatus = QUERY_STATUS.RUNNING;
295304
let attempts = 0;
296305
let statusResult = null;
297306

298-
while (queryStatus === 'RUNNING' || queryStatus === 'QUEUED') {
307+
while (queryStatus === QUERY_STATUS.RUNNING || queryStatus === QUERY_STATUS.QUEUED) {
299308
if (attempts >= MAX_QUERY_STATUS_POLLING_ATTEMPTS) {
300309
Logger.trace(
301310
{
@@ -340,9 +349,9 @@ async function executeAthenaQuery(athenaClient, queryParams, options) {
340349
attempts++;
341350
}
342351

343-
if (queryStatus === 'FAILED' || queryStatus === 'CANCELLED') {
352+
if (queryStatus === QUERY_STATUS.FAILED || queryStatus === QUERY_STATUS.CANCELLED) {
344353
const errorMsg =
345-
queryStatus === 'FAILED'
354+
queryStatus === QUERY_STATUS.FAILED
346355
? `Query failed: ${statusResult.QueryExecution.Status.StateChangeReason}`
347356
: 'Query was cancelled';
348357
throw new Error(errorMsg);
@@ -851,7 +860,7 @@ async function checkQueryStatusAndGetResults(queryExecutionId, options) {
851860

852861
Logger.trace({ queryStatus, queryExecutionId }, 'Retrieved query status');
853862

854-
if (queryStatus === 'SUCCEEDED') {
863+
if (queryStatus === QUERY_STATUS.SUCCEEDED) {
855864
// Query completed successfully, get results
856865
const executionStats = statusResult.QueryExecution.Statistics || {};
857866
const queryExecution = statusResult.QueryExecution || {};
@@ -911,7 +920,7 @@ async function checkQueryStatusAndGetResults(queryExecutionId, options) {
911920
queryExecutionId: queryExecutionId,
912921
executionStats: queryStats
913922
};
914-
} else if (queryStatus === 'RUNNING' || queryStatus === 'QUEUED') {
923+
} else if (queryStatus === QUERY_STATUS.RUNNING || queryStatus === QUERY_STATUS.QUEUED) {
915924
// Query still running
916925
const partialStats = statusResult.QueryExecution?.Statistics || {};
917926
const queryExecution = statusResult.QueryExecution || {};
@@ -935,7 +944,7 @@ async function checkQueryStatusAndGetResults(queryExecutionId, options) {
935944
queryExecutionId: queryExecutionId,
936945
executionStats: incompleteStats
937946
};
938-
} else if (queryStatus === 'FAILED' || queryStatus === 'CANCELLED') {
947+
} else if (queryStatus === QUERY_STATUS.FAILED || queryStatus === QUERY_STATUS.CANCELLED) {
939948
// Query failed or was cancelled
940949
const errorReason = statusResult.QueryExecution.Status.StateChangeReason || 'Unknown error';
941950
throw new Error(`Query ${queryStatus.toLowerCase()}: ${errorReason}`);

0 commit comments

Comments
 (0)