Built motion from commit (unavailable).|2.3.0
[motion2.git] / server / services / ami / trigger / integration / servicenow.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x0458=['push','all',']\x20arrayPromises:\x20IDs\x20in\x20table\x20label','Tags','%26sysparm_record_target%3Dincident','%26sysparm_record_row%3D1%26sysparm_record_rows%3D39','%26sysparm_record_list%3Dactive%253Dtrue','/nav_to.do?uri=incident.do?sys_id%3D','format','user:%s','emit','trigger:browser:url','username','password','sysparm_limit=1','remoteUri','serverUrl','stripTrailingSlash','%s/api/now/table/','email','destcalleridnum','calleridnum','callDirection','queue','abandoned','uniqueid','Recording\x20is\x20enabled!','recordingFormat','[OUTBOUND]','recordingURL','The\x20ticket\x20ID\x20is:\x20%s','call\x20direction:\x20%s',']\x20Error\x20running\x20ServiceNow\x20integration','inspect','bluebird','request-promise','./util','md5','servicenow','socket.io-emitter','localhost','GET','sys_user?sysparm_query=user_name%3Dadmin','result','length','sys_id','info','toUpperCase','],\x20getAdminUser\x20crm','catch','error','message','],\x20getUser\x20input\x20crm','sys_user?sysparm_query=email%3D','userEmail','],\x20getUser\x20rp\x20obj','],\x20getUser\x20entity','userId','adminEmail','POST','sys_user?','endUserNumber','System','then','endUserId','],\x20getEndUser\x20input\x20crm','sys_user?sysparm_query=phone%3D','],\x20getEndUser\x20crm','],\x20createEndUser\x20crm','forEach','type','string','nameField','idField','toLowerCase','content','toString','variableName','customField','customVariable','Variable','name',']\x20getTicket\x20input\x20crm','outbound','assign','true','getString','Descriptions','Fields',']\x20POST\x20incident\x20entity\x20schema','ticketNumber','number',']\x20getTicket\x20crm','label','label_entry','incident','ticketId'];(function(_0x25efe4,_0x59eedb){var _0x970447=function(_0x282e44){while(--_0x282e44){_0x25efe4['push'](_0x25efe4['shift']());}};_0x970447(++_0x59eedb);}(_0x0458,0xe4));var _0x8045=function(_0x2bc8b6,_0x6273b9){_0x2bc8b6=_0x2bc8b6-0x0;var _0x45a0f2=_0x0458[_0x2bc8b6];return _0x45a0f2;};'use strict';var _=require('lodash');var Promise=require(_0x8045('0x0'));var rp=require(_0x8045('0x1'));var util=require('util');var intUtil=require(_0x8045('0x2'));var md5=require(_0x8045('0x3'));var logger=require('../../../../config/logger')(_0x8045('0x4'));var io=require(_0x8045('0x5'))({'host':_0x8045('0x6'),'port':0x18eb});function getAdminUser(_0x2a918b,_0x38ba4c,_0x12bcd7,_0x44b961,_0x18e62b,_0x18bea3){return new Promise(function(_0x211460,_0x40dcf7){var _0xbc0a2a={'method':_0x8045('0x7'),'uri':_0x44b961+_0x8045('0x8')+'&'+_0x18e62b+'&'+_0x18bea3,'auth':_0x38ba4c,'json':!![]};return rp(_0xbc0a2a)['then'](function(_0x47c3cb){if(_0x47c3cb[_0x8045('0x9')][_0x8045('0xa')]>0x0){_0x12bcd7['adminId']=_0x47c3cb[_0x8045('0x9')][0x0][_0x8045('0xb')];}logger[_0x8045('0xc')]('['+[_0x2a918b[_0x8045('0xd')]()]+_0x8045('0xe'),_0x12bcd7);_0x211460(_0x12bcd7);})[_0x8045('0xf')](function(_0x50ee74){logger[_0x8045('0x10')]('['+[_0x2a918b['toUpperCase']()]+']',_0x50ee74[_0x8045('0x11')]);_0x40dcf7(_0x50ee74[_0x8045('0x11')]);});});}function getUser(_0x2544a8,_0x403f66,_0x803aa5,_0x203e18,_0x3e8750){return function(_0x527da7){logger['info']('['+[_0x2544a8[_0x8045('0xd')]()]+_0x8045('0x12'),_0x527da7);return new Promise(function(_0x45ad78,_0x4f0991){var _0x13a9da={'method':_0x8045('0x7'),'uri':_0x803aa5+_0x8045('0x13')+_0x527da7[_0x8045('0x14')]+'&'+_0x203e18+'&'+_0x3e8750,'auth':_0x403f66,'json':!![]};logger['info']('['+[_0x2544a8[_0x8045('0xd')]()]+_0x8045('0x15'),_0x13a9da);return rp(_0x13a9da)['then'](function(_0x4a26cd){logger['info']('['+[_0x2544a8[_0x8045('0xd')]()]+_0x8045('0x16'),_0x4a26cd);if(_0x4a26cd['result']['length']>0x0){_0x527da7['userId']=_0x4a26cd[_0x8045('0x9')][0x0][_0x8045('0xb')];}else{_0x527da7[_0x8045('0x17')]=_0x527da7['adminId'];_0x527da7[_0x8045('0x14')]=_0x527da7[_0x8045('0x18')];}logger[_0x8045('0xc')]('['+[_0x2544a8['toUpperCase']()]+'],\x20getUser\x20crm',_0x527da7);_0x45ad78(_0x527da7);})[_0x8045('0xf')](function(_0x505eeb){logger[_0x8045('0x10')]('['+[_0x2544a8[_0x8045('0xd')]()]+']',_0x505eeb['message']);_0x4f0991(_0x505eeb[_0x8045('0x11')]);});});};}function createEndUser(_0x2681d1,_0x552af9,_0x4c42d5,_0x96bb1,_0x4db5d7){logger[_0x8045('0xc')]('['+[_0x2681d1[_0x8045('0xd')]()]+'],\x20createEndUser\x20input\x20crm',_0x4c42d5);return new Promise(function(_0x25a5d6,_0x5dce6d){var _0x5e984f={'method':_0x8045('0x19'),'uri':_0x96bb1+_0x8045('0x1a')+_0x4db5d7,'body':{'user_name':_0x4c42d5[_0x8045('0x1b')],'roles':'user','first_name':_0x4c42d5['endUserNumber'],'last_name':'','title':'','active':'true','email':'','preferred_language':'','time_zone':'','date_format':_0x8045('0x1c'),'phone':_0x4c42d5[_0x8045('0x1b')]},'auth':_0x552af9,'json':!![]};return rp(_0x5e984f)[_0x8045('0x1d')](function(_0x549ed3){logger[_0x8045('0xc')]('['+[_0x2681d1[_0x8045('0xd')]()]+'],\x20EndUser\x20schema',_0x549ed3[_0x8045('0x9')]);_0x4c42d5[_0x8045('0x1e')]=_0x549ed3[_0x8045('0x9')][_0x8045('0xb')];_0x25a5d6(_0x4c42d5);})[_0x8045('0xf')](function(_0x377fac){logger[_0x8045('0x10')]('['+[_0x2681d1[_0x8045('0xd')]()]+']',_0x377fac['message']);_0x5dce6d(_0x377fac['message']);});});}function getEndUser(_0x3a5757,_0x1f9a54,_0x4d870d,_0x416c6c,_0x12993b){return function(_0xc96295){logger[_0x8045('0xc')]('['+[_0x3a5757['toUpperCase']()]+_0x8045('0x1f'),_0xc96295);return new Promise(function(_0x566de2,_0x318a29){var _0x48b54b={'method':_0x8045('0x7'),'uri':_0x4d870d+_0x8045('0x20')+_0xc96295[_0x8045('0x1b')]+'&'+_0x416c6c+'&'+_0x12993b,'auth':_0x1f9a54,'json':!![]};return rp(_0x48b54b)[_0x8045('0x1d')](function(_0x598abb){if(_0x598abb[_0x8045('0x9')][_0x8045('0xa')]>0x0){_0xc96295[_0x8045('0x1e')]=_0x598abb[_0x8045('0x9')][0x0][_0x8045('0xb')];logger[_0x8045('0xc')]('['+[_0x3a5757['toUpperCase']()]+_0x8045('0x21'),_0xc96295);_0x566de2(_0xc96295);}else{return createEndUser(_0x3a5757,_0x1f9a54,_0xc96295,_0x4d870d,_0x416c6c)[_0x8045('0x1d')](function(_0x1338bf){logger['info']('['+[_0x3a5757['toUpperCase']()]+_0x8045('0x22'),_0x1338bf);_0x566de2(_0x1338bf);});}})[_0x8045('0xf')](function(_0xb84f21){logger['error']('['+[_0x3a5757[_0x8045('0xd')]()]+']',_0xb84f21['message']);_0x318a29(_0xb84f21[_0x8045('0x11')]);});});};}function getCustomFields(_0x516fcd,_0x34e393){var _0x346116={};if(_0x516fcd[_0x8045('0xa')]>0x0){_[_0x8045('0x23')](_0x516fcd,function(_0x6dd500){if(_0x6dd500[_0x8045('0x24')]===_0x8045('0x25')&&_0x6dd500[_0x8045('0x26')]&&!_0x6dd500['customField']){_0x346116[_0x6dd500[_0x8045('0x27')][_0x8045('0x28')]()]=_0x6dd500[_0x8045('0x29')][_0x8045('0x2a')]();}else if(_0x6dd500[_0x8045('0x24')]===_0x8045('0x25')&&_0x6dd500[_0x8045('0x27')]&&_0x6dd500['customField']){_0x346116[_0x6dd500['idField'][_0x8045('0x28')]()]=_0x6dd500[_0x8045('0x29')]['toString']();}else if(_0x6dd500[_0x8045('0x24')]==='variable'&&_0x6dd500[_0x8045('0x2b')]&&_0x6dd500[_0x8045('0x27')]&&_0x6dd500[_0x8045('0x2c')]){_0x346116[_0x6dd500[_0x8045('0x27')]['toLowerCase']()]=_0x34e393[_0x6dd500[_0x8045('0x2b')]]['toString']();}else if(_0x6dd500[_0x8045('0x24')]===_0x8045('0x2d')&&_0x6dd500['Variable']&&_0x6dd500[_0x8045('0x2e')][_0x8045('0x2f')]&&_0x6dd500[_0x8045('0x27')]&&_0x6dd500[_0x8045('0x2c')]){_0x346116[_0x6dd500[_0x8045('0x27')]['toLowerCase']()]=_0x34e393[_0x6dd500[_0x8045('0x2e')]['name']['toLowerCase']()][_0x8045('0x2a')]();}});}return _0x346116;}function getTicket(_0x240507,_0x5bec3a,_0x2b95f5,_0x137129,_0x162ca4,_0x1a0bd3){return function(_0x3fc892){logger[_0x8045('0xc')]('['+[_0x240507[_0x8045('0xd')]()]+_0x8045('0x30'),_0x3fc892);return new Promise(function(_0x5725a8,_0x2b4e76){var _0x11a7dd=_0x240507[_0x8045('0x28')]()===_0x8045('0x31')?_0x3fc892[_0x8045('0x17')]:_0x3fc892['endUserId'];var _0x13ca5e={'method':_0x8045('0x19'),'uri':_0x2b95f5+'incident'+'?'+_0x1a0bd3,'body':Object[_0x8045('0x32')]({},{'active':_0x8045('0x33'),'caller_id':_0x11a7dd,'short_description':intUtil[_0x8045('0x34')](_0x137129['Subjects'],_0x162ca4,'\x20'),'description':intUtil[_0x8045('0x34')](_0x137129[_0x8045('0x35')],_0x162ca4,'\x0a')},getCustomFields(_0x137129[_0x8045('0x36')],_0x162ca4)),'auth':_0x5bec3a,'json':!![]};return rp(_0x13ca5e)[_0x8045('0x1d')](function(_0x31ffbb){logger[_0x8045('0xc')]('['+[_0x240507[_0x8045('0xd')]()]+_0x8045('0x37'),_0x31ffbb[_0x8045('0x9')]);_0x3fc892['ticketId']=_0x31ffbb['result'][_0x8045('0xb')];_0x3fc892[_0x8045('0x38')]=_0x31ffbb[_0x8045('0x9')][_0x8045('0x39')];logger[_0x8045('0xc')]('['+[_0x240507[_0x8045('0xd')]()]+_0x8045('0x3a'),_0x3fc892);_0x5725a8(_0x3fc892);})[_0x8045('0xf')](function(_0x4efb01){logger[_0x8045('0x10')]('['+[_0x240507[_0x8045('0xd')]()]+']',_0x4efb01[_0x8045('0x11')]);_0x2b4e76(_0x4efb01[_0x8045('0x11')]);});});};}function createRemoteTag(_0xa66f8c,_0x36f392,_0x4ad26f,_0x2bb38a){return new Promise(function(_0x47d483,_0xdc0b4a){var _0x2cb481={'method':_0x8045('0x19'),'uri':_0x4ad26f+_0x8045('0x3b')+'?'+_0x2bb38a,'body':{'short_description':_0xa66f8c,'global':!![],'active':!![],'name':_0xa66f8c},'auth':_0x36f392,'json':!![]};return rp(_0x2cb481)[_0x8045('0x1d')](function(_0x395965){var _0x3f529c=_0x395965[_0x8045('0x9')][_0x8045('0xb')];_0x47d483(_0x3f529c);});});}function getRemoteTag(_0x42c2b9,_0x1dbd4e,_0x5028e6,_0x12f584,_0x1cb01d){return new Promise(function(_0x57a470,_0x46e948){var _0x2b014d={'method':_0x8045('0x7'),'uri':_0x5028e6+_0x8045('0x3b')+'?sysparm_query=name%3D'+_0x42c2b9+'&'+_0x12f584,'auth':_0x1dbd4e,'json':!![]};return rp(_0x2b014d)[_0x8045('0x1d')](function(_0x57a454){if(_0x57a454['result']['length']>0x0){var _0x564a64=_0x57a454[_0x8045('0x9')][0x0][_0x8045('0xb')];_0x57a470(_0x564a64);}else{return createRemoteTag(_0x42c2b9,_0x1dbd4e,_0x5028e6,_0x12f584)[_0x8045('0x1d')](function(_0x46c203){_0x57a470(_0x46c203);});}});});}function assignTagToIncident(_0x52c71a,_0xa940ac,_0x366865,_0x486ea0,_0x1bd94a){return new Promise(function(_0x26e22a,_0x51f747){var _0x17c7ec={'method':'POST','uri':_0x366865+_0x8045('0x3c')+'?'+_0x1bd94a,'body':{'label':_0x52c71a,'table':_0x8045('0x3d'),'id_type':'Incident','table_key':_0x486ea0[_0x8045('0x3e')],'title':'Incident\x20-\x20'+_0x486ea0['ticketNumber'],'id_display':_0x486ea0['ticketNumber']},'auth':_0xa940ac,'json':!![]};return rp(_0x17c7ec)[_0x8045('0x1d')](function(_0x58f984){_0x26e22a();})[_0x8045('0xf')](function(){_0x26e22a();});});}function manageTags(_0x51c3f5,_0x5918fa,_0x10da24,_0x57825f,_0xd18bc2,_0x572c20,_0x1e0f0b){return new Promise(function(_0x40bd43,_0x37e581){var _0x42716d=[];_0x5918fa[_0x8045('0x23')](function(_0x1ecc36){_0x42716d[_0x8045('0x3f')](getRemoteTag(_0x1ecc36,_0x10da24,_0x57825f,_0x572c20,_0x1e0f0b));});return Promise[_0x8045('0x40')](_0x42716d)[_0x8045('0x1d')](function(_0x588a24){if(_0x588a24[_0x8045('0xa')]){logger['info']('['+[_0x51c3f5[_0x8045('0xd')]()]+_0x8045('0x41'),_0x588a24);var _0x446df1=[];_0x588a24[_0x8045('0x23')](function(_0x5213ff){_0x446df1[_0x8045('0x3f')](assignTagToIncident(_0x5213ff,_0x10da24,_0x57825f,_0xd18bc2,_0x572c20));});return Promise[_0x8045('0x40')](_0x446df1)[_0x8045('0x1d')](function(){_0x40bd43();})[_0x8045('0xf')](function(){_0x40bd43();});}else{_0x40bd43();}});});}function getTags(_0x36625c,_0x2544b2,_0x2b8870,_0x201902,_0xcabf09,_0x67011e){return function(_0x136e31){return new Promise(function(_0x2c3f1d,_0x2c9616){var _0x143688=[];var _0x5d37e2=_0x201902[_0x8045('0x42')];if(_0x5d37e2&&_0x5d37e2[_0x8045('0xa')]>0x0){_0x143688=_['map'](_0x5d37e2,_0x8045('0x2f'));}if(_0x143688['length']>0x0){return manageTags(_0x36625c,_0x143688,_0x2544b2,_0x2b8870,_0x136e31,_0xcabf09,_0x67011e)[_0x8045('0x1d')](function(){_0x2c3f1d(_0x136e31);});}else{_0x2c3f1d(_0x136e31);}});};}function emit(_0x1f25f7,_0x8416d,_0x3e6811){var _0x5cb05f=_0x8045('0x43')+_0x8045('0x44')+_0x8045('0x45')+'%255EORDERBYDESCnumber';var _0x3db75f={'uri':_0x1f25f7+_0x8045('0x46')+_0x3e6811+_0x5cb05f};io['to'](util[_0x8045('0x47')](_0x8045('0x48'),_0x8416d))[_0x8045('0x49')](_0x8045('0x4a'),_0x3db75f);}exports['cs']=function(_0x8ff89c,_0x1d8bce,_0x5ba0a7,_0x54682a,_0x17887b,_0x24df67,_0x5aad99,_0x100a3c){var _0x290a8a={};var _0x14cf41={'user':_0x24df67[_0x8045('0x4b')],'pass':_0x24df67[_0x8045('0x4c')]};var _0x3a187f=_0x8045('0x4d');var _0xf6f118='sysparm_display_value=true';_0x24df67[_0x8045('0x4e')]=intUtil['stripTrailingSlash'](_0x24df67[_0x8045('0x4e')]);_0x24df67[_0x8045('0x4f')]=intUtil[_0x8045('0x50')](_0x24df67[_0x8045('0x4f')]);var _0x165af6=util[_0x8045('0x47')](_0x8045('0x51'),_0x24df67[_0x8045('0x4e')]);_0x290a8a[_0x8045('0x14')]=_0x54682a[_0x8045('0x52')];_0x290a8a[_0x8045('0x18')]=_0x24df67[_0x8045('0x52')];_0x290a8a[_0x8045('0x1b')]=_0x100a3c[_0x8045('0x28')]()===_0x8045('0x31')?_0x1d8bce[_0x8045('0x53')]:_0x1d8bce[_0x8045('0x54')];_0x290a8a[_0x8045('0x55')]=_0x100a3c===_0x8045('0x56')||_0x100a3c===_0x8045('0x57')?'queue':_0x8045('0x31');var _0x20bac4=util[_0x8045('0x47')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x24df67[_0x8045('0x4f')],_0x1d8bce[_0x8045('0x58')],md5(_0x1d8bce['uniqueid']));if(_0x17887b&&_0x17887b['monitor_format']){logger[_0x8045('0xc')]('[QUEUE]',_0x8045('0x59'));_0x1d8bce['recordingURL']=_0x20bac4;}else if(_0x5aad99&&_0x5aad99[_0x8045('0x5a')]&&_0x5aad99[_0x8045('0x5a')]!=='none'){logger[_0x8045('0xc')](_0x8045('0x5b'),_0x8045('0x59'));_0x1d8bce[_0x8045('0x5c')]=_0x20bac4;}else{_0x1d8bce[_0x8045('0x5c')]='';}return getAdminUser(_0x100a3c,_0x14cf41,_0x290a8a,_0x165af6,_0xf6f118,_0x3a187f)[_0x8045('0x1d')](getUser(_0x100a3c,_0x14cf41,_0x165af6,_0xf6f118,_0x3a187f))[_0x8045('0x1d')](getEndUser(_0x100a3c,_0x14cf41,_0x165af6,_0xf6f118,_0x3a187f))[_0x8045('0x1d')](getTicket(_0x100a3c,_0x14cf41,_0x165af6,_0x5ba0a7,_0x1d8bce,_0xf6f118))[_0x8045('0x1d')](function(_0x9a8b56){logger[_0x8045('0xc')](util['format'](_0x8045('0x5d'),_0x9a8b56[_0x8045('0x3e')]));logger[_0x8045('0xc')](util[_0x8045('0x47')](_0x8045('0x5e'),_0x100a3c));if(_0x100a3c!=='abandoned'){logger[_0x8045('0xc')]('['+[_0x100a3c[_0x8045('0xd')]()]+']','Displaying\x20call\x20in\x20a\x20new\x20tab...');emit(_0x24df67[_0x8045('0x4e')],_0x54682a[_0x8045('0x2f')],_0x9a8b56['ticketId']);}})['catch'](function(_0x4fab1f){logger[_0x8045('0x10')]('['+[_0x100a3c[_0x8045('0xd')]()]+_0x8045('0x5f'),util[_0x8045('0x60')](_0x4fab1f,{'showHidden':!![],'depth':null}));});};