def update(intent_request): formName = Lamda.getSlots(intent_request)[FORMNAME] if(PROJECTNAME in Lamda.getSlots(intent_request)): projectName = Lamda.getSlots(intent_request)[PROJECTNAME] else: projectName = None if(CONTRACTNAME in Lamda.getSlots(intent_request)): contractName = Lamda.getSlots(intent_request)[CONTRACTNAME] else: contractName = None if(RECORD in Lamda.getSlots(intent_request)): recordName = Lamda.getSlots(intent_request)[RECORD] else: recordName = None # moduleId = Masterworks.GetModuleId(formName); # pid, parentId = Masterworks.GetPIDParentIdForModule(moduleId) moduleId = Masterworks.GetModuleId(str(formName)) print moduleId if moduleId is not None: sessionAttributes = intent_request['sessionAttributes'] if intent_request['sessionAttributes'] is not None else {} # pid, parentId = Masterworks.GetPIDParentIdForModule(moduleId) if recordName is not None: if(moduleId == "BDGTEST"): print projectName if projectName != None : instanceId, pid, parentId = Masterworks.GetFormInstanceId(moduleId, recordName, projectName); if(instanceId is not None and pid is not None and parentId is not None): url = CreateUrl(moduleId, pid, parentId, instanceId) sessionAttributes["url"] = url return Lamda.delegate(sessionAttributes, Lamda.getSlots(intent_request)) else: return Lamda.elicit_slot(intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], RECORD, {'contentType': 'PlainText', 'content':'Given Record name does not exists.Please specify the correct Record Name'}) else: return Lamda.elicit_slot(intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], PROJECTNAME, {'contentType': 'PlainText', 'content':'In which Project would you like to create the'+str(formName) +'record?'}) elif(moduleId == "CONTDWR"): if(projectName is not None and contractName is not None): instanceId, pid, parentId = Masterworks.GetFormInstanceId(moduleId, recordName, projectName, contractName); if(instanceId is not None and pid is not None and parentId is not None): url = CreateUrl(moduleId, pid, parentId, instanceId) sessionAttributes["url"] = url return Lamda.delegate(sessionAttributes, Lamda.getSlots(intent_request)) else: return Lamda.elicit_slot(intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], RECORD, {'contentType': 'PlainText', 'content':'Given Record name does not exists. Please specify the correct record name.'}) elif(projectName is None): return Lamda.elicit_slot(intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], PROJECTNAME, {'contentType': 'PlainText', 'content':'In which Project would you like to create the '+str(formName) +' record?'}) elif(contractName is None): return Lamda.elicit_slot(intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], CONTRACTNAME, {'contentType': 'PlainText', 'content':'In which Contract would you like to create the '+str(formName) +' record?'}) else: instanceId, pid, parentId = Masterworks.GetFormInstanceId(moduleId, recordName, 0, 0) if(instanceId is not None): url = CreateUrl(moduleId, 0, 0, instanceId) sessionAttributes["url"] = url return Lamda.delegate(sessionAttributes, Lamda.getSlots(intent_request)) else: return Lamda.elicit_slot(intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], RECORD, {'contentType': 'PlainText', 'content':'Given Record name does not exists. Please specify the correct record name.'}) else: if(moduleId == "BDGTEST"): columnName = "Budget Estimate Name" elif(moduleId == "FNDMGMT"): columnName = "Fund source name" elif(moduleId == "CONTDWR"): columnName = "DPR Number" return Lamda.elicit_slot(intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], RECORD, {'contentType': 'PlainText', 'content':'Please specify the '+columnName+ ' of the record you want to update.'}) sessionAttributes["url"] = url return Lamda.delegate(sessionAttributes, Lamda.getSlots(intent_request)) else: return Lamda.elicit_slot(intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], "Form", {'contentType': 'PlainText', 'content':'Enter the Form you want to take action on'})
def scalarCellRetrieval(intent_request): ''' dataFilter={} dataFilter['username']='******' dataFilter['password']='******' dataFilter['c']='' dataFilter['role']='Administrator' ''' output_session_attributes = intent_request[ 'sessionAttributes'] if intent_request[ 'sessionAttributes'] is not None else {} pageName = intent_request['currentIntent']['slots']['Form'] #parentInfo=intent_request['currentIntent']['slots']['Project'] #contractInfo=intent_request['currentIntent']['slots']['Contract'] columnInfo = intent_request['currentIntent']['slots']['Column'] recordID = intent_request['currentIntent']['slots']['record'] ws = intent_request['currentIntent']['slots']['ws'] source = intent_request['invocationSource'] moduleID = Masterworks.GetModuleId( intent_request['currentIntent']['slots']['Form']) formInstanceID, pid, parentId = Masterworks.GetFormInstanceId( moduleID, recordID) #print formInstanceID if (source == 'DialogCodeHook'): print "hello4" pageNames = [ "Global Fund List", "Budget Estimates", "Daily Progress Report" ] ''' if pageName is not None and pageName not in pageNames: validation_result= Lamda.build_validation_result(False, 'Form', 'Please select Valid Form') if not validation_result['isValid']: #intent_request['currentIntent']['slots']['validation_result']['violatedSlot'] = None return Lamda.elicit_slot(intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], "Form", {'contentType': 'PlainText', 'content': 'Enter Valid Form'}) if pageName is not None and columnInfo is None: return Lamda.elicit_slot(intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], "Column", {'contentType': 'PlainText', 'content': 'Enter column of Form'}) #return Lamda.delegate(output_session_attributes,intent_request['currentIntent']['slots']) ''' ''' if pageName is not None and formInstanceID is None: return Lamda.elicit_slot(intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], "record", {'contentType': 'PlainText', 'content': 'Enter Record ID'}) ''' if (pageName == 'Global Fund List'): intent_request['currentIntent']['slots']['Project'] = 0 if (pageName == 'Budget Estimates' or pageName == 'Global Fund List'): intent_request['currentIntent']['slots']['Contract'] = 0 if (pageName is None and recordID is not None): if (pageName == 'Budget Estimates'): return Lamda.elicit_slot( output_session_attributes, intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], 'Project', { 'contentType': 'PlainText', 'content': 'Please enter Project Name of {} '.format(pageName) }, ) elif (pageName == 'Daily Progress Report'): return Lamda.elicit_slot( output_session_attributes, intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], 'Contract', { 'contentType': 'PlainText', 'content': 'Please enter Contract Name of {}'.format(pageName) }, ) print pageName print "pusjndjf" print formInstanceID print columnInfo print ws if (pageName is not None and formInstanceID is not None and columnInfo is not None and ws is not None): scalarData = { 'moduleId': moduleID, 'columnName': intent_request['currentIntent']['slots']['Column'], 'instanceID': formInstanceID, 'WorkSpaceEnabled': ws } responseFilter = requests.get(BaseURL + "api/Auro/GetScalarCellData", params=scalarData) #print json.loads(responseFilter.content) print responseFilter.status_code #print json.loads(responseFilter.content)['FilterName'] if (responseFilter.status_code == 200 or responseFilter.status_code == 202): return Lamda.close(output_session_attributes, "Fulfilled", "{}".format(responseFilter.content)) return Lamda.elicit_slot( output_session_attributes, intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], 'ws', { 'contentType': 'PlainText', 'content': 'Want to save in Work Space?' }, ) return Lamda.delegate(output_session_attributes, intent_request['currentIntent']['slots'])
def navigate(intent_request): if (FORMNAME in Lamda.getSlots(intent_request)): formName = Lamda.getSlots(intent_request)[FORMNAME] else: formName = None if (PROJECTNAME in Lamda.getSlots(intent_request)): projectName = Lamda.getSlots(intent_request)[PROJECTNAME] else: projectName = None if (CONTRACTNAME in Lamda.getSlots(intent_request)): contractName = Lamda.getSlots(intent_request)[CONTRACTNAME] else: contractName = None if (RECORD in Lamda.getSlots(intent_request)): recordName = Lamda.getSlots(intent_request)[RECORD] else: recordName = None sessionAttributes = intent_request['sessionAttributes'] if intent_request[ 'sessionAttributes'] is not None else {} moduleId = Masterworks.GetModuleId(str(formName)) print moduleId if (intent_request['invocationSource'] == 'DialogCodeHook'): if (moduleId is None): Lamda.elicit_slot( intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], "Form", { 'contentType': 'PlainText', 'content': 'Enter the Form you want to take action on' }) if ((moduleId == "BDGTEST" or moduleId == "CONTDWR") and projectName is None): return Lamda.elicit_slot( intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], PROJECTNAME, { 'contentType': 'PlainText', 'content': 'In which Project would you like to create the ' + str(formName) + ' record?' }) if (moduleId == "CONTDWR" and contractName is None): return Lamda.elicit_slot( intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], CONTRACTNAME, { 'contentType': 'PlainText', 'content': 'In which Contract would you like to create the ' + str(formName) + ' record?' }) if (recordName is not None): instanceId, pid, parentId = Masterworks.GetFormInstanceId( moduleId, recordName, projectName) if (instanceId is not None and pid is not None and parentId is not None): url = CreateFormUrl(moduleId, pid, parentId, instanceId) sessionAttributes["url"] = url else: pid, parentId = Masterworks.GetPIDParentIdForModule( moduleId, projectName, contractName) url = CreateListUrl(moduleId, pid, parentId) sessionAttributes["url"] = url return Lamda.delegate(sessionAttributes, Lamda.getSlots(intent_request))
def create(intent_request): formName = Lamda.getSlots(intent_request)[FORMNAME] if (PROJECTNAME in Lamda.getSlots(intent_request)): projectName = Lamda.getSlots(intent_request)[PROJECTNAME] else: projectName = None if (CONTRACTNAME in Lamda.getSlots(intent_request)): contractName = Lamda.getSlots(intent_request)[CONTRACTNAME] else: contractName = None # moduleId = Masterworks.GetModuleId(formName); # pid, parentId = Masterworks.GetPIDParentIdForModule(moduleId) moduleId = Masterworks.GetModuleId(str(formName)) print moduleId if moduleId is not None: sessionAttributes = intent_request[ 'sessionAttributes'] if intent_request[ 'sessionAttributes'] is not None else {} # pid, parentId = Masterworks.GetPIDParentIdForModule(moduleId) if (moduleId == "BDGTEST"): if (projectName is not None): pid, parentId = Masterworks.GetPIDParentIdForModule( moduleId, projectName) if (pid is not None and parentId is not None): url = CreateUrl(moduleId, pid, parentId) sessionAttributes["url"] = url return Lamda.delegate(sessionAttributes, Lamda.getSlots(intent_request)) else: return Lamda.build_validation_result( False, PROJECTNAME, intent_request['currentIntent']['slots']) # {'contentType': 'PlainText', 'content':'Given Project name does not exists.Please specify the correct Project Name'}) else: return Lamda.elicit_slot( intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], PROJECTNAME, { 'contentType': 'PlainText', 'content': 'In which Project would you like to create the ' + str(formName) + ' record?' }) elif (moduleId == "CONTDWR"): if (projectName is not None and contractName is not None): pid, parentId = Masterworks.GetPIDParentIdForModule( moduleId, projectName, contractName) if (pid is not None and parentId is not None): url = CreateUrl(moduleId, pid, parentId) sessionAttributes["url"] = url return Lamda.delegate(sessionAttributes, Lamda.getSlots(intent_request)) else: return Lamda.build_validation_result( False, PROJECTNAME, intent_request['currentIntent']['slots']) # return Lamda.elicit_slot(intent_request['sessionAttributes'], # intent_request['currentIntent']['name'], # intent_request['currentIntent']['slots'], # PROJECTNAME, # {'contentType': 'PlainText', 'content':'Given Project or Contract name does not exists.Please specify the correct Project or Contract Name'}) elif (projectName is None): return Lamda.elicit_slot( intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], PROJECTNAME, { 'contentType': 'PlainText', 'content': 'In which Project would you like to create the ' + str(formName) + ' record?' }) elif (contractName is None): return Lamda.elicit_slot( intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], CONTRACTNAME, { 'contentType': 'PlainText', 'content': 'In which Contract would you like to create the ' + str(formName) + ' record?' }) else: url = CreateUrl(moduleId, 0, 0) sessionAttributes["url"] = url return Lamda.delegate(sessionAttributes, Lamda.getSlots(intent_request)) # sessionAttributes["url"] = url # return Lamda.delegate(sessionAttributes, Lamda.getSlots(intent_request)) else: return Lamda.elicit_slot( intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], "Form", { 'contentType': 'PlainText', 'content': 'Enter the Form you want to take action on' })
def perform_wf_action(intent_request): output_session_attributes = intent_request['sessionAttributes'] if intent_request['sessionAttributes'] is not None else {} wf_action = get_slots(intent_request)[WF_ACTION] module = get_slots(intent_request)[MODULENAME] record = get_slots(intent_request)[FormInstance] #rint record,module moduleID= Masterworks.GetModuleId(module) #print moduleID url=Masterworks.baseUrl if module is not None and record is None: return Lamda.elicit_slot(intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], "record", {'contentType': 'PlainText', 'content': 'Enter the {0} you want to {1}'.format(form_uniqueIdentifier_mapping[module],wf_action)}) elif module is None: return Lamda.elicit_slot(intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], "Form", {'contentType': 'PlainText', 'content':'Enter the Form you want to take action on'}) if moduleID=='BDGTEST' or moduleID=='CONTDWR': Lamda.elicit_slot(intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], "Project", {'contentType': 'PlainText', 'content':'Enter the Project Name'}) if moduleID=='CONTDWR': return Lamda.elicit_slot(intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], "Contract", {'contentType': 'PlainText', 'content':'Enter the Contract Name'}) data={'username': '******', 'password': '******', 'role': 'Administrator', 'c': 'as' } formInstanceID,pid, contractid = Masterworks.GetFormInstanceId(moduleID,record,get_slots(intent_request)['Project'],get_slots(intent_request)['Contract']) #print "form " + formInstanceID #print get_slots(intent_request) data1={'moduleId':str(moduleID),'formInstanceid':str(formInstanceID),'jsonParameters':'{}'}#json.dumps({'pid':pid,'parentid':contractid}) #print "data --------- " + json.dumps(data1) #res = requests.post(url+'api/Login', json=str(data), headers={'content':'application/json'}) response=requests.post(url+"api/Login", json=json.dumps(data)) req2 = requests.get(url+'api/Workflow/GetActions', params=data1,headers={'Authorization-Token':json.loads(response.content)['Token']}) #print json.loads(req2.content) print req2.content actionId = GetValueInArray('ActionId',wf_action,json.loads(req2.content)) performActionParams={'moduleId':moduleID,'formInstanceId':formInstanceID,'actionId':actionId,'actionName':wf_action} res3 = requests.post(url+'api/Workflow/PerformAction',json=json.dumps({'pid':pid,'parentid':contractid}),params=performActionParams,headers={'Authorization-Token':json.loads(response.content)['Token']}) #return Lambda.close(output_session_attributes,"Fulfilled","Done") return Lamda.delegate(output_session_attributes,intent_request['currentIntent']['slots'])
def scalarCellRetrieval(intent_request): dataFilter = {} dataFilter['username'] = '******' dataFilter['password'] = '******' dataFilter['c'] = '' dataFilter['role'] = 'Administrator' output_session_attributes = intent_request[ 'sessionAttributes'] if intent_request[ 'sessionAttributes'] is not None else {} pageName = intent_request['currentIntent']['slots']['Form'] #parentInfo=intent_request['currentIntent']['slots']['Project'] #contractInfo=intent_request['currentIntent']['slots']['Contract'] columnInfo = intent_request['currentIntent']['slots']['Column'] recordID = intent_request['currentIntent']['slots']['record'] source = intent_request['invocationSource'] if source == 'DialogCodeHook': print "hello4" pageNames = [ "Global Fund List", "Budget Estimates", "Daily Progress Report" ] ''' if pageName is not None and pageName not in pageNames: validation_result= Lamda.build_validation_result(False, 'Form', 'Please select Valid Form') if not validation_result['isValid']: #intent_request['currentIntent']['slots']['validation_result']['violatedSlot'] = None return Lamda.elicit_slot(intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], "Form", {'contentType': 'PlainText', 'content': 'Enter Valid Form'}) ''' if pageName is not None and columnInfo is None: return Lamda.elicit_slot(intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], "Column", { 'contentType': 'PlainText', 'content': 'Enter column of Form' }) if pageName is not None and recordID is None: return Lamda.elicit_slot(intent_request['sessionAttributes'], intent_request['currentIntent']['name'], intent_request['currentIntent']['slots'], "record", { 'contentType': 'PlainText', 'content': 'Enter Record ID' }) if (pageName is not None and recordID is not None and columnInfo is not None): #masterworkshelper = http_helper("http://781bcb8c.ngrok.io/") response = requests.post(BaseURL + "api/Login", json=json.dumps(dataFilter)) print response.status_code print json.loads(response.content)['Token'] print 'Hello5' moduleID = Masterworks.GetModuleId( intent_request['currentIntent']['slots']['Form']) scalarData = { 'moduleId': moduleID, 'columnName': intent_request['currentIntent']['slots']['Column'], 'instanceID': intent_request['currentIntent']['slots']['record'] } responseFilter = requests.get(BaseURL + "api/Auro/GetScalarCellData", headers={ 'Authorization-Token': json.loads(response.content)['Token'] }, params=scalarData) print json.loads(responseFilter.content) print responseFilter.status_code #print json.loads(responseFilter.content)['FilterName'] if (responseFilter.status_code == 200): return Lamda.close( output_session_attributes, "Fulfilled", "Value is {0}".format(json.loads(responseFilter.content))) return Lamda.close(output_session_attributes, "Fulfilled", "sorry") return Lamda.delegate(output_session_attributes, intent_request['currentIntent']['slots'])