@@ -147,18 +147,277 @@ def set_token(self, token):
147147 if token :
148148 self .token = token
149149
150+ def get_recent_changes (self , ** kwargs ):
151+ """
152+ This method Returns data about all recent changes occured after given timestamp. in kwarg must to send "since_timestamp" with this format: YYYY-MM-DD HH:MM:SS
153+ :param kwargs:
154+ :return:
155+ """
156+ if kwargs is not None :
157+ url = "recents"
158+ return self ._get (url , ** kwargs )
159+
160+ # Deals section, see the api documentation: https://developers.pipedrive.com/docs/api/v1/#!/Deals
150161 def get_deals (self , ** kwargs ):
151- url = "{0}/ deals" . format ( self . api_base_url )
162+ url = "deals"
152163 return self ._get (url , ** kwargs )
153164
154165 def create_deal (self , ** kwargs ):
155- url = "{0}/ deals" . format ( self . api_base_url )
166+ url = "deals"
156167 if kwargs is not None :
157168 params = {}
158169 params .update (kwargs )
159170 return self ._post (url , json = params )
160171
172+ def update_deal (self , deal_id , ** kwargs ):
173+ if deal_id is not None and kwargs is not None :
174+ url = "deals/{0}" .format (deal_id )
175+ params = {}
176+ params .update (kwargs )
177+ return self ._put (url , json = params )
178+
179+ def delete_deal (self , deal_id ):
180+ if deal_id is not None :
181+ url = "deals/{0}" .format (deal_id )
182+ return self ._delete (url )
183+
161184 def duplicate_deal (self , deal_id ):
162185 if deal_id is not None :
163- url = "{0}/ deals/{1 }/duplicate" .format (self . api_base_url , deal_id )
186+ url = "deals/{0 }/duplicate" .format (deal_id )
164187 return self ._post (url )
188+
189+ def get_deal_details (self , deal_id ):
190+ if deal_id is not None :
191+ url = "deals/{0}" .format (deal_id )
192+ return self ._get (url )
193+
194+ def get_deals_by_name (self , params = None ):
195+ if params is not None :
196+ url = "deals/find"
197+ return self ._get (url , params = params )
198+
199+ def get_deal_followers (self , deal_id ):
200+ if deal_id is not None :
201+ url = "deals/{0}/followers" .format (deal_id )
202+ return self ._get (url )
203+
204+ def add_follower_to_deal (self , deal_id , user_id ):
205+ if deal_id is not None and user_id is not None :
206+ url = "deals/{0}/followers" .format (deal_id )
207+ return self ._post (url , json = user_id )
208+
209+ def delete_follower_to_deal (self , deal_id , follower_id ):
210+ if deal_id is not None and follower_id is not None :
211+ url = "deals/{0}/followers/{1}" .format (deal_id , follower_id )
212+ return self ._delete (url )
213+
214+ def get_deal_participants (self , deal_id , ** kwargs ):
215+ if deal_id is not None :
216+ url = "deals/{0}/participants" .format (deal_id )
217+ return self ._get (url , ** kwargs )
218+
219+ def add_participants_to_deal (self , deal_id , participant_id ):
220+ if deal_id is not None and participant_id is not None :
221+ url = "deals/{0}/participants" .format (deal_id )
222+ return self ._post (url , json = participant_id )
223+
224+ def delete_participant_to_deal (self , deal_id , participant_id ):
225+ if deal_id is not None and participant_id is not None :
226+ url = "deals/{0}/participants/{1}" .format (deal_id , participant_id )
227+ return self ._delete (url )
228+
229+ def get_deal_activities (self , deal_id , ** kwargs ):
230+ if deal_id is not None :
231+ url = "deals/{0}/activities" .format (deal_id )
232+ return self ._get (url , ** kwargs )
233+
234+ def get_deal_mail_messages (self , deal_id , ** kwargs ):
235+ if deal_id is not None :
236+ url = "deals/{0}/mailMessages" .format (deal_id )
237+ return self ._get (url , ** kwargs )
238+
239+ def get_deal_products (self , deal_id , ** kwargs ):
240+ if deal_id is not None :
241+ url = "deals/{0}/products" .format (deal_id )
242+ return self ._get (url , ** kwargs )
243+
244+ # Notes section, see the api documentation: https://developers.pipedrive.com/docs/api/v1/#!/Notes
245+ def get_notes (self , note_id = None , ** kwargs ):
246+ if note_id is not None :
247+ url = "notes/{0}" .format (note_id )
248+ else :
249+ url = "notes"
250+ return self ._get (url , ** kwargs )
251+
252+ def create_note (self , ** kwargs ):
253+ if kwargs is not None :
254+ url = "notes"
255+ params = {}
256+ params .update (kwargs )
257+ return self ._post (url , json = params )
258+
259+ def update_note (self , note_id , ** kwargs ):
260+ if note_id is not None and kwargs is not None :
261+ url = "notes/{0}" .format (note_id )
262+ params = {}
263+ params .update (kwargs )
264+ return self ._put (url , json = params )
265+
266+ def delete_note (self , note_id ):
267+ if note_id is not None :
268+ url = "notes/{0}" .format (note_id )
269+ return self ._delete (url )
270+
271+ # Organizations section, see the api documentation: https://developers.pipedrive.com/docs/api/v1/#!/Organizations
272+ def get_organizations (self , ** kwargs ):
273+ url = "organizations"
274+ return self ._get (url , ** kwargs )
275+
276+ def create_organization (self , ** kwargs ):
277+ if kwargs is not None :
278+ url = "organizations"
279+ params = {}
280+ params .update (kwargs )
281+ return self ._post (url , json = params )
282+
283+ def update_organization (self , data_id , ** kwargs ):
284+ if data_id is not None :
285+ url = "organizations/{0}" .format (data_id )
286+ params = {}
287+ params .update (kwargs )
288+ return self ._put (url , json = params )
289+
290+ def delete_organization (self , data_id ):
291+ if data_id is not None :
292+ url = "organizations/{0}" .format (data_id )
293+ return self ._delete (url )
294+
295+ # Persons section, see the api documentation: https://developers.pipedrive.com/docs/api/v1/#!/Persons
296+ def get_persons (self , ** kwargs ):
297+ url = "persons"
298+ return self ._get (url , ** kwargs )
299+
300+ def get_persons_by_name (self , params = None ):
301+ if params is not None :
302+ url = "persons/find"
303+ return self ._get (url , params = params )
304+
305+ def get_person_details (self , person_id ):
306+ if person_id is not None :
307+ url = "persons/{0}" .format (person_id )
308+ return self ._get (url )
309+
310+ def create_person (self , ** kwargs ):
311+ if kwargs is not None :
312+ url = "persons"
313+ params = {}
314+ params .update (kwargs )
315+ return self ._post (url , json = params )
316+
317+ def update_person (self , data_id , ** kwargs ):
318+ if data_id is not None and kwargs is not None :
319+ url = "persons/{0}" .format (data_id )
320+ params = {}
321+ params .update (kwargs )
322+ return self ._put (url , json = params )
323+
324+ def delete_person (self , data_id ):
325+ if data_id is not None :
326+ url = "persons/{0}" .format (data_id )
327+ return self ._delete (url )
328+
329+ def get_person_deals (self , person_id , ** kwargs ):
330+ if person_id is not None :
331+ url = "persons/{0}/deals" .format (person_id )
332+ return self ._get (url , ** kwargs )
333+
334+ # Products section, see the api documentation: https://developers.pipedrive.com/docs/api/v1/#!/Products
335+ def get_products (self , product_id = None , ** kwargs ):
336+ if product_id is not None :
337+ url = "products/{0}" .format (product_id )
338+ else :
339+ url = "products"
340+ return self ._get (url , ** kwargs )
341+
342+ def get_product_by_name (self , params = None ):
343+ if params is not None :
344+ url = "products/find"
345+ return self ._get (url , params = params )
346+
347+ def create_product (self , ** kwargs ):
348+ if kwargs is not None :
349+ url = "products"
350+ params = {}
351+ params .update (kwargs )
352+ return self ._post (url , json = params )
353+
354+ def update_product (self , product_id , ** kwargs ):
355+ if product_id is not None and kwargs is not None :
356+ url = "products/{0}" .format (product_id )
357+ params = {}
358+ params .update (kwargs )
359+ return self ._put (url , json = params )
360+
361+ def delete_product (self , product_id ):
362+ if product_id is not None :
363+ url = "products/{0}" .format (product_id )
364+ return self ._delete (url )
365+
366+ def get_product_deal (self , product_id , ** kwargs ):
367+ if product_id is not None :
368+ url = "products/{0}/deals" .format (product_id )
369+ return self ._get (url , ** kwargs )
370+
371+ # Activities section, see the api documentation: https://developers.pipedrive.com/docs/api/v1/#!/Activities
372+ def get_activities (self , ** kwargs ):
373+ url = "activities"
374+ return self ._get (url , ** kwargs )
375+
376+ def get_activity_details (self , activity_id ):
377+ if activity_id is not None :
378+ url = "activities/{0}" .format (activity_id )
379+ return self ._get (url )
380+
381+ def create_activity (self , ** kwargs ):
382+ if kwargs is not None :
383+ url = "activities"
384+ params = {}
385+ params .update (kwargs )
386+ return self ._post (url , json = params )
387+
388+ def update_activity (self , activity_id , ** kwargs ):
389+ if activity_id is not None and kwargs is not None :
390+ url = "activities/{0}" .format (activity_id )
391+ params = {}
392+ params .update (kwargs )
393+ return self ._put (url , json = params )
394+
395+ def delete_activity (self , activity_id ):
396+ if activity_id is not None :
397+ url = "activities/{0}" .format (activity_id )
398+ return self ._delete (url )
399+
400+ # Webhook section, see the api documentation: https://developers.pipedrive.com/docs/api/v1/#!/Webhooks
401+ def get_hooks_subscription (self ):
402+ url = "webhooks"
403+ return self ._get (url )
404+
405+ def create_hook_subscription (self , subscription_url , event_action , event_object , ** kwargs ):
406+ if subscription_url is not None and event_action is not None and event_object is not None :
407+ args = {"subscription_url" : subscription_url , "event_action" : event_action , "event_object" : event_object }
408+ if kwargs is not None :
409+ args .update (kwargs )
410+ return self ._post (endpoint = 'webhooks' , json = args )
411+ else :
412+ raise Exception ("The attributes necessary to create the webhook were not obtained." )
413+
414+ def delete_hook_subscription (self , hook_id ):
415+ if hook_id is not None :
416+ url = "webhooks/{0}" .format (hook_id )
417+ return self ._delete (url )
418+ else :
419+ raise Exception ("The attributes necessary to delete the webhook were not obtained." )
420+
421+
422+
423+
0 commit comments