diff --git a/packages/indexer-cli/src/commands/indexer/actions/approve.ts b/packages/indexer-cli/src/commands/indexer/actions/approve.ts index dba7076b6..52b7f8079 100644 --- a/packages/indexer-cli/src/commands/indexer/actions/approve.ts +++ b/packages/indexer-cli/src/commands/indexer/actions/approve.ts @@ -4,7 +4,8 @@ import chalk from 'chalk' import { loadValidatedConfig } from '../../../config' import { createIndexerManagementClient } from '../../../client' import { fixParameters, printObjectOrArray } from '../../../command-helpers' -import { approveActions } from '../../../actions' +import { approveActions, fetchActions } from '../../../actions' +import { ActionStatus } from '@graphprotocol/indexer-common' const HELP = ` ${chalk.bold('graph indexer actions approve')} [options] [ ...] @@ -37,6 +38,8 @@ module.exports = { let numericActionIDs: number[] + const config = loadValidatedConfig() + const client = await createIndexerManagementClient({ url: config.api }) try { if (!['json', 'yaml', 'table'].includes(outputFormat)) { throw Error( @@ -48,7 +51,18 @@ module.exports = { throw Error(`Missing required argument: 'actionID'`) } - numericActionIDs = actionIDs.map(action => +action) + // If actionIDs is 'queued', then populate actionIDs with actions that are queued + if (actionIDs.join() == 'queued') { + const queuedActions = await fetchActions(client, { + status: ActionStatus.QUEUED, + }) + numericActionIDs = queuedActions.map(action => action.id) + } else { + numericActionIDs = actionIDs.map(action => +action) + } + if (numericActionIDs.length === 0) { + throw Error(`Failed to process action ids, check queue for available actions`) + } inputSpinner.succeed('Processed input parameters') } catch (error) { @@ -60,9 +74,6 @@ module.exports = { const actionSpinner = toolbox.print.spin(`Approving ${actionIDs.length} actions`) try { - const config = loadValidatedConfig() - const client = await createIndexerManagementClient({ url: config.api }) - const queuedAction = await approveActions(client, numericActionIDs) actionSpinner.succeed(`Actions approved`) diff --git a/packages/indexer-common/src/actions.ts b/packages/indexer-common/src/actions.ts index 43074c03e..7372c7199 100644 --- a/packages/indexer-common/src/actions.ts +++ b/packages/indexer-common/src/actions.ts @@ -128,6 +128,7 @@ export interface ActionFilter { } export interface ActionResult { + id: number type: ActionType deploymentID: string allocationID: string | null diff --git a/packages/indexer-common/src/indexer-management/client.ts b/packages/indexer-common/src/indexer-management/client.ts index 9e5c607ba..552725d48 100644 --- a/packages/indexer-common/src/indexer-management/client.ts +++ b/packages/indexer-common/src/indexer-management/client.ts @@ -180,6 +180,7 @@ const SCHEMA_SDL = gql` status: String! transaction: String failureReason: String + priority: Int } input ActionFilter {