diff --git a/src/sections/fulfillment-outbound-shipment/codec.ts b/src/sections/fulfillment-outbound-shipment/codec.ts index f7148799..ff9338c4 100644 --- a/src/sections/fulfillment-outbound-shipment/codec.ts +++ b/src/sections/fulfillment-outbound-shipment/codec.ts @@ -168,7 +168,7 @@ const FulfillmentOrder = Codec.interface({ }) const ListAllFulfillmentOrders = Codec.interface({ - NextToken: nextTokenCodec('ListAllFulfillmentOrders'), + NextToken: optional(nextTokenCodec('ListAllFulfillmentOrders')), FulfillmentOrders: ensureArray('member', FulfillmentOrder), }) @@ -276,3 +276,9 @@ export const GetFulfillmentOrderResponse = Codec.interface({ GetFulfillmentOrderResult: GetFulfillmentOrder, }), }) + +export const ListAllFulfillmentOrdersByNextTokenResponse = Codec.interface({ + ListAllFulfillmentOrdersByNextTokenResponse: Codec.interface({ + ListAllFulfillmentOrdersByNextTokenResult: ListAllFulfillmentOrders, + }), +}) diff --git a/src/sections/fulfillment-outbound-shipment/fulfillment-outbound-shipment.ts b/src/sections/fulfillment-outbound-shipment/fulfillment-outbound-shipment.ts index bcab1c1e..163c3f47 100644 --- a/src/sections/fulfillment-outbound-shipment/fulfillment-outbound-shipment.ts +++ b/src/sections/fulfillment-outbound-shipment/fulfillment-outbound-shipment.ts @@ -1,5 +1,6 @@ import { ParsingError } from '../../error' import { HttpClient, RequestMeta, Resource } from '../../http' +import { NextToken } from '../../parsing' import { getServiceStatusByResource } from '../shared' import { CreateFulfillmentOrderResponse, @@ -8,6 +9,7 @@ import { GetFulfillmentPreview, GetFulfillmentPreviewResponse, ListAllFulfillmentOrders, + ListAllFulfillmentOrdersByNextTokenResponse, ListAllFulfillmentOrdersResponse, UpdateFulfillmentOrderResponse, } from './codec' @@ -27,6 +29,29 @@ const FOS_API_VERSION = '2010-10-01' export class FulfillmentOutboundShipment { constructor(private httpClient: HttpClient) {} + async listAllFulfillmentOrdersByNextToken( + nextToken: NextToken<'ListAllFulfillmentOrders'>, + ): Promise<[ListAllFulfillmentOrders, RequestMeta]> { + const [response, meta] = await this.httpClient.request('POST', { + resource: Resource.FulfillmentOutboundShipment, + version: FOS_API_VERSION, + action: 'ListAllFulfillmentOrdersByNextToken', + parameters: { + NextToken: nextToken.token, + }, + }) + + return ListAllFulfillmentOrdersByNextTokenResponse.decode(response).caseOf({ + Right: (x) => [ + x.ListAllFulfillmentOrdersByNextTokenResponse.ListAllFulfillmentOrdersByNextTokenResult, + meta, + ], + Left: (error) => { + throw new ParsingError(error) + }, + }) + } + async getFulfillmentOrder( parameters: GetFulfillmentOrderParameters, ): Promise<[GetFulfillmentOrder, RequestMeta]> {