@sp-api-sdk/solicitations-api-v1 1.7.2 → 1.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  With the Solicitations API you can build applications that send non-critical solicitations to buyers. You can get a list of solicitation types that are available for an order that you specify, then call an operation that sends a solicitation to the buyer for that order. Buyers cannot respond to solicitations sent by this API, and these solicitations do not appear in the Messaging section of Seller Central or in the recipient's Message Center. The Solicitations API returns responses that are formed according to the <a href=https://tools.ietf.org/html/draft-kelly-json-hal-08>JSON Hypertext Application Language</a> (HAL) standard.
4
4
 
5
+ [![npm version](https://badgen.net/npm/v/@sp-api-sdk/solicitations-api-v1)](https://www.npmjs.com/package/@sp-api-sdk/solicitations-api-v1)
6
+ [![XO code style](https://badgen.net/badge/code%20style/XO/cyan)](https://github.com/xojs/xo)
7
+
8
+ ## Documentation
9
+
10
+ Learn more about this Selling Partner API by visiting the [official documentation](https://github.com/amzn/selling-partner-api-docs/tree/main/references/solicitations-api/solicitations.md).
11
+
12
+ Also, see the [generated documentation](https://bizon.github.io/selling-partner-api-sdk/modules/_sp_api_sdk_solicitations_api_v1.html) for this API client.
13
+
5
14
  ## Installing
6
15
 
7
16
  ```sh
@@ -19,26 +28,25 @@ import {SellingPartnerApiAuth} from '@sp-api-sdk/auth'
19
28
  import {SolicitationsApiClient} from '@sp-api-sdk/solicitations-api-v1'
20
29
 
21
30
  const auth = new SellingPartnerApiAuth({
22
- clientId: '',
23
- clientSecret: '',
24
- refreshToken: '',
25
- secretAccessKey: '',
31
+ clientId: process.env.LWA_CLIENT_ID,
32
+ clientSecret: process.env.LWA_CLIENT_SECRET,
33
+ refreshToken: 'Atzr|…',
26
34
  accessKeyId: '',
27
- region: '',
35
+ secretAccessKey: '',
28
36
  role: {
29
- arn: '',
30
- }
37
+ arn: 'arn:aws:iam::…',
38
+ },
31
39
  })
32
40
 
33
41
  const client = new SolicitationsApiClient({
34
42
  auth,
35
- region: 'eu' // or 'eu-west-1'
43
+ region: 'eu',
36
44
  })
37
45
  ```
38
46
 
39
- ## Handle Rate Limiting
47
+ ## Rate Limiting
40
48
 
41
- If you want to let the SDK retry after each 429 responses, instanciate the client like this:
49
+ In order to retry rate limited requests (HTTP 429), you can configure the API client as such:
42
50
 
43
51
  ```javascript
44
52
  const client = new SolicitationsApiClient({
@@ -46,13 +54,28 @@ const client = new SolicitationsApiClient({
46
54
  region: 'eu',
47
55
  rateLimiting: {
48
56
  retry: true,
49
- onRetry: (retryInfo) => console.log(retryInfo) // Optional
50
- }
57
+ // Optionally specify a callback that will be called on every retry.
58
+ onRetry: (retryInfo) => {
59
+ console.log(retryInfo)
60
+ },
61
+ },
51
62
  })
52
63
  ```
53
64
 
54
- The SDK gets the rate limits for each routes from the API documentation
65
+ The rate limits used for each route are specified in the [API documentation]((https://github.com/amzn/selling-partner-api-docs/tree/main/references/solicitations-api/solicitations.md)).
66
+
67
+ ## License
68
+
69
+ MIT
55
70
 
56
- ## API documentation
71
+ ## Miscellaneous
57
72
 
58
- See [here](https://github.com/amzn/selling-partner-api-docs/tree/main/references/solicitations-api/solicitations.md)
73
+ ```
74
+ ╚⊙ ⊙╝
75
+ ╚═(███)═╝
76
+ ╚═(███)═╝
77
+ ╚═(███)═╝
78
+ ╚═(███)═╝
79
+ ╚═(███)═╝
80
+ ╚═(███)═╝
81
+ ```
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SolicitationsApiClient = exports.RATE_LIMITS = void 0;
3
+ exports.SolicitationsApiClient = exports.clientRateLimits = void 0;
4
4
  /* eslint-disable prefer-regex-literals */
5
5
  const common_1 = require("@sp-api-sdk/common");
6
6
  const api_model_1 = require("./api-model");
7
7
  const error_1 = require("./error");
8
- exports.RATE_LIMITS = [
8
+ exports.clientRateLimits = [
9
9
  {
10
10
  method: 'get',
11
11
  urlRegex: new RegExp('^/solicitations/v1/orders/[^/]*$'),
@@ -21,20 +21,23 @@ exports.RATE_LIMITS = [
21
21
  ];
22
22
  class SolicitationsApiClient extends api_model_1.SolicitationsApi {
23
23
  constructor(parameters) {
24
- const region = common_1.awsRegionByCode[parameters.region] ?? parameters.region;
24
+ const config = common_1.sellingPartnerRegions[parameters.region];
25
+ if (!config) {
26
+ throw new error_1.SolicitationsApiError(`Unknown region: ${parameters.region}`);
27
+ }
25
28
  const { rateLimiting, ...clientParameters } = parameters;
26
- const axiosParameters = { ...clientParameters, region };
29
+ const axiosParameters = {
30
+ ...clientParameters,
31
+ region: config.awsRegion,
32
+ };
27
33
  if (rateLimiting?.retry) {
28
- axiosParameters.rateLimits = exports.RATE_LIMITS;
34
+ axiosParameters.rateLimits = exports.clientRateLimits;
29
35
  axiosParameters.onRetry = rateLimiting.onRetry;
30
36
  }
31
37
  const axiosInstance = (0, common_1.createAxiosInstance)(axiosParameters);
32
38
  const configuration = new api_model_1.Configuration();
33
39
  const environment = parameters.sandbox ? 'sandbox' : 'production';
34
- const endpoint = common_1.endpoints[environment][region];
35
- if (!endpoint) {
36
- throw new error_1.SolicitationsApiError(`Unknown region : ${region}`);
37
- }
40
+ const endpoint = config.endpoints[environment];
38
41
  super(configuration, endpoint, axiosInstance);
39
42
  }
40
43
  }
@@ -1,8 +1,8 @@
1
1
  /* eslint-disable prefer-regex-literals */
2
- import { endpoints, awsRegionByCode, createAxiosInstance } from '@sp-api-sdk/common';
2
+ import { sellingPartnerRegions, createAxiosInstance } from '@sp-api-sdk/common';
3
3
  import { Configuration, SolicitationsApi } from './api-model';
4
4
  import { SolicitationsApiError } from './error';
5
- export const RATE_LIMITS = [
5
+ export const clientRateLimits = [
6
6
  {
7
7
  method: 'get',
8
8
  urlRegex: new RegExp('^/solicitations/v1/orders/[^/]*$'),
@@ -18,20 +18,23 @@ export const RATE_LIMITS = [
18
18
  ];
19
19
  export class SolicitationsApiClient extends SolicitationsApi {
20
20
  constructor(parameters) {
21
- const region = awsRegionByCode[parameters.region] ?? parameters.region;
21
+ const config = sellingPartnerRegions[parameters.region];
22
+ if (!config) {
23
+ throw new SolicitationsApiError(`Unknown region: ${parameters.region}`);
24
+ }
22
25
  const { rateLimiting, ...clientParameters } = parameters;
23
- const axiosParameters = { ...clientParameters, region };
26
+ const axiosParameters = {
27
+ ...clientParameters,
28
+ region: config.awsRegion,
29
+ };
24
30
  if (rateLimiting?.retry) {
25
- axiosParameters.rateLimits = RATE_LIMITS;
31
+ axiosParameters.rateLimits = clientRateLimits;
26
32
  axiosParameters.onRetry = rateLimiting.onRetry;
27
33
  }
28
34
  const axiosInstance = createAxiosInstance(axiosParameters);
29
35
  const configuration = new Configuration();
30
36
  const environment = parameters.sandbox ? 'sandbox' : 'production';
31
- const endpoint = endpoints[environment][region];
32
- if (!endpoint) {
33
- throw new SolicitationsApiError(`Unknown region : ${region}`);
34
- }
37
+ const endpoint = config.endpoints[environment];
35
38
  super(configuration, endpoint, axiosInstance);
36
39
  }
37
40
  }
@@ -132,7 +132,7 @@ export declare class SolicitationsApi extends BaseAPI {
132
132
  * @throws {RequiredError}
133
133
  * @memberof SolicitationsApi
134
134
  */
135
- createProductReviewAndSellerFeedbackSolicitation(requestParameters: SolicitationsApiCreateProductReviewAndSellerFeedbackSolicitationRequest, options?: any): Promise<import("axios").AxiosResponse<CreateProductReviewAndSellerFeedbackSolicitationResponse>>;
135
+ createProductReviewAndSellerFeedbackSolicitation(requestParameters: SolicitationsApiCreateProductReviewAndSellerFeedbackSolicitationRequest, options?: any): Promise<import("axios").AxiosResponse<CreateProductReviewAndSellerFeedbackSolicitationResponse, any>>;
136
136
  /**
137
137
  * Returns a list of solicitation types that are available for an order that you specify. A solicitation type is represented by an actions object, which contains a path and query parameter(s). You can use the path and parameter(s) to call an operation that sends a solicitation. Currently only the productReviewAndSellerFeedbackSolicitation solicitation type is available. **Usage Plan:** | Rate (requests per second) | Burst | | ---- | ---- | | 1 | 5 | For more information, see \"Usage Plans and Rate Limits\" in the Selling Partner API documentation.
138
138
  * @param {SolicitationsApiGetSolicitationActionsForOrderRequest} requestParameters Request parameters.
@@ -140,5 +140,5 @@ export declare class SolicitationsApi extends BaseAPI {
140
140
  * @throws {RequiredError}
141
141
  * @memberof SolicitationsApi
142
142
  */
143
- getSolicitationActionsForOrder(requestParameters: SolicitationsApiGetSolicitationActionsForOrderRequest, options?: any): Promise<import("axios").AxiosResponse<GetSolicitationActionsForOrderResponse>>;
143
+ getSolicitationActionsForOrder(requestParameters: SolicitationsApiGetSolicitationActionsForOrderRequest, options?: any): Promise<import("axios").AxiosResponse<GetSolicitationActionsForOrderResponse, any>>;
144
144
  }
@@ -62,4 +62,4 @@ export declare const toPathString: (url: URL) => string;
62
62
  *
63
63
  * @export
64
64
  */
65
- export declare const createRequestFunction: (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration | undefined) => (axios?: AxiosInstance, basePath?: string) => Promise<import("axios").AxiosResponse<any>>;
65
+ export declare const createRequestFunction: (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration | undefined) => (axios?: AxiosInstance, basePath?: string) => Promise<import("axios").AxiosResponse<any, any>>;
@@ -1,11 +1,11 @@
1
- import { onRetry } from '@sp-api-sdk/common';
2
- import type { ClientConfiguration, RateLimit } from '@sp-api-sdk/common';
1
+ import type { ClientConfiguration, SellingPartnerRegion, RateLimit, OnRetryHandler } from '@sp-api-sdk/common';
3
2
  import { SolicitationsApi } from './api-model';
4
- export declare const RATE_LIMITS: RateLimit[];
3
+ export declare const clientRateLimits: RateLimit[];
5
4
  export interface ClientParameters extends Omit<ClientConfiguration, 'rateLimits' | 'onRetry'> {
5
+ region: SellingPartnerRegion;
6
6
  rateLimiting?: {
7
7
  retry: boolean;
8
- onRetry?: onRetry;
8
+ onRetry?: OnRetryHandler;
9
9
  };
10
10
  }
11
11
  export declare class SolicitationsApiClient extends SolicitationsApi {
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@sp-api-sdk/solicitations-api-v1",
3
3
  "author": "Vincent Mesquita <vincent.mesquita@bizon.solutions>",
4
4
  "description": "With the Solicitations API you can build applications that send non-critical solicitations to buyers. You can get a list of solicitation types that are available for an order that you specify, then call an operation that sends a solicitation to the buyer for that order. Buyers cannot respond to solicitations sent by this API, and these solicitations do not appear in the Messaging section of Seller Central or in the recipient's Message Center. The Solicitations API returns responses that are formed according to the JSON Hypertext Application Language (HAL) standard.",
5
- "version": "1.7.2",
5
+ "version": "1.7.6",
6
6
  "main": "dist/cjs/index.js",
7
7
  "module": "dist/es/index.js",
8
8
  "types": "dist/types/index.d.ts",
@@ -25,9 +25,9 @@
25
25
  "test": "NODE_ENV='test' yarn jest"
26
26
  },
27
27
  "dependencies": {
28
- "@sp-api-sdk/auth": "^1.9.3",
29
- "@sp-api-sdk/common": "^1.7.4",
30
- "axios": "^0.21.1"
28
+ "@sp-api-sdk/auth": "^1.9.6",
29
+ "@sp-api-sdk/common": "^1.7.8",
30
+ "axios": "^0.24.0"
31
31
  },
32
32
  "repository": {
33
33
  "type": "git",
@@ -48,5 +48,5 @@
48
48
  "sp sdk",
49
49
  "solicitations api"
50
50
  ],
51
- "gitHead": "30d4f1399133a7e6a08f9a2ec2cb9ce4641a623b"
51
+ "gitHead": "f21b5cb511abd110bf1f07843558719993f36187"
52
52
  }