From b34b2d8e2aa389f3d53e2466b06d1f1313849520 Mon Sep 17 00:00:00 2001 From: Jay Lee Date: Tue, 7 May 2019 13:59:00 -0400 Subject: [PATCH] Allow identifying resources by id --- src/gam.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/gam.py b/src/gam.py index e06725f8..986f6e51 100755 --- a/src/gam.py +++ b/src/gam.py @@ -1329,13 +1329,15 @@ def buildGAPIObject(api): return service # Convert UID to email address -def convertUIDtoEmailAddress(emailAddressOrUID, cd=None, email_type='user'): +def convertUIDtoEmailAddress(emailAddressOrUID, cd=None, email_types=['user']): + if type(email_types) is str: + email_types = email_types.split(',') normalizedEmailAddressOrUID = normalizeEmailAddressOrUID(emailAddressOrUID) if normalizedEmailAddressOrUID.find('@') > 0: return normalizedEmailAddressOrUID if not cd: cd = buildGAPIObject('directory') - if email_type == 'user': + if 'user' in email_types: try: result = callGAPI(cd.users(), 'get', throw_reasons=[GAPI_USER_NOT_FOUND], @@ -1344,7 +1346,7 @@ def convertUIDtoEmailAddress(emailAddressOrUID, cd=None, email_type='user'): return result['primaryEmail'].lower() except GAPI_userNotFound: pass - else: + if 'group' in email_types: try: result = callGAPI(cd.groups(), 'get', throw_reasons=[GAPI_GROUP_NOT_FOUND], @@ -1353,6 +1355,16 @@ def convertUIDtoEmailAddress(emailAddressOrUID, cd=None, email_type='user'): return result['email'].lower() except GAPI_groupNotFound: pass + if 'resource' in email_types: + try: + result = callGAPI(cd.resources().calendars(), 'get', + throw_reasons=[GAPI_RESOURCE_NOT_FOUND], + calendarResourceId=normalizedEmailAddressOrUID, + customer=GC_Values[GC_CUSTOMER_ID], fields='resourceEmail') + if 'resourceEmail' in result: + return result['resourceEmail'].lower() + except GAPI_resourceNotFound: + pass return normalizedEmailAddressOrUID # Convert email address to UID @@ -1415,7 +1427,7 @@ def normalizeCalendarId(calname, checkPrimary=False): return calname if not GC_Values[GC_DOMAIN]: GC_Values[GC_DOMAIN] = _getValueFromOAuth('hd') - return convertUIDtoEmailAddress(calname) + return convertUIDtoEmailAddress(calname, email_types=['user', 'resource']) def buildCalendarGAPIObject(calname): calendarId = normalizeCalendarId(calname) @@ -8330,7 +8342,7 @@ def doGetVaultHoldInfo(): account_type = 'group' if results['corpus'] == 'GROUPS' else 'user' for i in range(0, len(results['accounts'])): uid = 'uid:%s' % results['accounts'][i]['accountId'] - acct_email = convertUIDtoEmailAddress(uid, cd, account_type) + acct_email = convertUIDtoEmailAddress(uid, cd, [account_type]) results['accounts'][i]['email'] = acct_email if 'orgUnit' in results: results['orgUnit']['orgUnitPath'] = doGetOrgInfo(results['orgUnit']['orgUnitId'], return_attrib='orgUnitPath')