Пример #1
0
def update(sf, sf_object, sf_id, **kwargs):
  # Temp fix for using pipe for ContactLensMatchedCategories
  data = {}
  if (sf_object == pnamespace + 'AC_ContactChannelAnalytics__c'):
    data = {k:v for k,v in kwargs.items()}
  else: 
    data = {k:parse_date(v) for k,v in kwargs.items()} 
  return {'Status':sf.update(sobject=sf_object, sobj_id=sf_id, data=data)}
def lambda_handler(event, context):
    sf_operation = str(event['Details']['Parameters']['sf_operation'])
    content_type = str(event['Details']['Parameters'].get('ContentType', ''))
    parameters = dict(event['Details']['Parameters'])

    sf = Salesforce()
    sf.sign_in()

    if content_type == "audio/wav":
        logger.info("event: CallRecording. ParentId: %s" %
                    str(event['Details']['Parameters']['ParentId']))
    else:
        logger.info("event: %s" % json.dumps(event))

    del parameters['sf_operation']
    event['Details']['Parameters'] = parameters

    if (sf_operation == "lookup"):
        resp = lookup(sf=sf, **event['Details']['Parameters'])
    elif (sf_operation == "create"):
        resp = create(sf=sf, **event['Details']['Parameters'])
    elif (sf_operation == "update"):
        resp = update(sf=sf, **event['Details']['Parameters'])
    elif (sf_operation == "phoneLookup"):
        resp = phoneLookup(sf, event['Details']['Parameters']['sf_phone'],
                           event['Details']['Parameters']['sf_fields'])
    elif (sf_operation == 'invokeFlow'):
        sf_flow_id = str(event['Details']['Parameters']['sf_flow_id'])
        parameters = dict(event['Details']['Parameters'])
        del parameters['sf_flow_id']
        event['Details']['Parameters'] = parameters
        data = {k: parse_date(v) for k, v in parameters.items()}
        resp = invoke_flow(sf, sf_flow_id, data)
    else:
        msg = "sf_operation unknown"
        logger.error(msg)
        raise Exception(msg)

    logger.info("result: %s" % resp)
    return resp
def update(sf, sf_object, sf_id, **kwargs):
    data = {k: parse_date(v) for k, v in kwargs.items()}
    return {'Status': sf.update(sobject=sf_object, sobj_id=sf_id, data=data)}
def create(sf, sf_object, **kwargs):
    data = {k: parse_date(v) for k, v in kwargs.items()}
    return {'Id': sf.create(sobject=sf_object, data=data)}