Skip to content

Commit e11fe35

Browse files
Release v24.2.0 from PR #606
2 parents 24e88a0 + 0946e5f commit e11fe35

31 files changed

+1522
-18
lines changed

CHANGELOG.md

+10-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,14 @@ For public Changelog covering all changes done to Pipedrive’s API, webhooks an
88

99
## [Unreleased]
1010

11+
## [24.2.0] - 2025-03-12
12+
### Added
13+
- Added `GET /v2/deals/installments` endpoint to fetch all installments added to a list of deals with cursor pagination
14+
- Added `POST /v2/deals/{id}/installments` endpoint to add an installment to a deal
15+
- Added `PATCH /v2/deals/{id}/installments/{installment_id}` endpoint to edit an installment
16+
- Added `DELETE /v2/deals/{id}/installments/{installment_id}` endpoint to delete an installment
17+
- Added AdditionalData to v2 modals
18+
1119
## [24.1.1] - 2025-02-11
1220
### Fixed
1321
- Updated supported enum values for webhook types in the `GET /webhooks` endpoint
@@ -756,7 +764,8 @@ structure
756764
* Fixed `GET /goal/:id/results` error handling in case when there are no existing stages connected to specified goal
757765
* Fixed typo in lead example response (`crrency` to `currency`)
758766

759-
[Unreleased]: https://github.com/pipedrive/api-docs/compare/v24.1.1...HEAD
767+
[Unreleased]: https://github.com/pipedrive/api-docs/compare/v24.2.0...HEAD
768+
[24.2.0]: https://github.com/pipedrive/api-docs/compare/v24.1.1...v24.2.0
760769
[24.1.1]: https://github.com/pipedrive/api-docs/compare/v24.1.0...v24.1.1
761770
[24.1.0]: https://github.com/pipedrive/api-docs/compare/v24.0.0...v24.1.0
762771
[24.0.0]: https://github.com/pipedrive/api-docs/compare/v23.4.3...v24.0.0

docs/v2.md

