UNPKG

@lorenstuff/amazon-selling-partner-api

Version:

A package for interacting with the Amazon Selling Partner API.

136 lines 5.04 kB
// // Imports // import { AmazonSellingPartnerAPIError } from "./AmazonSellingPartnerAPIError.js"; // // Class // /** A client for v2021-08-01 of the Listings endpoints of the Amazon Selling Partner API. */ export class AmazonSellingPartnerListingsAPIClient { amazonSellingPartnerApiClient; constructor(amazonSellingPartnerApiClient) { this.amazonSellingPartnerApiClient = amazonSellingPartnerApiClient; } async deleteListingsItem(sellerId, sku, query) { // // Build & Validate Search Params // const searchParams = new URLSearchParams(); { if (query.marketplaceIds.length == 0) { throw new Error("marketplaceIds must contain at least one marketplace ID."); } searchParams.set("marketplaceIds", query.marketplaceIds.join(",")); } if (query.issueLocale != null) { // TODO: validate that this is a valid locale, maybe? searchParams.set("issueLocale", query.issueLocale); } // // Do Request // const response = await this.amazonSellingPartnerApiClient.request({ method: "DELETE", path: "/listings/2021-08-01/items/" + sellerId + "/" + sku, searchParams, }); const responseData = await response.json(); if ("errors" in responseData) { throw new AmazonSellingPartnerAPIError(response, responseData.errors); } return responseData; } async getListingsItem(sellerId, sku, query) { // // Build & Validate Search Params // const searchParams = new URLSearchParams(); { if (query.marketplaceIds.length == 0) { throw new Error("marketplaceIds must contain at least one marketplace ID."); } searchParams.set("marketplaceIds", query.marketplaceIds.join(",")); } if (query.issueLocale != null) { // TODO: Make sure this is a valid locale, maybe? searchParams.set("issueLocale", query.issueLocale); } if (query.includedData != null) { searchParams.set("includedData", query.includedData.join(",")); } // // Do Request // const response = await this.amazonSellingPartnerApiClient.request({ method: "GET", path: "/listings/2021-08-01/items/" + sellerId + "/" + sku, searchParams, }); const responseData = await response.json(); if ("errors" in responseData) { throw new AmazonSellingPartnerAPIError(response, responseData.errors); } return responseData; } async patchListingsItem(sellerId, sku, query, body) { // // Build & Validate Search Params // const searchParams = new URLSearchParams(); { if (query.marketplaceIds.length == 0) { throw new Error("marketplaceIds must contain at least one marketplace ID."); } searchParams.set("marketplaceIds", query.marketplaceIds.join(",")); } if (query.issueLocale != null) { // TODO: Make sure this is a valid locale, maybe? searchParams.set("issueLocale", query.issueLocale); } // // Do Request // const response = await this.amazonSellingPartnerApiClient.request({ method: "PATCH", path: "/listings/2021-08-01/items/" + sellerId + "/" + sku, searchParams, body: JSON.stringify(body), }); const responseData = await response.json(); if ("errors" in responseData) { throw new AmazonSellingPartnerAPIError(response, responseData.errors); } return responseData; } async putListingsItem(sellerId, sku, query, body) { // // Build & Validate Search Params // const searchParams = new URLSearchParams(); { if (query.marketplaceIds.length == 0) { throw new Error("marketplaceIds must contain at least one marketplace ID."); } searchParams.set("marketplaceIds", query.marketplaceIds.join(",")); } if (query.issueLocale != null) { // TODO: Make sure this is a valid locale, maybe? searchParams.set("issueLocale", query.issueLocale); } // // Do Request // const response = await this.amazonSellingPartnerApiClient.request({ method: "PUT", path: "/listings/2021-08-01/items/" + sellerId + "/" + sku, searchParams, body: JSON.stringify(body), }); const responseData = await response.json(); if ("errors" in responseData) { throw new AmazonSellingPartnerAPIError(response, responseData.errors); } return responseData; } } //# sourceMappingURL=AmazonSellingPartnerListingsAPIClient.js.map