Skip to main content
Skip to main content
You're viewing the documentation for v1, which isn't the latest Medusa version.Latest documentation

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?