---
displayed_sidebar: servicesSidebar
---
import ParameterTypes from "@site/src/components/ParameterTypes"
# GiftCardService
Provides layer to manipulate gift cards.
## Constructors
#### constructor
`**new GiftCardService**(«destructured»)`
##### 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": "eventBus_",
"type": "[EventBusService](EventBusService.mdx)",
"description": "",
"optional": false,
"defaultValue": "",
"expandable": false,
"children": []
},
{
"name": "giftCardRepository_",
"type": "Repository<[GiftCard](GiftCard.mdx)> & ``{ listGiftCardsAndCount: Method listGiftCardsAndCount }``",
"description": "",
"optional": false,
"defaultValue": "",
"expandable": false,
"children": []
},
{
"name": "giftCardTransactionRepo_",
"type": "Repository<[GiftCardTransaction](GiftCardTransaction.mdx)>",
"description": "",
"optional": false,
"defaultValue": "",
"expandable": false,
"children": []
},
{
"name": "manager_",
"type": "EntityManager",
"description": "",
"optional": false,
"defaultValue": "",
"expandable": false,
"children": []
},
{
"name": "regionService_",
"type": "[RegionService](RegionService.mdx)",
"description": "",
"optional": false,
"defaultValue": "",
"expandable": false,
"children": []
},
{
"name": "transactionManager_",
"type": "`undefined` \\| EntityManager",
"description": "",
"optional": false,
"defaultValue": "",
"expandable": false,
"children": []
},
{
"name": "Events",
"type": "`object`",
"description": "",
"optional": false,
"defaultValue": "",
"expandable": false,
"children": []
},
{
"name": "Events.CREATED",
"type": "`string`",
"description": "",
"optional": false,
"defaultValue": "\"gift_card.created\"",
"expandable": false,
"children": []
}
]} />
## Accessors
#### activeManager\_
`Protected` **activeManager\_**: [object Object]
## Methods
#### atomicPhase\_
`Protected **atomicPhase_**(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
##### 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
Promise<TResult>
___
#### create
`**create**(giftCard): Promise<[GiftCard](GiftCard.mdx)>`
Creates a gift card with provided data given that the data is validated.
##### Parameters
##### Returns
Promise<[GiftCard](GiftCard.mdx)>
___
#### createTransaction
`**createTransaction**(data): Promise<string>`
##### Parameters
##### Returns
Promise<string>
___
#### delete
`**delete**(giftCardId): Promise<void \| [GiftCard](GiftCard.mdx)>`
Deletes a gift card idempotently
##### Parameters
##### Returns
Promise<void \| [GiftCard](GiftCard.mdx)>
___
#### list
`**list**(selector?, config?): Promise<[GiftCard](GiftCard.mdx)[]>`
##### Parameters
##### Returns
Promise<[GiftCard](GiftCard.mdx)[]>
___
#### listAndCount
`**listAndCount**(selector?, config?): Promise<[[GiftCard](GiftCard.mdx)[], number]>`
##### Parameters
##### Returns
Promise<[[GiftCard](GiftCard.mdx)[], number]>
___
#### retrieve
`**retrieve**(giftCardId, config?): Promise<[GiftCard](GiftCard.mdx)>`
Gets a gift card by id.
##### Parameters
##### Returns
Promise<[GiftCard](GiftCard.mdx)>
___
#### retrieveByCode
`**retrieveByCode**(code, config?): Promise<[GiftCard](GiftCard.mdx)>`
##### Parameters
##### Returns
Promise<[GiftCard](GiftCard.mdx)>
___
#### retrieve\_
`Protected **retrieve_**(selector, config?): Promise<[GiftCard](GiftCard.mdx)>`
##### Parameters
##### Returns
Promise<[GiftCard](GiftCard.mdx)>
___
#### shouldRetryTransaction\_
`Protected **shouldRetryTransaction_**(err): boolean`
##### Parameters
` \\| ``{ code: string }``",
"description": "",
"optional": false,
"defaultValue": "",
"expandable": false,
"children": []
}
]} />
##### Returns
`boolean`
___
#### update
`**update**(giftCardId, update): Promise<[GiftCard](GiftCard.mdx)>`
Updates a giftCard.
##### Parameters
##### Returns
Promise<[GiftCard](GiftCard.mdx)>
___
#### withTransaction
`**withTransaction**(transactionManager?): [GiftCardService](GiftCardService.mdx)`
##### Parameters
##### Returns
[GiftCardService](GiftCardService.mdx)
___
#### generateCode
`Static **generateCode**(): string`
Generates a 16 character gift card code
##### Returns
`string`
___
#### resolveTaxRate
`Static Protected **resolveTaxRate**(giftCardTaxRate, region): null \| number`
The tax\_rate of the giftcard can depend on whether regions tax gift cards, an input
provided by the user or the tax rate. Based on these conditions, tax\_rate changes.
##### Parameters
##### Returns
`null` \| `number`