@lorenstuff/amazon-selling-partner-api
Version:
A package for interacting with the Amazon Selling Partner API.
136 lines • 5.04 kB
JavaScript
//
// 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