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

Commit

Permalink
fix: fix api extractor issues
Browse files Browse the repository at this point in the history
  • Loading branch information
justinemmanuelmercado committed Jul 7, 2020
1 parent 6d95252 commit 167110a
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 6 deletions.
59 changes: 53 additions & 6 deletions src/sections/shipment-invoicing.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export interface GetFbaOutboundShipmentDetailParameters {
AmazonShipmentId: string
}

enum AddressTypeEnum {
export enum AddressTypeEnum {
Commercial = 'Commercial',
Residential = 'Residential',
}
Expand Down Expand Up @@ -83,7 +83,7 @@ const ShipmentDetail = Codec.interface({
WarehouseId: optional(string),
})

const GetFBAOutboundShipmentDetail = Codec.interface({
export const GetFBAOutboundShipmentDetail = Codec.interface({
ShipmentDetail,
})

Expand All @@ -93,15 +93,15 @@ const GetFBAOutboundShipmentDetailResponse = Codec.interface({
}),
})

interface SubmitFBAOutboundShipmentInvoiceParameters {
export interface SubmitFBAOutboundShipmentInvoiceParameters {
MarketplaceId: string
AmazonShipmentId: string
InvoiceContent: string
}

const SubmitFBAOutboundShipmentInvoiceResult = optional(exactly(''))
export const SubmitFBAOutboundShipmentInvoiceResult = optional(exactly(''))

type SubmitFBAOutboundShipmentInvoiceResult = GetInterface<
export type SubmitFBAOutboundShipmentInvoiceResult = GetInterface<
typeof SubmitFBAOutboundShipmentInvoiceResult
>

Expand All @@ -110,11 +110,58 @@ const SubmitFBAOutboundShipmentInvoiceResponse = Codec.interface({
SubmitFBAOutboundShipmentInvoiceResult,
}),
})

export interface GetFBAOutboundShipmentInvoiceStatusParameters {
MarketplaceId: string
AmazonShipmentId: string
}
export type GetFBAOutboundShipmentDetail = GetInterface<typeof GetFBAOutboundShipmentDetail>

const Shipment = Codec.interface({
AmazonShipmentId: string,
InvoiceStatus: string,
})

export const GetFBAOutboundShipmentInvoiceStatus = Codec.interface({
Shipments: ensureArray('Shipment', Shipment),
})

export type GetFBAOutboundShipmentInvoiceStatus = GetInterface<
typeof GetFBAOutboundShipmentInvoiceStatus
>

const GetFBAOutboundShipmentInvoiceStatusResponse = Codec.interface({
GetFBAOutboundShipmentInvoiceStatusResponse: Codec.interface({
GetFBAOutboundShipmentInvoiceStatusResult: GetFBAOutboundShipmentInvoiceStatus,
}),
})

export class ShipmentInvoicing {
constructor(private httpClient: HttpClient) {}

async getFbaOutboundShipmentInvoiceStatus(
parameters: GetFBAOutboundShipmentInvoiceStatusParameters,
): Promise<[GetFBAOutboundShipmentInvoiceStatus, RequestMeta]> {
const [response, meta] = await this.httpClient.request('POST', {
resource: Resource.ShipmentInvoicing,
version: SHIPMENT_INVOICING_API_VERSION,
action: 'GetFBAOutboundShipmentInvoiceStatus',
parameters: {
MarketplaceId: parameters.MarketplaceId,
AmazonShipmentId: parameters.AmazonShipmentId,
},
})

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

async submitFbaOutboundShipmentInvoice(
parameters: SubmitFBAOutboundShipmentInvoiceParameters,
): Promise<[SubmitFBAOutboundShipmentInvoiceResult, RequestMeta]> {
Expand Down
20 changes: 20 additions & 0 deletions test/unit/__snapshots__/shipment-invoicing.test.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,26 @@ Array [
]
`;

exports[`shipmentInvoicing getFbaOutboundShipmentInvoiceStatus returns a list of shipments if request is succesful 1`] = `
Array [
Object {
"Shipments": Array [
Object {
"AmazonShipmentId": "DrLqQwqvb",
"InvoiceStatus": "Accepted",
},
],
},
Object {
"quotaMax": 1000,
"quotaRemaining": 999,
"quotaResetOn": 2020-04-06T10:22:23.582Z,
"requestId": "0",
"timestamp": 2020-05-06T09:22:23.582Z,
},
]
`;

exports[`shipmentInvoicing getServiceStatus returns a parsed model when the status response is valid 1`] = `
Array [
Object {
Expand Down

0 comments on commit 167110a

Please sign in to comment.