pipedrive 22.3.1-rc.3 → 22.3.1-rc.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. package/CHANGELOG.md +29 -3
  2. package/README.md +29 -24
  3. package/base.ts +26 -21
  4. package/configuration.ts +17 -5
  5. package/dist/base.d.ts +5 -2
  6. package/dist/base.js +22 -17
  7. package/dist/configuration.d.ts +1 -0
  8. package/dist/configuration.js +14 -4
  9. package/dist/esm/base.d.ts +5 -2
  10. package/dist/esm/base.js +19 -17
  11. package/dist/esm/configuration.d.ts +1 -0
  12. package/dist/esm/configuration.js +15 -5
  13. package/docs/ActivityTypeObjectResponse.md +2 -2
  14. package/docs/AddWebhookRequest.md +1 -1
  15. package/docs/BaseUser.md +1 -0
  16. package/docs/BaseUserMe.md +1 -0
  17. package/docs/BasicDeal.md +3 -0
  18. package/docs/ChangelogResponse.md +11 -0
  19. package/docs/ChangelogResponseAllOf.md +10 -0
  20. package/docs/ChangelogResponseAllOfData.md +16 -0
  21. package/docs/DealParticipantsChangelog.md +12 -0
  22. package/docs/DealsApi.md +120 -0
  23. package/docs/Field.md +3 -2
  24. package/docs/ListPermittedUsersResponse.md +0 -1
  25. package/docs/NewDeal.md +3 -0
  26. package/docs/OrganizationsApi.md +60 -0
  27. package/docs/ParticipantsChangelog.md +11 -0
  28. package/docs/ParticipantsChangelogItem.md +12 -0
  29. package/docs/PaymentItem.md +2 -2
  30. package/docs/PersonsApi.md +60 -0
  31. package/docs/ProductField.md +1 -0
  32. package/docs/ProductFieldAllOf.md +1 -0
  33. package/docs/SubscriptionItem.md +2 -2
  34. package/docs/UpdateDealRequest.md +3 -0
  35. package/migration.md +309 -0
  36. package/package.json +1 -1
  37. package/test/functional/authorisation.test.js +22 -31
  38. package/test/functional/automatic-token-refresh.test.js +7 -6
  39. package/test/functional/utils.js +0 -1
  40. package/src/api/MeetingsApi.js +0 -181
  41. package/src/model/GetDealRelatedObjects.js +0 -101
  42. package/src/model/PostDealParticipantsRelatedObjects.js +0 -90
  43. package/src/model/UserProviderLinkCreateRequest.js +0 -120
  44. package/src/model/UserProviderLinkErrorResponse.js +0 -90
  45. package/src/model/UserProviderLinkSuccessResponse.js +0 -90
  46. package/src/model/UserProviderLinkSuccessResponseData.js +0 -79
package/CHANGELOG.md CHANGED
@@ -8,9 +8,31 @@ For public Changelog covering all changes done to Pipedrive’s API, webhooks an
8
8
 
9
9
  ## [Unreleased]
10
10
 
11
- ## [22.3.1-rc.3] - 2024-01-08
11
+ ## [22.3.1-rc.5] - 2024-04-24
12
12
  - Add `lead_id` as an acceptable body parameter for the `POST /v1/callLogs` endpoint
13
13
 
14
+
15
+ ## [22.3.1-rc.5] - 2024-02-12
16
+ - Add TypeScript Support
17
+
18
+
19
+ ## [22.6.1] - 2024-04-18
20
+ ### Added
21
+ - Added `is_deleted` parameter for `/v1/users/*` responses.
22
+
23
+ ## [22.6.0] - 2024-04-05
24
+ ### Added
25
+ - Added documentation for new endpoints `/deals/{id}/changelog`, `/persons/{id}/changelog` and `/organizations/{id}/changelog`.
26
+
27
+
28
+ ## [22.5.0] - 2024-02-02
29
+ ### Added
30
+ - Added documentation for new endpoint `/deals/{id}/participantsChangelog`.
31
+
32
+ ## [22.4.0] - 2024-01-05
33
+ ### Added
34
+ - Added documentation for `/meetings/userProviderLinks` endpoints
35
+
14
36
  ## [22.3.1-rc.2] - 2023-12-22
15
37
 
16
38
  ## [22.3.1-rc.1] - 2023-12-22
