def GetUsers(): users = [] query = """ SELECT Id, Username_s__c FROM Account WHERE Support_Package__c in ('Premier', 'Elite', 'Elite VIP') and Account_Status__c = 'Customer' """ # Create object for Salesforce methods sfdc = SalesforceTask(config.sfUser, config.sfPass, config.sfApiToken) results = sfdc.sfdc_query(query) for row in results['results']: user_list = row['Username_s__c'].split(',') for user in user_list: users.append(user.strip()) return users
except Exception, err: logging.error(err) sys.exit() # Get the last modified timestamp from internal database startTime = { "startTime" : mysqlDb.pull_job_timestamp('SFDC_CONTACT_LM_PULL') } logging.info("Pulling an internal start time of {0}".format(startTime)) ##### Extract modified SFDC Contacts##### logging.info("Pulling Authorized Support Contacts from Salesforce") sfdcQuery = """ SELECT Email, MailingPostalCode, Phone, Authorized_Support_Contact__c FROM Contact WHERE LastModifiedDate > %(startTime)s """ % startTime sfdcResults = sfdc.sfdc_query(sfdcQuery) for contact in sfdcResults['results']: data = { } data['tags'] = [] user_id = 0 # Verify the user has already been created in Zendesk if contact['Email'] != '': email = contact['Email'] z = zd.search_by_email(email) if z['count']: user_id = z['users'][0]['id'] data["email"] = email # Only update Zendesk if the user already exists
else: logging.basicConfig(format='%(asctime)s | %(levelname)s | %(filename)s | %(message)s', level=logging.DEBUG, filename=config.logFile) sfdc = SalesforceTask(config.sfUser, config.sfPass, config.sfApiToken) mysqlDb = MySqlTask(config.mysql_username, config.mysql_password, config.mysql_host, config.mysql_database) sfdc_update = {} # Get the last modified timestamp from internal database startTime = mysqlDb.pull_job_timestamp('SFDC_DATASIFT_USER_ID') logging.info("Pulling SFDC_DATASIFT_USER_ID; start time of {0}".format(startTime)) # Pull from SFDC query = "Select Id, DataSift_UserID__c, Name FROM Account WHERE Account_Status__c = 'Customer' and DataSift_UserID__c != '' and LastModifiedDate > {0}".format(startTime) results = sfdc.sfdc_query(query) if results['count'] > 0: for account in results['results']: if account['Id'] not in sfdc_update: sfdc_update[account['Id']] = [] ids = re.findall(r'[0-9]+', account['DataSift_UserID__c']) if len(ids): for i in ids: # Query Users table mquery = "SELECT user_id, email, username FROM users WHERE user_id = '{0}'".format(i) mysqlDb.connect() r = mysqlDb.select_query(mquery) if len(r): data = {