+8
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ BetaApi | deleteActivity | **DELETE** /activities/{id} | Delete an activity
1818
BetaApi | deleteAdditionalDiscount | **DELETE** /deals/{id}/discounts/{discount_id} | Delete a discount from a deal
1919
BetaApi | deleteDeal | **DELETE** /deals/{id} | Delete a deal
2020
BetaApi | deleteDealProduct | **DELETE** /deals/{id}/products/{product_attachment_id} | Delete an attached product from a deal
21+
BetaApi | deleteInstallment | **DELETE** /deals/{id}/installments/{installment_id} | Delete an installment from a deal
2122
BetaApi | deleteOrganization | **DELETE** /organizations/{id} | Delete a organization
2223
BetaApi | deletePerson | **DELETE** /persons/{id} | Delete a person
2324
BetaApi | getActivities | **GET** /activities | Get all activities
@@ -27,11 +28,13 @@ BetaApi | getDeal | **GET** /deals/{id} | Get details of a deal
2728
BetaApi | getDealProducts | **GET** /deals/{id}/products | List products attached to a deal
2829
BetaApi | getDeals | **GET** /deals | Get all deals
2930
BetaApi | getDealsProducts | **GET** /deals/products | Get deal products of several deals
31+
BetaApi | getInstallments | **GET** /deals/installments | List installments added to a list of deals
3032
BetaApi | getOrganization | **GET** /organizations/{id} | Get details of a organization
3133
BetaApi | getOrganizations | **GET** /organizations | Get all organizations
3234
BetaApi | getPerson | **GET** /persons/{id} | Get details of a person
3335
BetaApi | getPersons | **GET** /persons | Get all persons
3436
BetaApi | postAdditionalDiscount | **POST** /deals/{id}/discounts | Add a discount to a deal
37+
BetaApi | postInstallment | **POST** /deals/{id}/installments | Add an installment to a deal
3538
BetaApi | searchDeals | **GET** /deals/search | Search deals
3639
BetaApi | searchItem | **GET** /itemSearch | Perform a search from multiple item types
3740
BetaApi | searchItemByField | **GET** /itemSearch/field | Perform a search using a specific field from an item type
@@ -42,23 +45,28 @@ BetaApi | updateActivity | **PATCH** /activities/{id} | Update an activity
4245
BetaApi | updateAdditionalDiscount | **PATCH** /deals/{id}/discounts/{discount_id} | Update a discount added to a deal
4346
BetaApi | updateDeal | **PATCH** /deals/{id} | Update a deal
4447
BetaApi | updateDealProduct | **PATCH** /deals/{id}/products/{product_attachment_id} | Update the product attached to a deal
48+
BetaApi | updateInstallment | **PATCH** /deals/{id}/installments/{installment_id} | Update an installment added to a deal
4549
BetaApi | updateOrganization | **PATCH** /organizations/{id} | Update a organization
4650
BetaApi | updatePerson | **PATCH** /persons/{id} | Update a person
4751
DealsApi | addDeal | **POST** /deals | Add a new deal
4852
DealsApi | addDealProduct | **POST** /deals/{id}/products | Add a product to a deal
4953
DealsApi | deleteAdditionalDiscount | **DELETE** /deals/{id}/discounts/{discount_id} | Delete a discount from a deal
5054
DealsApi | deleteDeal | **DELETE** /deals/{id} | Delete a deal
5155
DealsApi | deleteDealProduct | **DELETE** /deals/{id}/products/{product_attachment_id} | Delete an attached product from a deal
56+
DealsApi | deleteInstallment | **DELETE** /deals/{id}/installments/{installment_id} | Delete an installment from a deal
5257
DealsApi | getAdditionalDiscounts | **GET** /deals/{id}/discounts | List discounts added to a deal
5358
DealsApi | getDeal | **GET** /deals/{id} | Get details of a deal
5459
DealsApi | getDealProducts | **GET** /deals/{id}/products | List products attached to a deal
5560
DealsApi | getDeals | **GET** /deals | Get all deals
5661
DealsApi | getDealsProducts | **GET** /deals/products | Get deal products of several deals
62+
DealsApi | getInstallments | **GET** /deals/installments | List installments added to a list of deals
5763
DealsApi | postAdditionalDiscount | **POST** /deals/{id}/discounts | Add a discount to a deal
64+
DealsApi | postInstallment | **POST** /deals/{id}/installments | Add an installment to a deal
5865
DealsApi | searchDeals | **GET** /deals/search | Search deals
5966
DealsApi | updateAdditionalDiscount | **PATCH** /deals/{id}/discounts/{discount_id} | Update a discount added to a deal
6067
DealsApi | updateDeal | **PATCH** /deals/{id} | Update a deal
6168
DealsApi | updateDealProduct | **PATCH** /deals/{id}/products/{product_attachment_id} | Update the product attached to a deal
69+
DealsApi | updateInstallment | **PATCH** /deals/{id}/installments/{installment_id} | Update an installment added to a deal
6270
ItemSearchApi | searchItem | **GET** /itemSearch | Perform a search from multiple item types
6371
ItemSearchApi | searchItemByField | **GET** /itemSearch/field | Perform a search using a specific field from an item type
6472
LeadsApi | searchLeads | **GET** /leads/search | Search leads

package-lock.json

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "pipedrive",
3-
"version": "24.1.1",
3+
"version": "24.2.0",
44
"description": "Pipedrive REST client for NodeJS",
55
"license": "MIT",
66
"homepage": "https://developers.pipedrive.com",
+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
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+
* The pagination details of the list
19+
* @export
20+
* @interface AdditionalData
21+
*/
22+
export interface AdditionalData {
23+
/**
24+
* Next pagination start
25+
* @type {number}
26+
*/
27+
'next_start'?: number;
28+
/**
29+
* Pagination start
30+
* @type {number}
31+
*/
32+
'start'?: number;
33+
/**
34+
* Items shown per page
35+
* @type {number}
36+
*/
37+
'limit'?: number;
38+
/**
39+
* If there are more list items in the collection than displayed or not
40+
* @type {boolean}
41+
*/
42+
'more_items_in_collection'?: boolean;
43+
}
44+