@@ -595,8 +617,12 @@ structure
595
617
  * Fixed `GET /goal/:id/results` error handling in case when there are no existing stages connected to specified goal
596
618
  * Fixed typo in lead example response (`crrency` to `currency`)
597
619
 
598
- [Unreleased]: https://github.com/pipedrive/api-docs/compare/v22.3.1-rc.3...HEAD
599
- [22.3.1-rc.3]: https://github.com/pipedrive/api-docs/compare/v22.4.0...v22.3.1-rc.3
620
+ [Unreleased]: https://github.com/pipedrive/api-docs/compare/v22.3.1-rc.5...HEAD
621
+ [22.3.1-rc.5]: https://github.com/pipedrive/api-docs/compare/v22.3.1-rc.4...v22.3.1-rc.5
622
+ [22.3.1-rc.4]: https://github.com/pipedrive/api-docs/compare/v22.3.1-rc.3...v22.3.1-rc.4
623
+ [22.5.0]: https://github.com/pipedrive/api-docs/compare/v22.4.0...v22.5.0
624
+ [22.6.0]: https://github.com/pipedrive/api-docs/compare/v22.5.0...v22.6.0
625
+ [22.6.1]: https://github.com/pipedrive/api-docs/compare/v22.6.0...v22.6.1
600
626
  [22.4.0]: https://github.com/pipedrive/api-docs/compare/v22.3.0...v22.4.0
601
627
  [22.3.0]: https://github.com/pipedrive/api-docs/compare/v22.2.0...v22.3.0
602
628
  [22.2.0]: https://github.com/pipedrive/api-docs/compare/v22.1.0...v22.2.0
package/README.md CHANGED
@@ -27,7 +27,7 @@ import { Configuration, DealsApi } from "pipedrive";
27
27
 
28
28
  const app = express();
29
29
 
30
- const PORT = 1800;
30
+ const PORT = 3000;
31
31
 
32
32
  // Configure Client with API key authorization
