Skip to content

Commit 33d12ce

Browse files
Merge master into GRAL-5822-soc
2 parents cfc6fa3 + d150f44 commit 33d12ce

24 files changed

Lines changed: 450 additions & 188 deletions

CHANGELOG.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,14 @@ For public Changelog covering all changes done to Pipedrive’s API, webhooks an
1010
### Changed
1111
- Updated `flatted` dependency to version 3.4.2
1212

13+
## [32.2.0] - 2026-04-14
14+
### Added
15+
- Added `include_field_code` query parameter to Filters endpoints:
16+
- `GET /v1/filters/{id}`
17+
- `PUT /v1/filters/{id}`
18+
- `POST /v1/filters`
19+
- When set to `true`, each condition in the response includes a `field_code` field identifying the field by its code name. The value is `null` if the field code cannot be resolved.
20+
1321
## [32.1.0] - 2026-03-26
1422
### Added
1523
- Added `assignee_ids` field to Tasks endpoints:
@@ -1221,7 +1229,8 @@ Those fields will be formatted as "2020-07-13" instead of "2020-07-13T00:00:00.0
12211229
* Fixed `GET /goal/:id/results` error handling in case when there are no existing stages connected to specified goal
12221230
* Fixed typo in lead example response (`crrency` to `currency`)
12231231

1224-
[Unreleased]: https://github.com/pipedrive/api-docs/compare/v32.1.0...HEAD
1232+
[Unreleased]: https://github.com/pipedrive/api-docs/compare/v32.2.0...HEAD
1233+
[32.2.0]: https://github.com/pipedrive/api-docs/compare/v32.1.0...v32.2.0
12251234
[32.1.0]: https://github.com/pipedrive/api-docs/compare/v32.0.0...v32.1.0
12261235
[32.0.0]: https://github.com/pipedrive/api-docs/compare/v31.6.0...v32.0.0
12271236
[31.6.0]: https://github.com/pipedrive/api-docs/compare/v31.5.0...v31.6.0

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "pipedrive",
3-
"version": "32.1.0",
3+
"version": "32.2.0",
44
"description": "Pipedrive REST client for NodeJS",
55
"license": "MIT",
66
"homepage": "https://developers.pipedrive.com",

src/versions/v1/api/filters-api.ts

