Co-authored-by: shahednasser <shahednasser@users.noreply.github.com> Co-authored-by: Shahed Nasser <shahednasser@gmail.com>
8.8 KiB
Class: IdempotencyKeyService
Hierarchy
-
TransactionBaseService↳
IdempotencyKeyService
Constructors
constructor
• new IdempotencyKeyService(«destructured»)
Parameters
| Name | Type |
|---|---|
«destructured» |
InjectedDependencies |
Overrides
TransactionBaseService.constructor
Defined in
medusa/src/services/idempotency-key.ts:25
Properties
__configModule__
• Protected Optional Readonly __configModule__: Record<string, unknown>
Inherited from
TransactionBaseService.__configModule__
Defined in
medusa/src/interfaces/transaction-base-service.ts:14
__container__
• Protected Readonly __container__: any
Inherited from
TransactionBaseService.__container__
Defined in
medusa/src/interfaces/transaction-base-service.ts:13
__moduleDeclaration__
• Protected Optional Readonly __moduleDeclaration__: Record<string, unknown>
Inherited from
TransactionBaseService.__moduleDeclaration__
Defined in
medusa/src/interfaces/transaction-base-service.ts:15
idempotencyKeyRepository_
• Protected Readonly idempotencyKeyRepository_: Repository<IdempotencyKey>
Defined in
medusa/src/services/idempotency-key.ts:23
manager_
• Protected manager_: EntityManager
Inherited from
TransactionBaseService.manager_
Defined in
medusa/src/interfaces/transaction-base-service.ts:5
transactionManager_
• Protected transactionManager_: undefined | EntityManager
Inherited from
TransactionBaseService.transactionManager_
Defined in
medusa/src/interfaces/transaction-base-service.ts:6
Accessors
activeManager_
• Protected get activeManager_(): EntityManager
Returns
EntityManager
Inherited from
TransactionBaseService.activeManager_
Defined in
medusa/src/interfaces/transaction-base-service.ts:8
Methods
atomicPhase_
▸ Protected atomicPhase_<TResult, TError>(work, isolationOrErrorHandler?, maybeErrorHandlerOrDontFail?): Promise<TResult>
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
| Name |
|---|
TResult |
TError |
Parameters
| Name | Type | Description |
|---|---|---|
work |
(transactionManager: EntityManager) => Promise<TResult> |
the transactional work to be done |
isolationOrErrorHandler? |
IsolationLevel | (error: TError) => Promise<void | TResult> |
the isolation level to be used for the work. |
maybeErrorHandlerOrDontFail? |
(error: TError) => Promise<void | TResult> |
Potential error handler |
Returns
Promise<TResult>
the result of the transactional work
Inherited from
TransactionBaseService.atomicPhase_
Defined in
medusa/src/interfaces/transaction-base-service.ts:56
create
▸ create(payload): Promise<IdempotencyKey>
Creates an idempotency key for a request. If no idempotency key is provided in request, we will create a unique identifier.
Parameters
| Name | Type | Description |
|---|---|---|
payload |
CreateIdempotencyKeyInput |
payload of request to create idempotency key for |
Returns
Promise<IdempotencyKey>
the created idempotency key
Defined in
medusa/src/services/idempotency-key.ts:68
initializeRequest
▸ initializeRequest(headerKey, reqMethod, reqParams, reqPath): Promise<IdempotencyKey>
Execute the initial steps in a idempotent request.
Parameters
| Name | Type | Description |
|---|---|---|
headerKey |
string |
potential idempotency key from header |
reqMethod |
string |
method of request |
reqParams |
Record<string, unknown> |
params of request |
reqPath |
string |
path of request |
Returns
Promise<IdempotencyKey>
the existing or created idempotency key
Defined in
medusa/src/services/idempotency-key.ts:40
lock
▸ lock(idempotencyKey): Promise<IdempotencyKey>
Locks an idempotency.
Parameters
| Name | Type | Description |
|---|---|---|
idempotencyKey |
string |
key to lock |
Returns
Promise<IdempotencyKey>
result of the update operation
Defined in
medusa/src/services/idempotency-key.ts:138
retrieve
▸ retrieve(idempotencyKeyOrSelector): Promise<IdempotencyKey>
Retrieves an idempotency key
Parameters
| Name | Type | Description |
|---|---|---|
idempotencyKeyOrSelector |
string | Selector<IdempotencyKey> |
key or selector to retrieve |
Returns
Promise<IdempotencyKey>
idempotency key
Defined in
medusa/src/services/idempotency-key.ts:86
shouldRetryTransaction_
▸ Protected shouldRetryTransaction_(err): boolean
Parameters
| Name | Type |
|---|---|
err |
Record<string, unknown> | { code: string } |
Returns
boolean
Inherited from
TransactionBaseService.shouldRetryTransaction_
Defined in
medusa/src/interfaces/transaction-base-service.ts:37
update
▸ update(idempotencyKey, update): Promise<IdempotencyKey>
Locks an idempotency.
Parameters
| Name | Type | Description |
|---|---|---|
idempotencyKey |
string |
key to update |
update |
DeepPartial<IdempotencyKey> |
update object |
Returns
Promise<IdempotencyKey>
result of the update operation
Defined in
medusa/src/services/idempotency-key.ts:167
withTransaction
▸ withTransaction(transactionManager?): IdempotencyKeyService
Parameters
| Name | Type |
|---|---|
transactionManager? |
EntityManager |
Returns
Inherited from
TransactionBaseService.withTransaction
Defined in
medusa/src/interfaces/transaction-base-service.ts:20
workStage
▸ workStage(idempotencyKey, callback): Promise<IdempotencyKey>
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
| Name | Type | Description |
|---|---|---|
idempotencyKey |
string |
current idempotency key |
callback |
(transactionManager: EntityManager) => Promise<IdempotencyCallbackResult> |
functionality to execute within the phase |
Returns
Promise<IdempotencyKey>
new updated idempotency key