33
33
  const apiConfig = new Configuration({
@@ -41,7 +41,7 @@ app.listen(PORT, () => {
41
41
  app.get("/", async (req, res) => {
42
42
  const dealsApi = new DealsApi(apiConfig);
43
43
  const response = await dealsApi.getDeals();
44
- const { data: deals } = response.data;
44
+ const { data: deals } = response;
45
45
 
46
46
  res.send(deals);
47
47
  });
@@ -68,7 +68,7 @@ import { OAuth2Configuration, Configuration } from 'pipedrive';
68
68
  const oauth2 = new OAuth2Configuration({
69
69
  clientId: "clientId", // OAuth 2 Client ID
70
70
  clientSecret: "clientSecret", // OAuth 2 Client Secret
71
- redirectUri: 'redirectUri'; // OAuth 2 Redirection endpoint or Callback Uri
71
+ redirectUri: 'redirectUri' // OAuth 2 Redirection endpoint or Callback Uri
72
72
  });
73
73
 
74
74
  const apiConfig = new Configuration({
@@ -183,9 +183,9 @@ It then redirects back to the base endpoint for calling endpoints from the SDK.
183
183
  ```typescript
184
184
 
185
185
  import express from "express";
186
- import cookieParse from "cookie-parser";
187
- import cookeSession from "cookie-session";
188
186
  import { Configuration, DealsApi, OAuth2Configuration } from "pipedrive";
187
+ import cookieParser from "cookie-parser";
188
+ import cookieSession from "cookie-session";
189
189
 
190
190
  const app = express();
191
191
 
@@ -195,26 +195,21 @@ app.use(cookieSession({
195
195
  keys: ["key1"]
196
196
  }));
197
197
 
198
- const PORT = 1800;
198
+ const PORT = 3000;
199
199
 
200
200
 
201
201
  const oauth2 = new OAuth2Configuration({
202
- clientId: "clientId", // OAuth 2 Client ID
203
- clientSecret: "clientSecret", // OAuth 2 Client Secret
204
- redirectUri: 'redirectUri'; // OAuth 2 Redirection endpoint or Callback Uri
205
- });
206
-
207
- const apiConfig = new Configuration({
208
- accessToken: oauth2.getAccessToken,
209
- basePath: oauth2.basePath,
202
+ clientId: "clientId", // OAuth 2 Client ID
203
+ clientSecret: "clientSecret", // OAuth 2 Client Secret
204
+ redirectUri: 'redirectUri' // OAuth 2 Redirection endpoint or Callback Uri
210
205
  });
211
206
 
212
-
213
207
  app.listen(PORT, () => {
214
- console.log(`Listening on port ${PORT}`);
208
+ console.log(`Listening on port ${PORT}`);
215
209
  });
216
210
 
217
211
  app.get('/', async (req, res) => {
212
+ try {
218
213
  // method will handle return null if token is not available in the session
219
214
  const token = oauth2.updateToken(req.session?.accessToken);
220
215
 
@@ -232,19 +227,29 @@ app.get('/', async (req, res) => {
232
227
  // token is already set in the session
233
228
  // now make API calls as required
234
229
  // client will automatically refresh the token when it expires and call the token update callback
235
- const api = new DealsApi(apiClient);
230
+ const dealsApi = new DealsApi(apiConfig)
231
+
236
232
  const response = await dealsApi.getDeals();
237
- const { data: deals } = response.data;
233
+ const { data: deals } = response;
238
234
 
239
- res.send(deals);
235
+ return res.send(deals);
236
+ } catch (error){
237
+ console.error(error)
238
+ return res.status(500).send(error)
239
+ }
240
240
  });
241
241
 
242
242
  app.get('/callback', async (req, res) => {
243
- const authCode = req.query.code;
244
- const newAccessToken = await oauth2.authorize(authCode);
245
-
246
- req.session.accessToken = newAccessToken;
247
- res.redirect("/");
243
+ try {
244
+ const authCode = req.query.code as string;
245
+ const newAccessToken = await oauth2.authorize(authCode);
246
+
247
+ req.session.accessToken = newAccessToken;
248
+ return res.redirect("/");
249
+ }catch (error) {
250
+ console.error(error)
251
+ return res.status(500).send(error)
252
+ }
248
253
  });
249
254
 
250
255
  ```
package/base.ts CHANGED
@@ -16,8 +16,8 @@
16
16
  import type { Configuration } from './configuration';
17
17
  // Some imports not used depending on template conditions
18
18
  // @ts-ignore
19
- import type { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';
20
- import globalAxios from 'axios';
19
+ import type { AxiosError, AxiosResponse, AxiosRequestConfig , InternalAxiosRequestConfig } from 'axios';
20
+ import axios from 'axios';
21
21
 
22
22
  export const BASE_PATH = "https://api.pipedrive.com/v1".replace(/\/+$/, "");
23
23
 
@@ -41,26 +41,28 @@ export interface RequestArgs {
41
41
  url: string;
42
42
  options: AxiosRequestConfig;
43
43
  }
44
- /**
45
- * Axios interceptor to add the SDK version as a User-Agent header
46
- * */
47
- globalAxios.interceptors.request.use(function (config) {
48
- const version = require("../package.json").version;
44
+
45
+ export const versionInterceptor = (config:InternalAxiosRequestConfig) => {
46
+ let version:string;
47
+ try {
48
+ version = require('../package.json').version;
49
+ } catch (error) {
50
+ version = '22.x';
51
+ }
49
52
  config.headers['User-Agent'] = `Pipedrive-SDK-Javascript-${version}`;
50
53
  return config;
51
- });
54
+ }
52
55
 
53
- /**
54
- * Axios response interceptor to modify response structure
55
- */
56
- globalAxios.interceptors.response.use(function (response) {
57
- return response ? (response.hasOwnProperty('success') ? response : response.data) : response;
58
- }, function (error) {
59
- if(error?.response?.data) {
60
- return Promise.reject(error.response.data);
61
- }
62
- return Promise.reject(error);
63
- });
56
+ export const responseInterceptor = (response: AxiosResponse) => {
57
+ return response?.data ? response.data: response;
58
+ };
59
+
60
+ export const errorInterceptor = (error: AxiosError) => {
61
+ if (error.response && error.response.data) {
62
+ return Promise.reject(error.response.data);
63
+ }
64
+ return Promise.reject(error);
65
+ };
64
66
 
65
67
  /**
66
68
  *
@@ -70,13 +72,16 @@ globalAxios.interceptors.response.use(function (response) {
70
72
  export class BaseAPI {
71
73
  protected configuration: Configuration | undefined;
72
74
  protected basePath: string = BASE_PATH;
73
- protected axios = globalAxios;
74
-
75
+ protected axios = axios.create();
75
76
  constructor(configuration: Configuration) {
76
77
  if (configuration) {
77
78
  this.configuration = configuration;
78
79
  this.basePath = configuration.basePath || this.basePath;
79
80
  }
81
+
82
+
83
+ this.axios.interceptors.response.use(responseInterceptor, errorInterceptor);
84
+ this.axios.interceptors.request.use(versionInterceptor);
80
85
  }
81
86
  };
82
87
 
package/configuration.ts CHANGED
@@ -13,8 +13,9 @@
13
13
  */
14
14
 
15
15
 
16
- import globalAxios from "axios";
16
+ import axios from "axios";
17
17
  import { stringify } from "qs";
18
+ import { errorInterceptor, responseInterceptor, versionInterceptor } from './base';
18
19
 
19
20
  export type TokenResponse = {
20
21
  access_token: string;
@@ -35,6 +36,7 @@ export interface Parameters {
35
36
  export type ParamKey = keyof Parameters;
36
37
 
37
38
  export class OAuth2Configuration {
39
+ private axios = axios.create();
38
40
  private host: string;
39
41
  private accessToken: string | null = null;
40
42
  private refreshToken: string | null = null;
@@ -53,6 +55,9 @@ export class OAuth2Configuration {
53
55
  this.clientSecret = this.validateParam(params, 'clientSecret');
54
56
  this.redirectUri = this.validateParam(params, 'redirectUri');
55
57
  this.host = params.host || "https://oauth.pipedrive.com";
58
+
59
+ this.axios.interceptors.response.use(responseInterceptor, errorInterceptor);
60
+ this.axios.interceptors.request.use(versionInterceptor);
56
61
  }
57
62
 
58
63
  public get authorizationUrl() {
@@ -88,7 +93,7 @@ export class OAuth2Configuration {
88
93
  `${this.clientId}:${this.clientSecret}`
89
94
  ).toString("base64");
90
95
 
91
- const response = await globalAxios.post(
96
+ const response = await this.axios.post(
92
97
  authorizationUrl,
93
98
  stringify({
94
99
  code,
@@ -115,7 +120,7 @@ export class OAuth2Configuration {
115
120
  `${this.clientId}:${this.clientSecret}`
116
121
  ).toString("base64");
117
122
 
118
- const response = await globalAxios.post(
123
+ const response = await this.axios.post(
119
124
  refreshUrl,
120
125
  stringify({
121
126
  refresh_token: this.refreshToken,
@@ -187,7 +192,7 @@ export class OAuth2Configuration {
187
192
  const revokeUrl = `${this.host}/oauth/revoke?`;
188
193
  const clientIdAndSecretInBase64 = Buffer.from(`${clientId}:${clientSecret}`).toString('base64');
189
194
 
190
- const response = await globalAxios.post(
195
+ const response = await this.axios.post(
191
196
  revokeUrl,
192
197
  stringify({
193
198
  token,
@@ -206,7 +211,14 @@ export class OAuth2Configuration {
206
211
  }
207
212
 
208
213
  private getUserAgent = () => {
209
- const version = require("../package.json").version;
214
+ let version;
215
+
216
+ try {
217
+ version = require('../package.json').version;
218
+ } catch (error) {
219
+ version = '22.x';
220
+ }
221
+
210
222
  return `Pipedrive-SDK-Javascript-${version}`;
211
223
  };
212
224
 
package/dist/base.d.ts CHANGED
@@ -10,7 +10,7 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import type { Configuration } from './configuration';
13
- import type { AxiosRequestConfig } from 'axios';
13
+ import type { AxiosError, AxiosResponse, AxiosRequestConfig, InternalAxiosRequestConfig } from 'axios';
14
14
  export declare const BASE_PATH: string;
15
15
  /**
16
16
  *
@@ -31,6 +31,9 @@ export interface RequestArgs {
31
31
  url: string;
32
32
  options: AxiosRequestConfig;
33
33
  }
34
+ export declare const versionInterceptor: (config: InternalAxiosRequestConfig) => InternalAxiosRequestConfig<any>;
35
+ export declare const responseInterceptor: (response: AxiosResponse) => any;
36
+ export declare const errorInterceptor: (error: AxiosError) => Promise<never>;
34
37
  /**
35
38
  *
36
39
  * @export
@@ -39,7 +42,7 @@ export interface RequestArgs {
39
42
  export declare class BaseAPI {
40
43
  protected configuration: Configuration | undefined;
41
44
  protected basePath: string;
42
- protected axios: import("axios").AxiosStatic;
45
+ protected axios: import("axios").AxiosInstance;
43
46
  constructor(configuration: Configuration);
44
47
  }
45
48
  /**
package/dist/base.js CHANGED
@@ -13,7 +13,7 @@
13
13
  * Do not edit the class manually.
14
14
  */
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.RequiredError = exports.BaseAPI = exports.COLLECTION_FORMATS = exports.BASE_PATH = void 0;
16
+ exports.RequiredError = exports.BaseAPI = exports.errorInterceptor = exports.responseInterceptor = exports.versionInterceptor = exports.COLLECTION_FORMATS = exports.BASE_PATH = void 0;
17
17
  const axios_1 = require("axios");
18
18
  exports.BASE_PATH = "https://api.pipedrive.com/v1".replace(/\/+$/, "");
19
19
  /**
@@ -26,26 +26,29 @@ exports.COLLECTION_FORMATS = {
26
26
  tsv: "\t",
27
27
  pipes: "|",
28
28
  };
29
- /**
30
- * Axios interceptor to add the SDK version as a User-Agent header
31
- * */
32
- axios_1.default.interceptors.request.use(function (config) {
33
- const version = require("../package.json").version;
29
+ const versionInterceptor = (config) => {
30
+ let version;
31
+ try {
32
+ version = require('../package.json').version;
33
+ }
34
+ catch (error) {
35
+ version = '22.x';
36
+ }
34
37
  config.headers['User-Agent'] = `Pipedrive-SDK-Javascript-${version}`;
35
38
  return config;
36
- });
37
- /**
38
- * Axios response interceptor to modify response structure
39
- */
40
- axios_1.default.interceptors.response.use(function (response) {
41
- return response ? (response.hasOwnProperty('success') ? response : response.data) : response;
42
- }, function (error) {
43
- var _a;
44
- if ((_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data) {
39
+ };
40
+ exports.versionInterceptor = versionInterceptor;
41
+ const responseInterceptor = (response) => {
42
+ return (response === null || response === void 0 ? void 0 : response.data) ? response.data : response;
43
+ };
44
+ exports.responseInterceptor = responseInterceptor;
45
+ const errorInterceptor = (error) => {
46
+ if (error.response && error.response.data) {
45
47
  return Promise.reject(error.response.data);
46
48
  }
47
49
  return Promise.reject(error);
48
- });
50
+ };
51
+ exports.errorInterceptor = errorInterceptor;
49
52
  /**
50
53
  *
51
54
  * @export
@@ -54,11 +57,13 @@ axios_1.default.interceptors.response.use(function (response) {
54
57
  class BaseAPI {
55
58
  constructor(configuration) {
56
59
  this.basePath = exports.BASE_PATH;
57
- this.axios = axios_1.default;
60
+ this.axios = axios_1.default.create();
58
61
  if (configuration) {
59
62
  this.configuration = configuration;
60
63
  this.basePath = configuration.basePath || this.basePath;
61
64
  }
65
+ this.axios.interceptors.response.use(exports.responseInterceptor, exports.errorInterceptor);
66
+ this.axios.interceptors.request.use(exports.versionInterceptor);
62
67
  }
63
68
  }
64
69
  exports.BaseAPI = BaseAPI;
@@ -25,6 +25,7 @@ export interface Parameters {
25
25
  }
26
26
  export type ParamKey = keyof Parameters;
27
27
  export declare class OAuth2Configuration {
28
+ private axios;
28
29
  private host;
29
30
  private accessToken;
30
31
  private refreshToken;
@@ -25,9 +25,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
25
25
  exports.Configuration = exports.OAuth2Configuration = void 0;
26
26
  const axios_1 = require("axios");
27
27
  const qs_1 = require("qs");
28
+ const base_1 = require("./base");
28
29
  ;
29
30
  class OAuth2Configuration {
30
31
  constructor(params) {
32
+ this.axios = axios_1.default.create();
31
33
  this.accessToken = null;
32
34
  this.refreshToken = null;
33
35
  this.scope = null;
@@ -53,7 +55,7 @@ class OAuth2Configuration {
53
55
  }
54
56
  const authorizationUrl = `${this.host}/oauth/token`;
55
57
  const clientIdAndSecretInBase64 = Buffer.from(`${this.clientId}:${this.clientSecret}`).toString("base64");
56
- const response = yield axios_1.default.post(authorizationUrl, (0, qs_1.stringify)({
58
+ const response = yield this.axios.post(authorizationUrl, (0, qs_1.stringify)({
57
59
  code,
58
60
  redirect_uri: this.redirectUri,
59
61
  grant_type: "authorization_code",
@@ -70,7 +72,7 @@ class OAuth2Configuration {
70
72
  this.tokenRefresh = () => __awaiter(this, void 0, void 0, function* () {
71
73
  const refreshUrl = `${this.host}/oauth/token`;
72
74
  const clientIdAndSecretInBase64 = Buffer.from(`${this.clientId}:${this.clientSecret}`).toString("base64");
73
- const response = yield axios_1.default.post(refreshUrl, (0, qs_1.stringify)({
75
+ const response = yield this.axios.post(refreshUrl, (0, qs_1.stringify)({
74
76
  refresh_token: this.refreshToken,
75
77
  grant_type: "refresh_token",
76
78
  }), {
@@ -114,7 +116,13 @@ class OAuth2Configuration {
114
116
  return token;
115
117
  };
116
118
  this.getUserAgent = () => {
117
- const version = require("../package.json").version;
119
+ let version;
120
+ try {
121
+ version = require('../package.json').version;
122
+ }
123
+ catch (error) {
124
+ version = '22.x';
125
+ }
118
126
  return `Pipedrive-SDK-Javascript-${version}`;
119
127
  };
120
128
  this.validateParam = (params, key) => {
@@ -127,6 +135,8 @@ class OAuth2Configuration {
127
135
  this.clientSecret = this.validateParam(params, 'clientSecret');
128
136
  this.redirectUri = this.validateParam(params, 'redirectUri');
129
137
  this.host = params.host || "https://oauth.pipedrive.com";
138
+ this.axios.interceptors.response.use(base_1.responseInterceptor, base_1.errorInterceptor);
139
+ this.axios.interceptors.request.use(base_1.versionInterceptor);
130
140
  }
131
141
  get authorizationUrl() {
132
142
  return `${this.host}/oauth/authorize?client_id=${this.clientId}&redirect_uri=${encodeURIComponent(this.redirectUri)}`;
@@ -143,7 +153,7 @@ class OAuth2Configuration {
143
153
  const clientSecret = this.clientSecret;
144
154
  const revokeUrl = `${this.host}/oauth/revoke?`;
145
155
  const clientIdAndSecretInBase64 = Buffer.from(`${clientId}:${clientSecret}`).toString('base64');
146
- const response = yield axios_1.default.post(revokeUrl, (0, qs_1.stringify)({
156
+ const response = yield this.axios.post(revokeUrl, (0, qs_1.stringify)({
147
157
  token,
148
158
  token_type_hint: tokenTypeHint
149
159
  }), {
@@ -10,7 +10,7 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import type { Configuration } from './configuration';
13
- import type { AxiosRequestConfig } from 'axios';
13
+ import type { AxiosError, AxiosResponse, AxiosRequestConfig, InternalAxiosRequestConfig } from 'axios';
14
14
  export declare const BASE_PATH: string;
15
15
  /**
16
16
  *
@@ -31,6 +31,9 @@ export interface RequestArgs {
31
31
  url: string;
32
32
  options: AxiosRequestConfig;
33
33
  }
34
+ export declare const versionInterceptor: (config: InternalAxiosRequestConfig) => InternalAxiosRequestConfig<any>;
35
+ export declare const responseInterceptor: (response: AxiosResponse) => any;
36
+ export declare const errorInterceptor: (error: AxiosError) => Promise<never>;
34
37
  /**
35
38
  *
36
39
  * @export
@@ -39,7 +42,7 @@ export interface RequestArgs {
39
42
  export declare class BaseAPI {
40
43
  protected configuration: Configuration | undefined;
41
44
  protected basePath: string;
42
- protected axios: import("axios").AxiosStatic;
45
+ protected axios: import("axios").AxiosInstance;
43
46
  constructor(configuration: Configuration);
44
47
  }
45
48
  /**
package/dist/esm/base.js CHANGED
@@ -11,7 +11,7 @@
11
11
  * https://openapi-generator.tech
12
12
  * Do not edit the class manually.
13
13
  */
14
- import globalAxios from 'axios';
14
+ import axios from 'axios';
15
15
  export const BASE_PATH = "https://api.pipedrive.com/v1".replace(/\/+$/, "");
16
16
  /**
17
17
  *
@@ -23,26 +23,26 @@ export const COLLECTION_FORMATS = {
23
23
  tsv: "\t",
24
24
  pipes: "|",
25
25
  };
26
- /**
27
- * Axios interceptor to add the SDK version as a User-Agent header
28
- * */
29
- globalAxios.interceptors.request.use(function (config) {
30
- const version = require("../package.json").version;
26
+ export const versionInterceptor = (config) => {
27
+ let version;
28
+ try {
29
+ version = require('../package.json').version;
30
+ }
31
+ catch (error) {
32
+ version = '22.x';
33
+ }
31
34
  config.headers['User-Agent'] = `Pipedrive-SDK-Javascript-${version}`;
32
35
  return config;
33
- });
34
- /**
35
- * Axios response interceptor to modify response structure
36
- */
37
- globalAxios.interceptors.response.use(function (response) {
38
- return response ? (response.hasOwnProperty('success') ? response : response.data) : response;
39
- }, function (error) {
40
- var _a;
41
- if ((_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data) {
36
+ };
37
+ export const responseInterceptor = (response) => {
38
+ return (response === null || response === void 0 ? void 0 : response.data) ? response.data : response;
39
+ };
40
+ export const errorInterceptor = (error) => {
41
+ if (error.response && error.response.data) {
42
42
  return Promise.reject(error.response.data);
43
43
  }
44
44
  return Promise.reject(error);
45
- });
45
+ };
46
46
  /**
47
47
  *
48
48
  * @export
@@ -51,11 +51,13 @@ globalAxios.interceptors.response.use(function (response) {
51
51
  export class BaseAPI {
52
52
  constructor(configuration) {
53
53
  this.basePath = BASE_PATH;
54
- this.axios = globalAxios;
54
+ this.axios = axios.create();
55
55
  if (configuration) {
56
56
  this.configuration = configuration;
57
57
  this.basePath = configuration.basePath || this.basePath;
58
58
  }
59
+ this.axios.interceptors.response.use(responseInterceptor, errorInterceptor);
60
+ this.axios.interceptors.request.use(versionInterceptor);
59
61
  }
60
62
  }
61
63
  ;
@@ -25,6 +25,7 @@ export interface Parameters {
25
25
  }
26
26
  export type ParamKey = keyof Parameters;
27
27
  export declare class OAuth2Configuration {
28
+ private axios;
28
29
  private host;
29
30
  private accessToken;
30
31
  private refreshToken;
@@ -20,11 +20,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
20
20
  step((generator = generator.apply(thisArg, _arguments || [])).next());
21
21
  });
22
22
  };
23
- import globalAxios from "axios";
23
+ import axios from "axios";
24
24
  import { stringify } from "qs";
25
+ import { errorInterceptor, responseInterceptor, versionInterceptor } from './base';
25
26
  ;
26
27
  export class OAuth2Configuration {
27
28
  constructor(params) {
29
+ this.axios = axios.create();
28
30
  this.accessToken = null;
29
31
  this.refreshToken = null;
30
32
  this.scope = null;
@@ -50,7 +52,7 @@ export class OAuth2Configuration {
50
52
  }
51
53
  const authorizationUrl = `${this.host}/oauth/token`;
52
54
  const clientIdAndSecretInBase64 = Buffer.from(`${this.clientId}:${this.clientSecret}`).toString("base64");
53
- const response = yield globalAxios.post(authorizationUrl, stringify({
55
+ const response = yield this.axios.post(authorizationUrl, stringify({
54
56
  code,
55
57
  redirect_uri: this.redirectUri,
56
58
  grant_type: "authorization_code",
@@ -67,7 +69,7 @@ export class OAuth2Configuration {
67
69
  this.tokenRefresh = () => __awaiter(this, void 0, void 0, function* () {
68
70
  const refreshUrl = `${this.host}/oauth/token`;
69
71
  const clientIdAndSecretInBase64 = Buffer.from(`${this.clientId}:${this.clientSecret}`).toString("base64");
70
- const response = yield globalAxios.post(refreshUrl, stringify({
72
+ const response = yield this.axios.post(refreshUrl, stringify({
71
73
  refresh_token: this.refreshToken,
72
74
  grant_type: "refresh_token",
73
75
  }), {
@@ -111,7 +113,13 @@ export class OAuth2Configuration {
111
113
  return token;
112
114
  };
113
115
  this.getUserAgent = () => {
114
- const version = require("../package.json").version;
116
+ let version;
117
+ try {
118
+ version = require('../package.json').version;
119
+ }
120
+ catch (error) {
121
+ version = '22.x';
122
+ }
115
123
  return `Pipedrive-SDK-Javascript-${version}`;
116
124
  };
117
125
  this.validateParam = (params, key) => {
@@ -124,6 +132,8 @@ export class OAuth2Configuration {
124
132
  this.clientSecret = this.validateParam(params, 'clientSecret');
125
133
  this.redirectUri = this.validateParam(params, 'redirectUri');
126
134
  this.host = params.host || "https://oauth.pipedrive.com";
135
+ this.axios.interceptors.response.use(responseInterceptor, errorInterceptor);
136
+ this.axios.interceptors.request.use(versionInterceptor);
127
137
  }
128
138
  get authorizationUrl() {
129
139
  return `${this.host}/oauth/authorize?client_id=${this.clientId}&redirect_uri=${encodeURIComponent(this.redirectUri)}`;
@@ -140,7 +150,7 @@ export class OAuth2Configuration {
140
150
  const clientSecret = this.clientSecret;
141
151
  const revokeUrl = `${this.host}/oauth/revoke?`;
142
152
  const clientIdAndSecretInBase64 = Buffer.from(`${clientId}:${clientSecret}`).toString('base64');
143
- const response = yield globalAxios.post(revokeUrl, stringify({
153
+ const response = yield this.axios.post(revokeUrl, stringify({
144
154
  token,
145
155
  token_type_hint: tokenTypeHint
146
156
  }), {
@@ -12,7 +12,7 @@ Name | Type | Description | Notes
12
12
  **keyString** | **String** | A string that is generated by the API based on the given name of the activity type upon creation | [optional]
13
13
  **activeFlag** | **Boolean** | The active flag of the activity type | [optional]
14
14
  **isCustomFlag** | **Boolean** | Whether the activity type is a custom one or not | [optional]
15
- **addTime** | **String** | The creation time of the activity type | [optional]
16
- **updateTime** | **String** | The update time of the activity type | [optional]
15
+ **addTime** | **Date** | The creation time of the activity type | [optional]
16
+ **updateTime** | **Date** | The update time of the activity type | [optional]
17
17
 
18
18
 
@@ -7,7 +7,7 @@ Name | Type | Description | Notes
7
7
  **subscriptionUrl** | **String** | A full, valid, publicly accessible URL which determines where to send the notifications. Please note that you cannot use Pipedrive API endpoints as the &#x60;subscription_url&#x60; and the chosen URL must not redirect to another link. |
8
8
  **eventAction** | **String** | The type of action to receive notifications about. Wildcard will match all supported actions. |
9
9
  **eventObject** | **String** | The type of object to receive notifications about. Wildcard will match all supported objects. |
10
- **userId** | **Number** | The ID of the user that this webhook will be authorized with. You have the option to use a different user&#39;s &#x60;user_id&#x60;. If it is not set, the current user&#39;s &#x60;user_id&#x60; will be used. As each webhook event is checked against a users permissions, the webhook will only be sent if the user has access to the specified object(s). If you want to receive notifications for all events, please use a top-level admin user’s &#x60;user_id&#x60;. | [optional]
10
+ **userId** | **Number** | The ID of the user that this webhook will be authorized with. You have the option to use a different user&#39;s &#x60;user_id&#x60;. If it is not set, the current user&#39;s &#x60;user_id&#x60; will be used. As each webhook event is checked against a user&#39;s permissions, the webhook will only be sent if the user has access to the specified object(s). If you want to receive notifications for all events, please use a top-level admin user’s &#x60;user_id&#x60;. | [optional]
11
11
  **httpAuthUser** | **String** | The HTTP basic auth username of the subscription URL endpoint (if required) | [optional]
12
12
  **httpAuthPassword** | **String** | The HTTP basic auth password of the subscription URL endpoint (if required) | [optional]
13
13
  **version** | **String** | The webhook&#39;s version | [optional] [default to &#39;1.0&#39;]