Lines changed: 54 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,12 @@ export const FiltersApiAxiosParamCreator = function (configuration?: Configurati
4444
/**
4545
* Adds a new filter, returns the ID upon success. Note that in the conditions JSON object only one first-level condition group is supported, and it must be glued with \'AND\', and only two second level condition groups are supported of which one must be glued with \'AND\' and the second with \'OR\'. Other combinations do not work (yet) but the syntax supports introducing them in future. For more information, see the tutorial for <a href=\"https://pipedrive.readme.io/docs/adding-a-filter\" target=\"_blank\" rel=\"noopener noreferrer\">adding a filter</a>.
4646
* @summary Add a new filter
47+
* @param {boolean} [include_field_code] If set to &#x60;true&#x60;, each condition in the response includes a &#x60;field_code&#x60; field identifying the field by its code name
4748
* @param {AddFilterRequest} [AddFilterRequest]
4849
4950
* @throws {RequiredError}
5051
*/
51-
addFilter: async (AddFilterRequest?: AddFilterRequest, ): Promise<RequestArgs> => {
52+
addFilter: async (include_field_code?: boolean, AddFilterRequest?: AddFilterRequest, ): Promise<RequestArgs> => {
5253
const localVarPath = `/filters`;
5354
// use dummy base URL string because the URL constructor only accepts absolute URLs.
5455
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -68,6 +69,10 @@ export const FiltersApiAxiosParamCreator = function (configuration?: Configurati
6869
// oauth required
6970
await setOAuthToObject(localVarHeaderParameter, "oauth2", ["deals:full", "activities:full", "contacts:full"], configuration)
7071

72+
if (include_field_code !== undefined) {
73+
localVarQueryParameter['include_field_code'] = include_field_code;
74+
}
75+
7176

7277

7378
localVarHeaderParameter['Content-Type'] = 'application/json';
@@ -171,10 +176,11 @@ export const FiltersApiAxiosParamCreator = function (configuration?: Configurati
171176
* Returns data about a specific filter. Note that this also returns the condition lines of the filter.
172177
* @summary Get one filter
173178
* @param {number} id The ID of the filter
179+
* @param {boolean} [include_field_code] If set to &#x60;true&#x60;, each condition in the response includes a &#x60;field_code&#x60; field identifying the field by its code name
174180
175181
* @throws {RequiredError}
176182
*/
177-
getFilter: async (id: number, ): Promise<RequestArgs> => {
183+
getFilter: async (id: number, include_field_code?: boolean, ): Promise<RequestArgs> => {
178184
// verify required parameter 'id' is not null or undefined
179185
assertParamExists('getFilter', 'id', id)
180186
const localVarPath = `/filters/{id}`
@@ -197,6 +203,10 @@ export const FiltersApiAxiosParamCreator = function (configuration?: Configurati
197203
// oauth required
198204
await setOAuthToObject(localVarHeaderParameter, "oauth2", ["deals:read", "deals:full", "activities:read", "activities:full", "contacts:read", "contacts:full"], configuration)
199205

206+
if (include_field_code !== undefined) {
207+
localVarQueryParameter['include_field_code'] = include_field_code;
208+
}
209+
200210

201211

202212
setSearchParams(localVarUrlObj, localVarQueryParameter);
@@ -291,11 +301,12 @@ export const FiltersApiAxiosParamCreator = function (configuration?: Configurati
291301
* Updates an existing filter.
292302
* @summary Update filter
293303
* @param {number} id The ID of the filter
304+
* @param {boolean} [include_field_code] If set to &#x60;true&#x60;, each condition in the response includes a &#x60;field_code&#x60; field identifying the field by its code name
294305
* @param {UpdateFilterRequest} [UpdateFilterRequest]
295306
296307
* @throws {RequiredError}
297308
*/
298-
updateFilter: async (id: number, UpdateFilterRequest?: UpdateFilterRequest, ): Promise<RequestArgs> => {
309+
updateFilter: async (id: number, include_field_code?: boolean, UpdateFilterRequest?: UpdateFilterRequest, ): Promise<RequestArgs> => {
299310
// verify required parameter 'id' is not null or undefined
300311
assertParamExists('updateFilter', 'id', id)
301312
const localVarPath = `/filters/{id}`
@@ -318,6 +329,10 @@ export const FiltersApiAxiosParamCreator = function (configuration?: Configurati
318329
// oauth required
319330
await setOAuthToObject(localVarHeaderParameter, "oauth2", ["deals:full", "activities:full", "contacts:full"], configuration)
320331

332+
if (include_field_code !== undefined) {
333+
localVarQueryParameter['include_field_code'] = include_field_code;
334+
}
335+
321336

322337

323338
localVarHeaderParameter['Content-Type'] = 'application/json';
@@ -346,12 +361,13 @@ export const FiltersApiFp = function(configuration?: Configuration) {
346361
/**
347362
* Adds a new filter, returns the ID upon success. Note that in the conditions JSON object only one first-level condition group is supported, and it must be glued with \'AND\', and only two second level condition groups are supported of which one must be glued with \'AND\' and the second with \'OR\'. Other combinations do not work (yet) but the syntax supports introducing them in future. For more information, see the tutorial for <a href=\"https://pipedrive.readme.io/docs/adding-a-filter\" target=\"_blank\" rel=\"noopener noreferrer\">adding a filter</a>.
348363
* @summary Add a new filter
364+
* @param {boolean} [include_field_code] If set to &#x60;true&#x60;, each condition in the response includes a &#x60;field_code&#x60; field identifying the field by its code name
349365
* @param {AddFilterRequest} [AddFilterRequest]
350366
351367
* @throws {RequiredError}
352368
*/
353-
async addFilter(AddFilterRequest?: AddFilterRequest, ): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AddFiltersResponse>> {
354-
const localVarAxiosArgs = await localVarAxiosParamCreator.addFilter(AddFilterRequest, );
369+
async addFilter(include_field_code?: boolean, AddFilterRequest?: AddFilterRequest, ): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AddFiltersResponse>> {
370+
const localVarAxiosArgs = await localVarAxiosParamCreator.addFilter(include_field_code, AddFilterRequest, );
355371
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
356372
},
357373
/**
@@ -380,11 +396,12 @@ export const FiltersApiFp = function(configuration?: Configuration) {
380396
* Returns data about a specific filter. Note that this also returns the condition lines of the filter.
381397
* @summary Get one filter
382398
* @param {number} id The ID of the filter
399+
* @param {boolean} [include_field_code] If set to &#x60;true&#x60;, each condition in the response includes a &#x60;field_code&#x60; field identifying the field by its code name
383400
384401
* @throws {RequiredError}
385402
*/
386-
async getFilter(id: number, ): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<GetFiltersResponse1>> {
387-
const localVarAxiosArgs = await localVarAxiosParamCreator.getFilter(id, );
403+
async getFilter(id: number, include_field_code?: boolean, ): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<GetFiltersResponse1>> {
404+
const localVarAxiosArgs = await localVarAxiosParamCreator.getFilter(id, include_field_code, );
388405
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
389406
},
390407
/**
@@ -412,12 +429,13 @@ export const FiltersApiFp = function(configuration?: Configuration) {
412429
* Updates an existing filter.
413430
* @summary Update filter
414431
* @param {number} id The ID of the filter
432+
* @param {boolean} [include_field_code] If set to &#x60;true&#x60;, each condition in the response includes a &#x60;field_code&#x60; field identifying the field by its code name
415433
* @param {UpdateFilterRequest} [UpdateFilterRequest]
416434
417435
* @throws {RequiredError}
418436
*/
419-
async updateFilter(id: number, UpdateFilterRequest?: UpdateFilterRequest, ): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AddFiltersResponse>> {
420-
const localVarAxiosArgs = await localVarAxiosParamCreator.updateFilter(id, UpdateFilterRequest, );
437+
async updateFilter(id: number, include_field_code?: boolean, UpdateFilterRequest?: UpdateFilterRequest, ): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AddFiltersResponse>> {
438+
const localVarAxiosArgs = await localVarAxiosParamCreator.updateFilter(id, include_field_code, UpdateFilterRequest, );
421439
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
422440
},
423441
}
@@ -438,7 +456,7 @@ export const FiltersApiFactory = function (configuration?: Configuration, basePa
438456
* @throws {RequiredError}
439457
*/
440458
addFilter(requestParameters: FiltersApiAddFilterRequest = {}, ): Promise<AddFiltersResponse> {
441-
return localVarFp.addFilter(requestParameters.AddFilterRequest, ).then((request) => request(axios, basePath));
459+
return localVarFp.addFilter(requestParameters.include_field_code, requestParameters.AddFilterRequest, ).then((request) => request(axios, basePath));
442460
},
443461
/**
444462
* Marks a filter as deleted.
@@ -468,7 +486,7 @@ export const FiltersApiFactory = function (configuration?: Configuration, basePa
468486
* @throws {RequiredError}
469487
*/
470488
getFilter(requestParameters: FiltersApiGetFilterRequest, ): Promise<GetFiltersResponse1> {
471-
return localVarFp.getFilter(requestParameters.id, ).then((request) => request(axios, basePath));
489+
return localVarFp.getFilter(requestParameters.id, requestParameters.include_field_code, ).then((request) => request(axios, basePath));
472490
},
473491
/**
474492
* Returns all supported filter helpers. It helps to know what conditions and helpers are available when you want to <a href=\"/docs/api/v1/Filters#addFilter\">add</a> or <a href=\"/docs/api/v1/Filters#updateFilter\">update</a> filters. For more information, see the tutorial for <a href=\"https://pipedrive.readme.io/docs/adding-a-filter\" target=\"_blank\" rel=\"noopener noreferrer\">adding a filter</a>.
@@ -497,7 +515,7 @@ export const FiltersApiFactory = function (configuration?: Configuration, basePa
497515
* @throws {RequiredError}
498516
*/
499517
updateFilter(requestParameters: FiltersApiUpdateFilterRequest, ): Promise<AddFiltersResponse> {
500-
return localVarFp.updateFilter(requestParameters.id, requestParameters.UpdateFilterRequest, ).then((request) => request(axios, basePath));
518+
return localVarFp.updateFilter(requestParameters.id, requestParameters.include_field_code, requestParameters.UpdateFilterRequest, ).then((request) => request(axios, basePath));
501519
},
502520
};
503521
};
@@ -508,6 +526,13 @@ export const FiltersApiFactory = function (configuration?: Configuration, basePa
508526
* @interface FiltersApiAddFilterRequest
509527
*/
510528
export interface FiltersApiAddFilterRequest {
529+
/**
530+
* If set to &#x60;true&#x60;, each condition in the response includes a &#x60;field_code&#x60; field identifying the field by its code name
531+
* @type {boolean}
532+
* @memberof FiltersApiAddFilter
533+
*/
534+
readonly include_field_code?: boolean
535+
511536
/**
512537
*
513538
* @type {AddFilterRequest}
@@ -556,6 +581,13 @@ export interface FiltersApiGetFilterRequest {
556581
* @memberof FiltersApiGetFilter
557582
*/
558583
readonly id: number
584+
585+
/**
586+
* If set to &#x60;true&#x60;, each condition in the response includes a &#x60;field_code&#x60; field identifying the field by its code name
587+
* @type {boolean}
588+
* @memberof FiltersApiGetFilter
589+
*/
590+
readonly include_field_code?: boolean
559591
}
560592

561593
/**
@@ -585,6 +617,13 @@ export interface FiltersApiUpdateFilterRequest {
585617
*/
586618
readonly id: number
587619

620+
/**
621+
* If set to &#x60;true&#x60;, each condition in the response includes a &#x60;field_code&#x60; field identifying the field by its code name
622+
* @type {boolean}
623+
* @memberof FiltersApiUpdateFilter
624+
*/
625+
readonly include_field_code?: boolean
626+
588627
/**
589628
*
590629
* @type {UpdateFilterRequest}
@@ -609,7 +648,7 @@ export class FiltersApi extends BaseAPI {
609648
* @memberof FiltersApi
610649
*/
611650
public addFilter(requestParameters: FiltersApiAddFilterRequest = {}, ) {
612-
return FiltersApiFp(this.configuration).addFilter(requestParameters.AddFilterRequest, ).then((request) => request(this.axios, this.basePath));
651+
return FiltersApiFp(this.configuration).addFilter(requestParameters.include_field_code, requestParameters.AddFilterRequest, ).then((request) => request(this.axios, this.basePath));
613652
}
614653

615654
/**
@@ -645,7 +684,7 @@ export class FiltersApi extends BaseAPI {
645684
* @memberof FiltersApi
646685
*/
647686
public getFilter(requestParameters: FiltersApiGetFilterRequest, ) {
648-
return FiltersApiFp(this.configuration).getFilter(requestParameters.id, ).then((request) => request(this.axios, this.basePath));
687+
return FiltersApiFp(this.configuration).getFilter(requestParameters.id, requestParameters.include_field_code, ).then((request) => request(this.axios, this.basePath));
649688
}
650689

651690
/**
@@ -680,6 +719,6 @@ export class FiltersApi extends BaseAPI {
680719
* @memberof FiltersApi
681720
*/
682721
public updateFilter(requestParameters: FiltersApiUpdateFilterRequest, ) {
683-
return FiltersApiFp(this.configuration).updateFilter(requestParameters.id, requestParameters.UpdateFilterRequest, ).then((request) => request(this.axios, this.basePath));
722+
return FiltersApiFp(this.configuration).updateFilter(requestParameters.id, requestParameters.include_field_code, requestParameters.UpdateFilterRequest, ).then((request) => request(this.axios, this.basePath));
684723
}
685724
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
/* tslint:disable */
2+
/* eslint-disable */
3+
/**
4+
* Pipedrive API v1
5+
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
6+
*
7+
* The version of the OpenAPI document: 1.0.0
8+
*
9+
*
10+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11+
* https://openapi-generator.tech
12+
* Do not edit the class manually.
13+
*/
14+
15+
16+
17+
/**
18+
* A single filter condition
19+
* @export
20+
* @interface FilterConditionsConditionsInnerConditionsInner
21+
*/
22+
export interface FilterConditionsConditionsInnerConditionsInner {
23+
/**
24+
* The type of entity the condition applies to (e.g. \"deal\", \"person\")
25+
* @type {string}
26+
*/
27+
'object'?: string;
28+
/**
29+
* The ID of the field
30+
* @type {string}
31+
*/
32+
'field_id'?: string;
33+
/**
34+
* The operator used in the condition (e.g. \"=\", \"IS NOT NULL\")
35+
* @type {string}
36+
*/
37+
'operator'?: string;
38+
/**
39+
* The value of the condition
40+
* @type {string}
41+
*/
42+
'value'?: string | null;
43+
/**
44+
* An extra value for conditions that require two values
45+
* @type {string}
46+
*/
47+
'extra_value'?: string | null;
48+
/**
49+
* Whether the value is JSON-encoded
50+
* @type {boolean}
51+
*/
52+
'json_value_flag'?: boolean;
53+
/**
54+
* The code name of the field. Present when `include_field_code=true` is passed as a query parameter; `null` if the field code cannot be resolved
55+
* @type {string}
56+
*/
57+
'field_code'?: string | null;
58+
}
59+
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/* tslint:disable */
2+
/* eslint-disable */
3+
/**
4+
* Pipedrive API v1
5+
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
6+
*
7+
* The version of the OpenAPI document: 1.0.0
8+
*
9+
*
10+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11+
* https://openapi-generator.tech
12+
* Do not edit the class manually.
13+
*/
14+
15+
16+
// May contain unused imports in some cases
17+
// @ts-ignore
18+
import { FilterConditionsConditionsInnerConditionsInner } from './filter-conditions-conditions-inner-conditions-inner';
19+
20+
/**
21+
* A group of conditions joined by a logical operator
22+
* @export
23+
* @interface FilterConditionsConditionsInner
24+
*/
25+
export interface FilterConditionsConditionsInner {
26+
/**
27+
* The logical operator joining conditions within this group
28+
* @type {string}
29+
*/
30+
'glue'?: FilterConditionsConditionsInnerGlueConst;
31+
/**
32+
* The individual conditions in this group
33+
* @type {Array<FilterConditionsConditionsInnerConditionsInner>}
34+
*/
35+
'conditions'?: Array<FilterConditionsConditionsInnerConditionsInner>;
36+
}
37+
38+
export const FilterConditionsConditionsInnerGlueConst = {
39+
and: 'and',
40+
or: 'or'
41+
} as const;
42+
43+
export type FilterConditionsConditionsInnerGlueConst = typeof FilterConditionsConditionsInnerGlueConst[keyof typeof FilterConditionsConditionsInnerGlueConst];
44+
45+

0 commit comments

Comments
 (0)