@lorenstuff/amazon-selling-partner-api
Version:
A package for interacting with the Amazon Selling Partner API.
315 lines • 11.2 kB
JavaScript
//
// Imports
//
import { AmazonSellingPartnerAPIError } from "./AmazonSellingPartnerAPIError.js";
//
// Class
//
/** A client for v2020-11-01 of the A+ Content endpoints of the Amazon Selling Partner API. */
export class AmazonSellingPartnerAPlusContentAPIClient {
amazonSellingPartnerApiClient;
constructor(amazonSellingPartnerApiClient) {
this.amazonSellingPartnerApiClient = amazonSellingPartnerApiClient;
}
async createContentDocument(query, postContentDocumentRequest) {
//
// Build & Validate Search Params
//
const searchParams = new URLSearchParams();
{
if (query.marketplaceId.length < 1) {
throw new Error("Invalid marketplaceId.");
}
searchParams.set("marketplaceId", query.marketplaceId);
}
//
// Do Request
//
const response = await this.amazonSellingPartnerApiClient.request({
method: "POST",
path: "/aplus/2020-11-01/contentDocuments",
searchParams,
body: JSON.stringify(postContentDocumentRequest),
});
const responseData = await response.json();
if ("errors" in responseData) {
throw new AmazonSellingPartnerAPIError(response, responseData.errors);
}
return responseData;
}
async getContentDocument(contentReferenceKey, query) {
//
// Build & Validate Search Params
//
const searchParams = new URLSearchParams();
{
if (query.marketplaceId.length < 1) {
throw new Error("Invalid marketplaceId.");
}
searchParams.set("marketplaceId", query.marketplaceId);
}
{
if (query.includedDataSet.length < 1) {
throw new Error("Invalid includedDataSet.");
}
searchParams.set("includedDataSet", query.includedDataSet.join(","));
}
//
// Do Request
//
const response = await this.amazonSellingPartnerApiClient.request({
method: "GET",
path: "/aplus/2020-11-01/contentDocuments/" + contentReferenceKey,
searchParams,
});
const responseData = await response.json();
if ("errors" in responseData) {
throw new AmazonSellingPartnerAPIError(response, responseData.errors);
}
return responseData;
}
async listContentDocumentAsinRelations(contentReferenceKey, query) {
//
// Build & Validate Search Params
//
const searchParams = new URLSearchParams();
if (!("pageToken" in query)) {
{
if (query.marketplaceId.length < 1) {
throw new Error("Invalid marketplaceId.");
}
searchParams.set("marketplaceId", query.marketplaceId);
}
if (query.includedDataSet != null) {
searchParams.set("includedDataSet", query.includedDataSet.join(","));
}
if (query.asinSet != null) {
searchParams.set("asinSet", query.asinSet.join(","));
}
}
else {
{
if (query.pageToken.length < 1) {
throw new Error("Invalid pageToken.");
}
searchParams.set("pageToken", query.pageToken);
}
}
//
// Do Request
//
const response = await this.amazonSellingPartnerApiClient.request({
method: "GET",
path: "/aplus/2020-11-01/contentDocuments/" + contentReferenceKey + "/asins",
searchParams,
});
const responseData = await response.json();
if ("errors" in responseData) {
throw new AmazonSellingPartnerAPIError(response, responseData.errors);
}
return responseData;
}
async postContentDocumentApprovalSubmission(contentReferenceKey, query) {
//
// Build & Validate Search Params
//
const searchParams = new URLSearchParams();
{
if (query.marketplaceId.length < 1) {
throw new Error("Invalid marketplaceId.");
}
searchParams.set("marketplaceId", query.marketplaceId);
}
//
// Do Request
//
const response = await this.amazonSellingPartnerApiClient.request({
method: "POST",
path: "/aplus/2020-11-01/contentDocuments/" + contentReferenceKey + "/approvalSubmissions",
searchParams,
});
const responseData = await response.json();
if ("errors" in responseData) {
throw new AmazonSellingPartnerAPIError(response, responseData.errors);
}
return responseData;
}
async postContentDocumentAsinRelations(contentReferenceKey, query, postContentDocumentAsinRelationsRequest) {
//
// Build & Validate Search Params
//
const searchParams = new URLSearchParams();
{
if (query.marketplaceId.length < 1) {
throw new Error("Invalid marketplaceId.");
}
searchParams.set("marketplaceId", query.marketplaceId);
}
//
// Do Request
//
const response = await this.amazonSellingPartnerApiClient.request({
method: "POST",
path: "/aplus/2020-11-01/contentDocuments/" + contentReferenceKey + "/asins",
searchParams,
body: JSON.stringify(postContentDocumentAsinRelationsRequest),
});
const responseData = await response.json();
if ("errors" in responseData) {
throw new AmazonSellingPartnerAPIError(response, responseData.errors);
}
return responseData;
}
async postContentDocumentSuspendSubmission(contentReferenceKey, query) {
//
// Build & Validate Search Params
//
const searchParams = new URLSearchParams();
{
if (query.marketplaceId.length < 1) {
throw new Error("Invalid marketplaceId.");
}
searchParams.set("marketplaceId", query.marketplaceId);
}
//
// Do Request
//
const response = await this.amazonSellingPartnerApiClient.request({
method: "POST",
path: "/aplus/2020-11-01/contentDocuments/" + contentReferenceKey + "/suspendSubmissions",
searchParams,
});
const responseData = await response.json();
if ("errors" in responseData) {
throw new AmazonSellingPartnerAPIError(response, responseData.errors);
}
return responseData;
}
async searchContentDocuments(query) {
//
// Build & Validate Search Params
//
const searchParams = new URLSearchParams();
if (!("pageToken" in query)) {
{
if (query.marketplaceId.length < 1) {
throw new Error("Invalid marketplaceId.");
}
searchParams.set("marketplaceId", query.marketplaceId);
}
}
else {
{
if (query.pageToken.length < 1) {
throw new Error("Invalid pageToken.");
}
searchParams.set("pageToken", query.pageToken);
}
}
//
// Do Request
//
const response = await this.amazonSellingPartnerApiClient.request({
method: "GET",
path: "/aplus/2020-11-01/contentDocuments",
searchParams,
});
const responseData = await response.json();
if ("errors" in responseData) {
throw new AmazonSellingPartnerAPIError(response, responseData.errors);
}
return responseData;
}
async searchContentPublishRecords(query) {
//
// Build & Validate Search Params
//
const searchParams = new URLSearchParams();
if (!("pageToken" in query)) {
{
if (query.marketplaceId.length < 1) {
throw new Error("Invalid marketplaceId.");
}
searchParams.set("marketplaceId", query.marketplaceId);
}
{
if (query.asin.length < 10) {
throw new Error("Invalid asin.");
}
searchParams.set("asin", query.asin);
}
}
else {
searchParams.set("pageToken", query.pageToken);
}
//
// Do Request
//
const response = await this.amazonSellingPartnerApiClient.request({
method: "GET",
path: "/aplus/2020-11-01/contentPublishRecords",
searchParams,
});
const responseData = await response.json();
if ("errors" in responseData) {
throw new AmazonSellingPartnerAPIError(response, responseData.errors);
}
return responseData;
}
async updateContentDocument(contentReferenceKey, query, postContentDocumentRequest) {
//
// Build & Validate Search Params
//
const searchParams = new URLSearchParams();
{
if (query.marketplaceId.length < 1) {
throw new Error("Invalid marketplaceId.");
}
searchParams.set("marketplaceId", query.marketplaceId);
}
//
// Do Request
//
const response = await this.amazonSellingPartnerApiClient.request({
method: "POST",
path: "/aplus/2020-11-01/contentDocuments/" + contentReferenceKey,
searchParams,
body: JSON.stringify(postContentDocumentRequest),
});
const responseData = await response.json();
if ("errors" in responseData) {
throw new AmazonSellingPartnerAPIError(response, responseData.errors);
}
return responseData;
}
async validateContentDocumentAsinRelations(query, postContentDocumentRequest) {
//
// Build & Validate Search Params
//
const searchParams = new URLSearchParams();
{
if (query.marketplaceId.length < 1) {
throw new Error("Invalid marketplaceId.");
}
searchParams.set("marketplaceId", query.marketplaceId);
}
if (query.asinSet != null) {
searchParams.set("asinSet", query.asinSet.join(","));
}
//
// Do Request
//
const response = await this.amazonSellingPartnerApiClient.request({
method: "POST",
path: "/aplus/2020-11-01/contentAsinValidations",
searchParams,
body: JSON.stringify(postContentDocumentRequest),
});
const responseData = await response.json();
if ("errors" in responseData) {
throw new AmazonSellingPartnerAPIError(response, responseData.errors);
}
return responseData;
}
}
//# sourceMappingURL=AmazonSellingPartnerAPlusContentAPIClient.js.map