src/versions/v1/models/get-notes-response-additional-data.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
// May contain unused imports in some cases
1717
// @ts-ignore
18-
import { GetNotesResponseAdditionalDataPagination } from './get-notes-response-additional-data-pagination';
18+
import { AdditionalData } from './additional-data';
1919

2020
/**
2121
*
@@ -25,8 +25,8 @@ import { GetNotesResponseAdditionalDataPagination } from './get-notes-response-a
2525
export interface GetNotesResponseAdditionalData {
2626
/**
2727
*
28-
* @type {GetNotesResponseAdditionalDataPagination}
28+
* @type {AdditionalData}
2929
*/
30-
'pagination'?: GetNotesResponseAdditionalDataPagination;
30+
'pagination'?: AdditionalData;
3131
}
3232

src/versions/v1/models/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ export * from './add-user-provider-link-request';
9999
export * from './add-user-request';
100100
export * from './add-webhook-request';
101101
export * from './additional-base-organization-item-info';
102+
export * from './additional-data';
102103
export * from './additional-merge-person-info';
103104
export * from './additional-person-info';
104105
export * from './base-deal';
@@ -411,7 +412,6 @@ export * from './get-note-fields-response-all-of-data-inner-all-of';
411412
export * from './get-note-fields-response-all-of-data-inner-all-of-options-inner';
412413
export * from './get-notes-response';
413414
export * from './get-notes-response-additional-data';
414-
export * from './get-notes-response-additional-data-pagination';
415415
export * from './get-organization-item';
416416
export * from './get-organization-item-all-of';
417417
export * from './get-organization-relationship-response';

src/versions/v2/api/activities-api.ts

