@@ -352,10 +352,14 @@ def update_activity(self, activity):
352352 """
353353 return self .update_activities ([activity ])
354354
355- def get_activities (self , ids = None , foreign_id_times = None ):
355+ def get_activities (
356+ self , ids = None , foreign_id_times = None , enrich = False , reactions = None , ** params
357+ ):
356358 """
357359 Retrieves activities by their ID or foreign_id + time combination
358360
361+ Pass enrich and reactions options for enrichment
362+
359363 ids: list of activity IDs
360364 foreign_id_time: list of tuples (foreign_id, time)
361365 """
@@ -371,7 +375,13 @@ def get_activities(self, ids=None, foreign_id_times=None):
371375 "At most one of the parameters ids or foreign_id_time must be provided"
372376 )
373377
378+ endpoint = "activities/"
379+ if enrich or reactions is not None :
380+ endpoint = "enrich/" + endpoint
381+
374382 query_params = {}
383+ for key in params :
384+ query_params [key ] = params [key ]
375385
376386 if ids is not None :
377387 query_params ["ids" ] = "," .join (ids )
@@ -383,7 +393,18 @@ def get_activities(self, ids=None, foreign_id_times=None):
383393 query_params ["foreign_ids" ] = "," .join (foreign_ids )
384394 query_params ["timestamps" ] = "," .join (timestamps )
385395
386- return self .get ("activities/" , auth_token , params = query_params )
396+ if reactions is not None and not isinstance (reactions , (dict ,)):
397+ raise TypeError ("reactions argument should be a dictionary" )
398+
399+ if reactions is not None :
400+ if reactions .get ("own" ):
401+ query_params ["withOwnReactions" ] = True
402+ if reactions .get ("recent" ):
403+ query_params ["withRecentReactions" ] = True
404+ if reactions .get ("counts" ):
405+ query_params ["withReactionCounts" ] = True
406+
407+ return self .get (endpoint , auth_token , params = query_params )
387408
388409 def activity_partial_update (
389410 self , id = None , foreign_id = None , time = None , set = {}, unset = []
0 commit comments