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

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.
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;]