0.0.4 • Published 1 year ago

@labdigital/bluestonepim-sdk v0.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

BluestonePIM SDK

This SDK provides methods to interact with the BluestonePIM API. It includes methods to retrieve differences in products and relations during synchronization operations.

Installation

To install the SDK, use npm:

# Using npm
npm install @labdigital/bluestonepim-sdk

# Using yarn
yarn add @labdigital/bluestonepim-sdk

# Using pnpm
pnpm add @labdigital/bluestonepim-sdk

Usage

import { DifferencesApi, Configuration } from "@labdigital/bluestonepim-sdk";

const config = new Configuration({
  apiKey: "your-api-key-here",
  basePath: "https://api.test.bluestonepim.com/v1",
});

const differencesApi = new DifferencesApi(config);

const requestParameters = {
  id: "sync-id",
  diffType: "type",
  itemsOnPage: 10,
  pageNo: 1,
};

const productDifferences =
  await differencesApi.getProductDifferencesOnSyncDeletes(requestParameters);
console.log(productDifferences);

Retrying requests

The Bluestone PIM API may return a 429 status code when the rate limit is exceeded. To handle this, you can use the retry function from the fetch-retry package. This function will retry the request a number of times with a delay between each attempt.

# Using npm
npm install fetch-retry isomorphic-fetch

# Using yarn
yarn add fetch-retry isomorphic-fetch

# Using pnpm
pnpm add fetch-retry isomorphic-fetch
const config = new Configuration({
  fetchApi: retry(fetch, {
    retries: 5, //Retry 5 times
    retryDelay: 1000, //Retry after 1 second
    retryOn: (attempt: number, error, response: Response | null): boolean => {
      // Only retry when 429 is hit, otherwise we continue
      if (response != null && response.status === 429) {
        logger.debug({
          msg: "Retrying Bluestone PIM request",
          attempt: attempt,
          responseStatus: response.status,
        });
        return true;
      }
      return false;
    },
  }),
  // Your other configuration options
});

Development

To regenerate the SDK, run the following command:

pnpm run sdk:generate

This will generate the SDK in the src directory.

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago