Skip to content

Commit

Permalink
export voucher transactions
Browse files Browse the repository at this point in the history
  • Loading branch information
weronika-kurczyna committed Oct 17, 2023
1 parent a77b532 commit 2f6c6f4
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 91 deletions.
10 changes: 5 additions & 5 deletions packages/sdk/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,8 +155,8 @@ Methods are provided within `client.vouchers.*` namespace.
- [Update Vouchers in bulk](#update-vouchers-in-bulk)
- [Release Validation Session](#release-validation-session)
- [Import Vouchers using CSV](#import-vouchers-using-csv)
- [List Gift Card Transactions](#list-gift-card-transactions)
- [Export Gift Card Transactions](#export-gift-card-transactions)
- [List Voucher Transactions](#list-voucher-transactions)
- [Export Voucher Transactions](#export-voucher-transactions)

#### [Create Voucher](https://docs.voucherify.io/reference/create-voucher)

Expand Down Expand Up @@ -246,16 +246,16 @@ client.vouchers.releaseValidationSession(code, sessionKey)
client.vouchers.importCSV(filePath)
```

#### [List Transactions](https://docs.voucherify.io/reference/list-transactions)
#### [List Voucher Transactions](https://docs.voucherify.io/reference/list-voucher-transactions)

```javascript
client.vouchers.listTransactions(code, query)
```

#### [Export Gift Card Transactions](https://docs.voucherify.io/reference/export-gift-card-transactions)
#### [Export Voucher Transactions](https://docs.voucherify.io/reference/export-voucher-transactions)

```javascript
client.vouchers.exportGiftCardTransactions(code, body)
client.vouchers.exportTransactions(code, body)
```

---
Expand Down
4 changes: 2 additions & 2 deletions packages/sdk/src/Vouchers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,8 @@ export class Vouchers {
/**
* @see https://docs.voucherify.io/reference/export-gift-card-transactions
*/
public exportGiftCardTransactions(code: string, body: T.VouchersExportGiftCardTransactionsRequestBody) {
return this.client.post<T.VouchersExportGiftCardTransactionsResponseBody>(
public exportTransactions(code: string, body: T.VouchersExportTransactionsRequestBody) {
return this.client.post<T.VouchersExportTransactionsResponseBody>(
`/vouchers/${encode(code)}/transactions/export`,
body,
)
Expand Down
60 changes: 7 additions & 53 deletions packages/sdk/src/types/Loyalties.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,11 @@ import { ProductsCreateResponse, ProductsCreateSkuResponse } from './Products'

import { SimpleCustomer } from './Customers'
import { ValidationRulesCreateAssignmentResponse } from './ValidationRules'
import { VouchersResponse } from './Vouchers'
import {
VouchersExportTransactionsRequestBody,
VouchersExportTransactionsResponseBody,
VouchersResponse,
} from './Vouchers'
import { Reward, RewardAssignment } from './Rewards'
import { Category } from './Categories'

Expand Down Expand Up @@ -608,32 +612,7 @@ export interface LoyaltiesListCardTransactionsResponseBody {
has_more: boolean
}

export interface LoyaltiesExportCardTransactionsRequestBody {
order?: 'created_at' | '-created_at'
fields?: LoyaltyCardTransactionsFields[]
}

export interface LoyaltiesExportCardTransactionsResponseBody {
id: string
object: 'export'
created_at: string
status: 'SCHEDULED'
channel: string
exported_object: 'voucher_transactions'
parameters: {
order?: string
fields?: LoyaltyCardTransactionsFields[]
filters: {
voucher_id: {
conditions: {
$in: [string] //memberId
}
}
}
}
result: null
user_id: null | string
}
export type LoyaltiesExportCardTransactionsRequestBody = VouchersExportTransactionsRequestBody

export interface LoyaltiesAddOrRemoveCardBalanceRequestBody {
points: number
Expand Down Expand Up @@ -742,32 +721,7 @@ export interface LoyaltiesListCardTransactionsResponseBody {
has_more: boolean
}

export interface LoyaltiesExportCardTransactionsRequestBody {
order?: 'created_at' | '-created_at'
fields?: LoyaltyCardTransactionsFields[]
}

export interface LoyaltiesExportCardTransactionsResponseBody {
id: string
object: 'export'
created_at: string
status: 'SCHEDULED'
channel: string
exported_object: 'voucher_transactions'
parameters: {
order?: string
fields?: LoyaltyCardTransactionsFields[]
filters: {
voucher_id: {
conditions: {
$in: [string] //memberId
}
}
}
}
result: null
user_id: null | string
}
export type LoyaltiesExportCardTransactionsResponseBody = VouchersExportTransactionsResponseBody

export interface LoyaltiesAddOrRemoveCardBalanceRequestBody {
points: number
Expand Down
55 changes: 26 additions & 29 deletions packages/sdk/src/types/Vouchers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -385,38 +385,23 @@ export interface GiftCardTransactionRemoval {

// Export

export interface GiftCardTransactionsExport {
export interface VoucherTransactionsExport {
order?: '-created_at' | 'created_at'
fields?: GiftCardTransactionsExportFields[]
fields?: VoucherTransactionsExportFields[]
}

export interface GiftCardTransactionsExportFilters {
voucher_id: {
conditions: {
$in: string[]
$not_in?: string[]
$is?: string
$is_not?: string
$has_value?: string
$is_unknown?: string
$starts_with?: string
$ends_with?: string
}
}
junction?: 'AND' | 'OR'
}

export type GiftCardTransactionsExportFields =
export type VoucherTransactionsExportFields =
| 'id'
| 'campaign_id'
| 'voucher_id'
| 'type'
| 'source_id'
| 'reason'
| 'source'
| 'balance'
| 'amount'
| 'reason'
| 'related_transaction_id'
| 'created_at'
| 'voucher_id'
| 'campaign_id'
| 'source'
| 'details'

// 0-level types
Expand All @@ -433,18 +418,30 @@ export interface VouchersListTransactionsResponseBody {
has_more: boolean
}

export interface VouchersExportGiftCardTransactionsRequestBody {
parameters?: GiftCardTransactionsExport
// Export transactions

export interface VouchersExportTransactionsRequestBody {
parameters?: VoucherTransactionsExport
}

export interface VouchersExportGiftCardTransactionsResponseBody {
export interface VouchersExportTransactionsResponseBody {
id: string
object: 'export'
created_at: string
status: 'SCHEDULED'
channel: 'API'
exported_object: string
parameters: GiftCardTransactionsExport & { filters: GiftCardTransactionsExportFilters }
channel: string
exported_object: 'voucher_transactions'
parameters: {
order?: string
fields?: VoucherTransactionsExportFields[]
filters: {
voucher_id: {
conditions: {
$in: [string]
}
}
}
}
result: null
user_id: string | null
}
4 changes: 2 additions & 2 deletions packages/sdk/test/vouchers.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ describe('Vouchers API', () => {
describe('List Gift Card Transactions Export', () => {
it('should throw error when code does not exist', async () => {
try {
await client.vouchers.exportGiftCardTransactions(generateRandomString(55), {
await client.vouchers.exportTransactions(generateRandomString(55), {
parameters: {
order: '-created_at',
fields: ['id', 'type'],
Expand All @@ -53,7 +53,7 @@ describe('Vouchers API', () => {
})
it('should return all the required fields, the `filters` object and should not return `order` and `fields` if they were not passed in request body', async () => {
const code = (await generateGiftVoucher()).code
const response = await client.vouchers.exportGiftCardTransactions(code, { parameters: {} })
const response = await client.vouchers.exportTransactions(code, { parameters: {} })
expect(typeof response.parameters.filters).toBe('object')
expect(response.parameters).not.toContain('order')
expect(response.parameters).not.toContain('fields')
Expand Down

0 comments on commit 2f6c6f4

Please sign in to comment.