Skip to content
This repository has been archived by the owner on Feb 6, 2024. It is now read-only.

Commit

Permalink
feat: made listFinancialEventsByNextToken and fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
justinemmanuelmercado committed Jun 19, 2020
1 parent 34673d1 commit 3cfc578
Show file tree
Hide file tree
Showing 3 changed files with 183 additions and 2 deletions.
8 changes: 7 additions & 1 deletion src/sections/finances/codec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,7 @@ enum AdjustmentTypeEnum {
const AdjustmentType = enumeration(AdjustmentTypeEnum)

const AdjustmentItem = Codec.interface({
Quantity: optional(string),
Quantity: optional(ensureString), // Docs and mock responses list this as `string`
PerUnitAmount: optional(CurrencyAmount),
TotalAmount: optional(CurrencyAmount),
SellerSKU: optional(string),
Expand Down Expand Up @@ -528,3 +528,9 @@ export const ListFinancialEventsResponse = Codec.interface({
ListFinancialEventsResult: ListFinancialEvents,
}),
})

export const ListFinancialEventsByNextTokenResponse = Codec.interface({
ListFinancialEventsByNextTokenResponse: Codec.interface({
ListFinancialEventsByNextTokenResult: ListFinancialEvents,
}),
})
26 changes: 25 additions & 1 deletion src/sections/finances/finances.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {
ListFinancialEventGroupsByNextTokenResponse,
ListFinancialEventGroupsResponse,
ListFinancialEvents,
ListFinancialEventsByNextTokenResponse,
ListFinancialEventsResponse,
} from './codec'

Expand All @@ -30,6 +31,29 @@ interface ListFinancicalEventsParameters {
export class Finances {
constructor(private httpClient: HttpClient) {}

async listFinancialEventsByNextToken(
nextToken: NextToken<'ListFinancialEvents'>,
): Promise<[ListFinancialEvents, RequestMeta]> {
const [response, meta] = await this.httpClient.request('POST', {
resource: Resource.Finances,
version: FINANCES_API_VERSION,
action: 'ListFinancialEventsByNextToken',
parameters: {
NextToken: nextToken.token,
},
})

return ListFinancialEventsByNextTokenResponse.decode(response).caseOf({
Right: (x) => [
x.ListFinancialEventsByNextTokenResponse.ListFinancialEventsByNextTokenResult,
meta,
],
Left: (error) => {
throw new ParsingError(error)
},
})
}

async listFinancialEvents(
parameters: RequireOnlyOne<
ListFinancicalEventsParameters,
Expand Down Expand Up @@ -63,7 +87,7 @@ export class Finances {
const [response, meta] = await this.httpClient.request('POST', {
resource: Resource.Finances,
version: FINANCES_API_VERSION,
action: 'ListFinancialEventGroups',
action: 'ListFinancialEventGroupsByNextToken',
parameters: {
NextToken: nextToken.token,
},
Expand Down
151 changes: 151 additions & 0 deletions test/unit/__snapshots__/finances.test.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -1637,3 +1637,154 @@ Array [
},
]
`;

exports[`finances listFinancialEventsByNextToken returns a next token and financial events list if succesful 1`] = `
Array [
Object {
"FinancialEvents": Object {
"AdjustmentEventList": Array [
Object {
"AdjustmentItemList": Array [
Object {
"PerUnitAmount": Object {
"CurrencyAmount": 3.38,
"CurrencyCode": "USD",
},
"ProductDescription": "Shacke Metal Shoe Horn 7.5&quot; inches - Double Sided Stainless
Steel (Silver)",
"Quantity": "1",
"SellerSKU": "KL-BPYA-C1VH",
"TotalAmount": Object {
"CurrencyAmount": 3.38,
"CurrencyCode": "USD",
},
},
],
"AdjustmentType": "REVERSAL_REIMBURSEMENT",
},
],
"AffordabilityExpenseEventList": Array [
Object {
"AmazonOrderId": "931-2463294-5740665",
"BaseExpense": Object {
"CurrencyAmount": -100,
"CurrencyCode": "INR",
},
"MarketplaceId": "A2XZLSVIQ0F4JT",
"PostedDate": 2018-02-08T13:17:15.000Z,
"TaxTypeCGST": Object {
"CurrencyAmount": 0,
"CurrencyCode": "INR",
},
"TaxTypeIGST": Object {
"CurrencyAmount": -18,
"CurrencyCode": "INR",
},
"TaxTypeSGST": Object {
"CurrencyAmount": 0,
"CurrencyCode": "INR",
},
"TotalExpense": Object {
"CurrencyAmount": -118,
"CurrencyCode": "INR",
},
"TransactionType": "Charge",
},
],
"AffordabilityExpenseReversalEventList": Array [
Object {
"AmazonOrderId": "931-2463294-5740665",
"BaseExpense": Object {
"CurrencyAmount": 100,
"CurrencyCode": "INR",
},
"MarketplaceId": "A2XZLSVIQ0F4JT",
"PostedDate": 2018-02-08T13:17:15.000Z,
"TaxTypeCGST": Object {
"CurrencyAmount": 0,
"CurrencyCode": "INR",
},
"TaxTypeIGST": Object {
"CurrencyAmount": 18,
"CurrencyCode": "INR",
},
"TaxTypeSGST": Object {
"CurrencyAmount": 0,
"CurrencyCode": "INR",
},
"TotalExpense": Object {
"CurrencyAmount": 118,
"CurrencyCode": "INR",
},
"TransactionType": "Refund",
},
],
"DebtRecoveryEventList": Array [],
"PayWithAmazonEventList": Array [],
"PerformanceBondRefundEventList": Array [],
"ProductAdsPaymentEventList": Array [
Object {
"baseValue": Object {
"CurrencyAmount": 115.34,
"CurrencyCode": "USD",
},
"invoiceId": "TR1W0B4YB-6",
"taxValue": Object {
"CurrencyAmount": 21.91,
"CurrencyCode": "USD",
},
"transactionType": "Charge",
"transactionValue": Object {
"CurrencyAmount": 137.25,
"CurrencyCode": "USD",
},
},
],
"RentalTransactionEventList": Array [],
"ServiceFeeEventList": Array [
Object {
"SellerSKU": "FH-REED-16DX",
},
Object {
"FeeList": Array [
Object {
"FeeAmount": Object {
"CurrencyAmount": -1,
"CurrencyCode": "USD",
},
"FeeType": "FBACustomerReturnPerOrderFee",
},
Object {
"FeeAmount": Object {
"CurrencyAmount": -1.06,
"CurrencyCode": "USD",
},
"FeeType": "FBACustomerReturnPerUnitFee",
},
Object {
"FeeAmount": Object {
"CurrencyAmount": -0.5,
"CurrencyCode": "USD",
},
"FeeType": "FBACustomerReturnWeightBasedFee",
},
],
"SellerSKU": "FH-REED-16DX",
},
],
"ServiceProviderCreditEventList": Array [],
},
"NextToken": NextToken {
"action": "ListFinancialEvents",
"token": "e21hcmtldHBsYWNlSWQ6bnVsbCxtYXhSZXN1bHRzUGVyUGFnZTowLHNlYXJjaFF1ZXJ5Q2hlY2tzdW06bnVsbCxxdWVyeVBhZ2luYXRpb25Ub2tlbjoidDB3V25MNXFLWkRIZ2p5ZzB3ZHRWODVnV0htVExVMkM0XzlsMHpRMG9HVXFZOVhTdjFyWUNWUE8teGxWRnF3N0ZyaDIyY3lQX0VTOXYxendQNUVvc0t0V1NKM1YyQkRJdWcyWFpXdm1KVmdPVktBdzNIMXUyVHBiTGoxVmRmY3Z6ZlU1WlpNaEpsQ0RKUnYxRk16am13Y1YyQ1BoOXNWMU1xNUZqamxUMlRCeFBkSjdEa3BkbENISElVZ094aHVTN3ZfZlFCUWYyWWJYZ2l3NHNxZXkwNnQyaVBucm5PdnAzRTdKbW4xcnc1UTlaTGV1Ymk5WUV6UGJ6UnhjRmh2VUFKdlQ5U2U3eERIdHVMUzNJVWFRODBubVhja3JLeWt3dVZKeWZXQm5CY3p0bjZTbVRHenJmZ1VOanFMWFFNT2giLHNlYXJjaFF1ZXJ5Om51bGwsdG9rZW5DcmVhdGlvbkRhdGU6MTQ4NTg2MjY5ODI1NCxzZWxsZXJJZDoiQTM1SlMxREpITjdGViJ9",
},
},
Object {
"quotaMax": 1000,
"quotaRemaining": 999,
"quotaResetOn": 2020-04-06T10:22:23.582Z,
"requestId": "0",
"timestamp": 2020-05-06T09:22:23.582Z,
},
]
`;

0 comments on commit 3cfc578

Please sign in to comment.