--- displayed_sidebar: servicesSidebar --- import ParameterTypes from "@site/src/components/ParameterTypes" # IdempotencyKeyService ## constructor ### Parameters ___ ## Properties `", "description": "", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "__container__", "type": "`any`", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "__moduleDeclaration__", "type": "`Record`", "description": "", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "idempotencyKeyRepository_", "type": "Repository<[IdempotencyKey](../../entities/classes/entities.IdempotencyKey.mdx)>", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "manager_", "type": "`EntityManager`", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "transactionManager_", "type": "`undefined` \\| `EntityManager`", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ]} /> ___ ## Accessors ### activeManager\_ #### Returns ___ ## Methods ### atomicPhase\_ Wraps some work within a transactional block. If the service already has a transaction manager attached this will be reused, otherwise a new transaction manager is created. #### Type Parameters #### Parameters Promise<TResult>", "description": "the transactional work to be done", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "isolationOrErrorHandler", "type": "`IsolationLevel` \\| (`error`: `TError`) => Promise<void \\| TResult>", "description": "the isolation level to be used for the work.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "maybeErrorHandlerOrDontFail", "type": "(`error`: `TError`) => Promise<void \\| TResult>", "description": "Potential error handler", "optional": true, "defaultValue": "", "expandable": false, "children": [] } ]} /> #### Returns ___ ### create Creates an idempotency key for a request. If no idempotency key is provided in request, we will create a unique identifier. #### Parameters #### Returns ___ ### initializeRequest Execute the initial steps in a idempotent request. #### Parameters `", "description": "params of request", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "reqPath", "type": "`string`", "description": "path of request", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ]} /> #### Returns ___ ### lock Locks an idempotency. #### Parameters #### Returns ___ ### retrieve Retrieves an idempotency key #### Parameters #### Returns ___ ### shouldRetryTransaction\_ #### Parameters ` \\| `object`", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ]} /> #### Returns ___ ### update Locks an idempotency. #### Parameters #### Returns ___ ### withTransaction #### Parameters #### Returns ___ ### workStage Performs an atomic work stage. An atomic work stage contains some related functionality, that needs to be transactionally executed in isolation. An idempotent request will always consist of 2 or more of these phases. The required phases are "started" and "finished". #### Parameters Promise<IdempotencyCallbackResult>", "description": "functionality to execute within the phase", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ]} /> #### Returns