Skip to main content
Skip to main content

IdempotencyKeyService

constructor

Parameters

__namedParametersInjectedDependenciesRequired

Properties

manager_EntityManagerRequired
transactionManager_undefined | EntityManagerRequired
__container__anyRequired
idempotencyKeyRepository_Repository<IdempotencyKey>Required
__configModule__Record<string, unknown>
__moduleDeclaration__Record<string, unknown>

Accessors

activeManager_

Returns

EntityManagerEntityManagerRequired

Methods

withTransaction

Parameters

transactionManagerEntityManager

Returns

thisthisRequired

shouldRetryTransaction_

Parameters

errRecord<string, unknown> | objectRequired

Returns

booleanbooleanRequired

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

TResultobjectRequired
TErrorobjectRequired

Parameters

work(transactionManager: EntityManager) => Promise<TResult>Required
the 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>Required
the result of the transactional work

initializeRequest

Execute the initial steps in a idempotent request.

Parameters

headerKeystringRequired
potential idempotency key from header
reqMethodstringRequired
method of request
reqParamsRecord<string, unknown>Required
params of request
reqPathstringRequired
path of request

Returns

PromisePromise<IdempotencyKey>Required
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

payloadCreateIdempotencyKeyInputRequired
payload of request to create idempotency key for

Returns

PromisePromise<IdempotencyKey>Required
the created idempotency key

retrieve

Retrieves an idempotency key

Parameters

idempotencyKeyOrSelectorstring | Selector<IdempotencyKey>Required
key or selector to retrieve

Returns

PromisePromise<IdempotencyKey>Required
idempotency key

lock

Locks an idempotency.

Parameters

idempotencyKeystringRequired
key to lock

Returns

PromisePromise<IdempotencyKey>Required
result of the update operation

update

Locks an idempotency.

Parameters

idempotencyKeystringRequired
key to update
updateDeepPartial<IdempotencyKey>Required
update object

Returns

PromisePromise<IdempotencyKey>Required
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

idempotencyKeystringRequired
current idempotency key
callback(transactionManager: EntityManager) => Promise<IdempotencyCallbackResult>Required
functionality to execute within the phase

Returns

PromisePromise<IdempotencyKey>Required
new updated idempotency key
Was this section helpful?