IdempotencyKeyService
constructor
Parameters
__namedParametersInjectedDependenciesRequiredProperties
manager_EntityManagerRequiredtransactionManager_undefined | EntityManagerRequired__container__anyRequired__configModule__Record<string, unknown>__moduleDeclaration__Record<string, unknown>Accessors
activeManager_
Returns
EntityManagerEntityManagerRequiredMethods
withTransaction
Parameters
transactionManagerEntityManagerReturns
thisthisRequiredshouldRetryTransaction_
Parameters
errRecord<string, unknown> | objectRequiredReturns
booleanbooleanRequiredatomicPhase_
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
TResultobjectRequiredTErrorobjectRequiredParameters
work(transactionManager: EntityManager) => Promise<TResult>Requiredthe transactional work to be done
isolationOrErrorHandlerIsolationLevel | (error: TError) => Promise<void | TResult>the isolation level to be used for the work.
maybeErrorHandlerOrDontFail(error: TError) => Promise<void | TResult>Potential error handler
Returns
PromisePromise<TResult>Requiredthe result of the transactional work
initializeRequest
Execute the initial steps in a idempotent request.
Parameters
headerKeystringRequiredpotential idempotency key from header
reqMethodstringRequiredmethod of request
reqParamsRecord<string, unknown>Requiredparams of request
reqPathstringRequiredpath of request
Returns
the existing or created idempotency key
create
Creates an idempotency key for a request. If no idempotency key is provided in request, we will create a unique identifier.
Parameters
payloadCreateIdempotencyKeyInputRequiredpayload of request to create idempotency key for
Returns
the created idempotency key
retrieve
Retrieves an idempotency key
Parameters
key or selector to retrieve
Returns
idempotency key
lock
Locks an idempotency.
Parameters
idempotencyKeystringRequiredkey to lock
Returns
result of the update operation
update
Locks an idempotency.
Parameters
idempotencyKeystringRequiredkey to update
update object
Returns
result of the update operation
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
idempotencyKeystringRequiredcurrent idempotency key
callback(transactionManager: EntityManager) => Promise<IdempotencyCallbackResult>Requiredfunctionality to execute within the phase
Returns
new updated idempotency key
Was this section helpful?