+57-5
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,10 @@ export const ActivitiesApiAxiosParamCreator = function (configuration?: Configur
123123
* @param {number} [filter_id] If supplied, only activities matching the specified filter are returned
124124
* @param {string} [ids] Optional comma separated string array of up to 100 entity ids to fetch. If filter_id is provided, this is ignored. If any of the requested entities do not exist or are not visible, they are not included in the response.
125125
* @param {number} [owner_id] If supplied, only activities owned by the specified user are returned. If filter_id is provided, this is ignored.
126+
* @param {number} [deal_id] If supplied, only activities linked to the specified deal are returned. If filter_id is provided, this is ignored.
127+
* @param {string} [lead_id] If supplied, only activities linked to the specified lead are returned. If filter_id is provided, this is ignored.
128+
* @param {number} [person_id] If supplied, only activities whose primary participant is the given person are returned. If filter_id is provided, this is ignored.
129+
* @param {number} [org_id] If supplied, only activities linked to the specified organization are returned. If filter_id is provided, this is ignored.
126130
* @param {string} [updated_since] If set, only activities with an `update_time` later than or equal to this time are returned. In RFC3339 format, e.g. 2025-01-01T10:20:00Z.
127131
* @param {string} [updated_until] If set, only activities with an `update_time` earlier than this time are returned. In RFC3339 format, e.g. 2025-01-01T10:20:00Z.
128132
* @param {'id' | 'update_time' | 'add_time'} [sort_by] The field to sort by. Supported fields: `id`, `update_time`, `add_time`.
@@ -133,7 +137,7 @@ export const ActivitiesApiAxiosParamCreator = function (configuration?: Configur
133137
134138
* @throws {RequiredError}
135139
*/
136-
getActivities: async (filter_id?: number, ids?: string, owner_id?: number, updated_since?: string, updated_until?: string, sort_by?: 'id' | 'update_time' | 'add_time', sort_direction?: 'asc' | 'desc', include_fields?: 'attendees', limit?: number, cursor?: string, ): Promise<RequestArgs> => {
140+
getActivities: async (filter_id?: number, ids?: string, owner_id?: number, deal_id?: number, lead_id?: string, person_id?: number, org_id?: number, updated_since?: string, updated_until?: string, sort_by?: 'id' | 'update_time' | 'add_time', sort_direction?: 'asc' | 'desc', include_fields?: 'attendees', limit?: number, cursor?: string, ): Promise<RequestArgs> => {
137141
const localVarPath = `/activities`;
138142
// use dummy base URL string because the URL constructor only accepts absolute URLs.
139143
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -165,6 +169,22 @@ export const ActivitiesApiAxiosParamCreator = function (configuration?: Configur
165169
localVarQueryParameter['owner_id'] = owner_id;
166170
}
167171

172+
if (deal_id !== undefined) {
173+
localVarQueryParameter['deal_id'] = deal_id;
174+
}
175+
176+
if (lead_id !== undefined) {
177+
localVarQueryParameter['lead_id'] = lead_id;
178+
}
179+
180+
if (person_id !== undefined) {
181+
localVarQueryParameter['person_id'] = person_id;
182+
}
183+
184+
if (org_id !== undefined) {
185+
localVarQueryParameter['org_id'] = org_id;
186+
}
187+
168188
if (updated_since !== undefined) {
169189
localVarQueryParameter['updated_since'] = updated_since;
170190
}
@@ -334,6 +354,10 @@ export const ActivitiesApiFp = function(configuration?: Configuration) {
334354
* @param {number} [filter_id] If supplied, only activities matching the specified filter are returned
335355
* @param {string} [ids] Optional comma separated string array of up to 100 entity ids to fetch. If filter_id is provided, this is ignored. If any of the requested entities do not exist or are not visible, they are not included in the response.
336356
* @param {number} [owner_id] If supplied, only activities owned by the specified user are returned. If filter_id is provided, this is ignored.
357+
* @param {number} [deal_id] If supplied, only activities linked to the specified deal are returned. If filter_id is provided, this is ignored.
358+
* @param {string} [lead_id] If supplied, only activities linked to the specified lead are returned. If filter_id is provided, this is ignored.
359+
* @param {number} [person_id] If supplied, only activities whose primary participant is the given person are returned. If filter_id is provided, this is ignored.
360+
* @param {number} [org_id] If supplied, only activities linked to the specified organization are returned. If filter_id is provided, this is ignored.
337361
* @param {string} [updated_since] If set, only activities with an &#x60;update_time&#x60; later than or equal to this time are returned. In RFC3339 format, e.g. 2025-01-01T10:20:00Z.
338362
* @param {string} [updated_until] If set, only activities with an &#x60;update_time&#x60; earlier than this time are returned. In RFC3339 format, e.g. 2025-01-01T10:20:00Z.
339363
* @param {'id' | 'update_time' | 'add_time'} [sort_by] The field to sort by. Supported fields: &#x60;id&#x60;, &#x60;update_time&#x60;, &#x60;add_time&#x60;.
@@ -344,8 +368,8 @@ export const ActivitiesApiFp = function(configuration?: Configuration) {
344368
345369
* @throws {RequiredError}
346370
*/
347-
async getActivities(filter_id?: number, ids?: string, owner_id?: number, updated_since?: string, updated_until?: string, sort_by?: 'id' | 'update_time' | 'add_time', sort_direction?: 'asc' | 'desc', include_fields?: 'attendees', limit?: number, cursor?: string, ): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<GetActivitiesResponse>> {
348-
const localVarAxiosArgs = await localVarAxiosParamCreator.getActivities(filter_id, ids, owner_id, updated_since, updated_until, sort_by, sort_direction, include_fields, limit, cursor, );
371+
async getActivities(filter_id?: number, ids?: string, owner_id?: number, deal_id?: number, lead_id?: string, person_id?: number, org_id?: number, updated_since?: string, updated_until?: string, sort_by?: 'id' | 'update_time' | 'add_time', sort_direction?: 'asc' | 'desc', include_fields?: 'attendees', limit?: number, cursor?: string, ): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<GetActivitiesResponse>> {
372+
const localVarAxiosArgs = await localVarAxiosParamCreator.getActivities(filter_id, ids, owner_id, deal_id, lead_id, person_id, org_id, updated_since, updated_until, sort_by, sort_direction, include_fields, limit, cursor, );
349373
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
350374
},
351375
/**
@@ -410,7 +434,7 @@ export const ActivitiesApiFactory = function (configuration?: Configuration, bas
410434
* @throws {RequiredError}
411435
*/
412436
getActivities(requestParameters: ActivitiesApiGetActivitiesRequest = {}, ): Promise<GetActivitiesResponse> {
413-
return localVarFp.getActivities(requestParameters.filter_id, requestParameters.ids, requestParameters.owner_id, requestParameters.updated_since, requestParameters.updated_until, requestParameters.sort_by, requestParameters.sort_direction, requestParameters.include_fields, requestParameters.limit, requestParameters.cursor, ).then((request) => request(axios, basePath));
437+
return localVarFp.getActivities(requestParameters.filter_id, requestParameters.ids, requestParameters.owner_id, requestParameters.deal_id, requestParameters.lead_id, requestParameters.person_id, requestParameters.org_id, requestParameters.updated_since, requestParameters.updated_until, requestParameters.sort_by, requestParameters.sort_direction, requestParameters.include_fields, requestParameters.limit, requestParameters.cursor, ).then((request) => request(axios, basePath));
414438
},
415439
/**
416440
* Returns the details of a specific activity.
@@ -490,6 +514,34 @@ export interface ActivitiesApiGetActivitiesRequest {
490514
*/
491515
readonly owner_id?: number
492516

517+
/**
518+
* If supplied, only activities linked to the specified deal are returned. If filter_id is provided, this is ignored.
519+
* @type {number}
520+
* @memberof ActivitiesApiGetActivities
521+
*/
522+
readonly deal_id?: number
523+
524+
/**
525+
* If supplied, only activities linked to the specified lead are returned. If filter_id is provided, this is ignored.
526+
* @type {string}
527+
* @memberof ActivitiesApiGetActivities
528+
*/
529+
readonly lead_id?: string
530+
531+
/**
532+
* If supplied, only activities whose primary participant is the given person are returned. If filter_id is provided, this is ignored.
533+
* @type {number}
534+
* @memberof ActivitiesApiGetActivities
535+
*/
536+
readonly person_id?: number
537+
538+
/**
539+
* If supplied, only activities linked to the specified organization are returned. If filter_id is provided, this is ignored.
540+
* @type {number}
541+
* @memberof ActivitiesApiGetActivities
542+
*/
543+
readonly org_id?: number
544+
493545
/**
494546
* If set, only activities with an &#x60;update_time&#x60; later than or equal to this time are returned. In RFC3339 format, e.g. 2025-01-01T10:20:00Z.
495547
* @type {string}
@@ -622,7 +674,7 @@ export class ActivitiesApi extends BaseAPI {
622674
* @memberof ActivitiesApi
623675
*/
624676
public getActivities(requestParameters: ActivitiesApiGetActivitiesRequest = {}, ) {
625-
return ActivitiesApiFp(this.configuration).getActivities(requestParameters.filter_id, requestParameters.ids, requestParameters.owner_id, requestParameters.updated_since, requestParameters.updated_until, requestParameters.sort_by, requestParameters.sort_direction, requestParameters.include_fields, requestParameters.limit, requestParameters.cursor, ).then((request) => request(this.axios, this.basePath));
677+
return ActivitiesApiFp(this.configuration).getActivities(requestParameters.filter_id, requestParameters.ids, requestParameters.owner_id, requestParameters.deal_id, requestParameters.lead_id, requestParameters.person_id, requestParameters.org_id, requestParameters.updated_since, requestParameters.updated_until, requestParameters.sort_by, requestParameters.sort_direction, requestParameters.include_fields, requestParameters.limit, requestParameters.cursor, ).then((request) => request(this.axios, this.basePath));
626678
}
627679

628680
/**

0 commit comments

Comments
 (0)