Built motion from commit (unavailable).|2.3.4
[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 _0xa233=['sysparm_display_value=true','remoteUri','stripTrailingSlash','%s/api/now/table/','destcalleridnum','callDirection','queue','abandoned','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','serverUrl','monitor_format','[QUEUE]','recordingURL','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','The\x20ticket\x20ID\x20is:\x20%s','Displaying\x20call\x20in\x20a\x20new\x20tab...',']\x20Error\x20running\x20ServiceNow\x20integration','inspect','lodash','bluebird','request-promise','util','md5','ioredis','./util','servicenow','defaults','redis','localhost','socket.io-emitter','GET','then','result','length','adminId','sys_id','info','toUpperCase','],\x20getAdminUser\x20crm','catch','error','message','],\x20getUser\x20input\x20crm','sys_user?sysparm_query=email%3D','],\x20getUser\x20rp\x20obj','userEmail','userId','adminEmail','],\x20getUser\x20crm','],\x20createEndUser\x20input\x20crm','POST','user','endUserNumber','true','System','endUserId','],\x20getEndUser\x20input\x20crm','sys_user?sysparm_query=phone%3D','],\x20getEndUser\x20crm','forEach','type','string','nameField','customField','idField','toLowerCase','content','toString','variable','variableName','Variable','name',']\x20getTicket\x20input\x20crm','outbound','incident','assign','Subjects','Descriptions','Fields',']\x20POST\x20incident\x20entity\x20schema','ticketId','ticketNumber','number',']\x20getTicket\x20crm','label','label_entry','Incident','Incident\x20-\x20','all','push','Tags','map','%255EORDERBYDESCnumber','format','trigger:browser:url','sysparm_limit=1'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xa233,0x1a1));var _0x3a23=function(_0x269bdc,_0x86a6a0){_0x269bdc=_0x269bdc-0x0;var _0x36c6d3=_0xa233[_0x269bdc];return _0x36c6d3;};'use strict';var _=require(_0x3a23('0x0'));var Promise=require(_0x3a23('0x1'));var rp=require(_0x3a23('0x2'));var util=require(_0x3a23('0x3'));var md5=require(_0x3a23('0x4'));var Redis=require(_0x3a23('0x5'));var intUtil=require(_0x3a23('0x6'));var config=require('../../../../config/environment');var logger=require('../../../../config/logger')(_0x3a23('0x7'));config['redis']=_[_0x3a23('0x8')](config[_0x3a23('0x9')],{'host':_0x3a23('0xa'),'port':0x18eb});var io=require(_0x3a23('0xb'))(new Redis(config['redis']));function getAdminUser(_0x44f50c,_0x3dd227,_0x42a3d0,_0x534405,_0x16e2e1,_0x5c49a0){return new Promise(function(_0x29cfd7,_0x331485){var _0x101ed6={'method':_0x3a23('0xc'),'uri':_0x534405+'sys_user?sysparm_query=user_name%3Dadmin'+'&'+_0x16e2e1+'&'+_0x5c49a0,'auth':_0x3dd227,'json':!![]};return rp(_0x101ed6)[_0x3a23('0xd')](function(_0x480cc6){if(_0x480cc6[_0x3a23('0xe')][_0x3a23('0xf')]>0x0){_0x42a3d0[_0x3a23('0x10')]=_0x480cc6[_0x3a23('0xe')][0x0][_0x3a23('0x11')];}logger[_0x3a23('0x12')]('['+[_0x44f50c[_0x3a23('0x13')]()]+_0x3a23('0x14'),_0x42a3d0);_0x29cfd7(_0x42a3d0);})[_0x3a23('0x15')](function(_0x2bb9a1){logger[_0x3a23('0x16')]('['+[_0x44f50c[_0x3a23('0x13')]()]+']',_0x2bb9a1['message']);_0x331485(_0x2bb9a1[_0x3a23('0x17')]);});});}function getUser(_0x13fca1,_0x2cb251,_0x5d2e42,_0x230dc1,_0xb6116a){return function(_0x437159){logger[_0x3a23('0x12')]('['+[_0x13fca1['toUpperCase']()]+_0x3a23('0x18'),_0x437159);return new Promise(function(_0x4e2f58,_0x161777){var _0x4a5062={'method':_0x3a23('0xc'),'uri':_0x5d2e42+_0x3a23('0x19')+_0x437159['userEmail']+'&'+_0x230dc1+'&'+_0xb6116a,'auth':_0x2cb251,'json':!![]};logger[_0x3a23('0x12')]('['+[_0x13fca1['toUpperCase']()]+_0x3a23('0x1a'),_0x4a5062);return rp(_0x4a5062)['then'](function(_0x2acc55){logger['info']('['+[_0x13fca1[_0x3a23('0x13')]()]+'],\x20getUser\x20entity',_0x2acc55);if(_0x2acc55[_0x3a23('0xe')][_0x3a23('0xf')]>0x0&&intUtil['validateEmail'](_0x437159[_0x3a23('0x1b')])){_0x437159[_0x3a23('0x1c')]=_0x2acc55[_0x3a23('0xe')][0x0]['sys_id'];}else{_0x437159[_0x3a23('0x1c')]=_0x437159[_0x3a23('0x10')];_0x437159[_0x3a23('0x1b')]=_0x437159[_0x3a23('0x1d')];}logger['info']('['+[_0x13fca1[_0x3a23('0x13')]()]+_0x3a23('0x1e'),_0x437159);_0x4e2f58(_0x437159);})[_0x3a23('0x15')](function(_0x566e0d){logger[_0x3a23('0x16')]('['+[_0x13fca1[_0x3a23('0x13')]()]+']',_0x566e0d[_0x3a23('0x17')]);_0x161777(_0x566e0d[_0x3a23('0x17')]);});});};}function createEndUser(_0xe8b413,_0x3e8e8b,_0x40a0ed,_0x54998b,_0x1da2d8){logger[_0x3a23('0x12')]('['+[_0xe8b413[_0x3a23('0x13')]()]+_0x3a23('0x1f'),_0x40a0ed);return new Promise(function(_0x54cd87,_0x5aee98){var _0xe8ddae={'method':_0x3a23('0x20'),'uri':_0x54998b+'sys_user?'+_0x1da2d8,'body':{'user_name':_0x40a0ed['endUserNumber'],'roles':_0x3a23('0x21'),'first_name':_0x40a0ed[_0x3a23('0x22')],'active':_0x3a23('0x23'),'date_format':_0x3a23('0x24'),'phone':_0x40a0ed[_0x3a23('0x22')]},'auth':_0x3e8e8b,'json':!![]};return rp(_0xe8ddae)[_0x3a23('0xd')](function(_0x411336){logger[_0x3a23('0x12')]('['+[_0xe8b413['toUpperCase']()]+'],\x20EndUser\x20schema',_0x411336[_0x3a23('0xe')]);_0x40a0ed[_0x3a23('0x25')]=_0x411336['result'][_0x3a23('0x11')];_0x54cd87(_0x40a0ed);})[_0x3a23('0x15')](function(_0x3c45f){logger[_0x3a23('0x16')]('['+[_0xe8b413[_0x3a23('0x13')]()]+']',_0x3c45f['message']);_0x5aee98(_0x3c45f['message']);});});}function getEndUser(_0x3ed739,_0x352383,_0x2fa276,_0x305a18,_0x1b8ed9){return function(_0x1ab795){logger[_0x3a23('0x12')]('['+[_0x3ed739[_0x3a23('0x13')]()]+_0x3a23('0x26'),_0x1ab795);return new Promise(function(_0x3bc6c7,_0x15fa02){var _0x2cd999={'method':_0x3a23('0xc'),'uri':_0x2fa276+_0x3a23('0x27')+_0x1ab795[_0x3a23('0x22')]+'&'+_0x305a18+'&'+_0x1b8ed9,'auth':_0x352383,'json':!![]};return rp(_0x2cd999)[_0x3a23('0xd')](function(_0x10af10){if(_0x10af10[_0x3a23('0xe')][_0x3a23('0xf')]>0x0){_0x1ab795['endUserId']=_0x10af10[_0x3a23('0xe')][0x0][_0x3a23('0x11')];logger['info']('['+[_0x3ed739[_0x3a23('0x13')]()]+_0x3a23('0x28'),_0x1ab795);_0x3bc6c7(_0x1ab795);}else{return createEndUser(_0x3ed739,_0x352383,_0x1ab795,_0x2fa276,_0x305a18)['then'](function(_0x373f22){logger[_0x3a23('0x12')]('['+[_0x3ed739['toUpperCase']()]+'],\x20createEndUser\x20crm',_0x373f22);_0x3bc6c7(_0x373f22);});}})['catch'](function(_0x39bb97){logger[_0x3a23('0x16')]('['+[_0x3ed739[_0x3a23('0x13')]()]+']',_0x39bb97['message']);_0x15fa02(_0x39bb97[_0x3a23('0x17')]);});});};}function getCustomFields(_0x5b8aa7,_0x3b02d6){var _0xcc022={};if(_0x5b8aa7[_0x3a23('0xf')]>0x0){_[_0x3a23('0x29')](_0x5b8aa7,function(_0x40a5ce){if(_0x40a5ce[_0x3a23('0x2a')]===_0x3a23('0x2b')&&_0x40a5ce[_0x3a23('0x2c')]&&!_0x40a5ce[_0x3a23('0x2d')]){_0xcc022[_0x40a5ce[_0x3a23('0x2e')][_0x3a23('0x2f')]()]=_0x40a5ce[_0x3a23('0x30')][_0x3a23('0x31')]();}else if(_0x40a5ce['type']===_0x3a23('0x2b')&&_0x40a5ce['idField']&&_0x40a5ce['customField']){_0xcc022[_0x40a5ce[_0x3a23('0x2e')]['toLowerCase']()]=_0x40a5ce[_0x3a23('0x30')][_0x3a23('0x31')]();}else if(_0x40a5ce[_0x3a23('0x2a')]===_0x3a23('0x32')&&_0x40a5ce[_0x3a23('0x33')]&&_0x40a5ce[_0x3a23('0x2e')]&&_0x40a5ce['customField']){_0xcc022[_0x40a5ce['idField'][_0x3a23('0x2f')]()]=_0x3b02d6[_0x40a5ce[_0x3a23('0x33')]][_0x3a23('0x31')]();}else if(_0x40a5ce[_0x3a23('0x2a')]==='customVariable'&&_0x40a5ce[_0x3a23('0x34')]&&_0x40a5ce[_0x3a23('0x34')][_0x3a23('0x35')]&&_0x40a5ce['idField']&&_0x40a5ce[_0x3a23('0x2d')]){_0xcc022[_0x40a5ce[_0x3a23('0x2e')][_0x3a23('0x2f')]()]=_0x3b02d6[_0x40a5ce[_0x3a23('0x34')]['name'][_0x3a23('0x2f')]()][_0x3a23('0x31')]();}});}return _0xcc022;}function getTicket(_0x493332,_0x3921ef,_0x495407,_0x34a822,_0x25130e,_0x5a3c56){return function(_0x3dec9c){logger[_0x3a23('0x12')]('['+[_0x493332[_0x3a23('0x13')]()]+_0x3a23('0x36'),_0x3dec9c);return new Promise(function(_0x5bda9c,_0x7a08ef){var _0x78f770=_0x493332[_0x3a23('0x2f')]()===_0x3a23('0x37')?_0x3dec9c[_0x3a23('0x1c')]:_0x3dec9c[_0x3a23('0x25')];var _0x5378e7={'method':_0x3a23('0x20'),'uri':_0x495407+_0x3a23('0x38')+'?'+_0x5a3c56,'body':Object[_0x3a23('0x39')]({},{'active':_0x3a23('0x23'),'caller_id':_0x78f770,'short_description':intUtil['getString'](_0x34a822[_0x3a23('0x3a')],_0x25130e,'\x20'),'description':intUtil['getString'](_0x34a822[_0x3a23('0x3b')],_0x25130e,'\x0a')},getCustomFields(_0x34a822[_0x3a23('0x3c')],_0x25130e)),'auth':_0x3921ef,'json':!![]};return rp(_0x5378e7)[_0x3a23('0xd')](function(_0x4c5e3e){logger[_0x3a23('0x12')]('['+[_0x493332['toUpperCase']()]+_0x3a23('0x3d'),_0x4c5e3e['result']);_0x3dec9c[_0x3a23('0x3e')]=_0x4c5e3e[_0x3a23('0xe')][_0x3a23('0x11')];_0x3dec9c[_0x3a23('0x3f')]=_0x4c5e3e[_0x3a23('0xe')][_0x3a23('0x40')];logger[_0x3a23('0x12')]('['+[_0x493332[_0x3a23('0x13')]()]+_0x3a23('0x41'),_0x3dec9c);_0x5bda9c(_0x3dec9c);})['catch'](function(_0x83b5d0){logger['error']('['+[_0x493332[_0x3a23('0x13')]()]+']',_0x83b5d0['message']);_0x7a08ef(_0x83b5d0[_0x3a23('0x17')]);});});};}function createRemoteTag(_0x1f3ad8,_0xfb21,_0x78bb19,_0x29626b){return new Promise(function(_0x17993d,_0x19e3bf){var _0x297747={'method':'POST','uri':_0x78bb19+_0x3a23('0x42')+'?'+_0x29626b,'body':{'short_description':_0x1f3ad8,'global':!![],'active':!![],'name':_0x1f3ad8},'auth':_0xfb21,'json':!![]};return rp(_0x297747)[_0x3a23('0xd')](function(_0x121308){var _0x26cd9b=_0x121308[_0x3a23('0xe')][_0x3a23('0x11')];_0x17993d(_0x26cd9b);});});}function getRemoteTag(_0x584e6e,_0x17a716,_0x4693fd,_0x56b06f,_0x319a49){return new Promise(function(_0x486957,_0x30fb6a){var _0x3420da={'method':_0x3a23('0xc'),'uri':_0x4693fd+_0x3a23('0x42')+'?sysparm_query=name%3D'+_0x584e6e+'&'+_0x56b06f,'auth':_0x17a716,'json':!![]};return rp(_0x3420da)['then'](function(_0x54a120){if(_0x54a120[_0x3a23('0xe')]['length']>0x0){var _0x27a336=_0x54a120[_0x3a23('0xe')][0x0][_0x3a23('0x11')];_0x486957(_0x27a336);}else{return createRemoteTag(_0x584e6e,_0x17a716,_0x4693fd,_0x56b06f)['then'](function(_0x124c0a){_0x486957(_0x124c0a);});}});});}function assignTagToIncident(_0x2e156a,_0x48230d,_0x13e465,_0xfc22ee,_0x30f125){return new Promise(function(_0x5a1c23,_0x4c8cf4){var _0x7d1ae1={'method':'POST','uri':_0x13e465+_0x3a23('0x43')+'?'+_0x30f125,'body':{'label':_0x2e156a,'table':_0x3a23('0x38'),'id_type':_0x3a23('0x44'),'table_key':_0xfc22ee[_0x3a23('0x3e')],'title':_0x3a23('0x45')+_0xfc22ee['ticketNumber'],'id_display':_0xfc22ee[_0x3a23('0x3f')]},'auth':_0x48230d,'json':!![]};return rp(_0x7d1ae1)[_0x3a23('0xd')](function(_0x4969d3){_0x5a1c23();})[_0x3a23('0x15')](function(){_0x5a1c23();});});}function manageTags(_0xf70fc3,_0x2f6bd1,_0x2b88e9,_0x27bedb,_0xf41d73,_0x3d36ae,_0x37c2ae){return new Promise(function(_0x4c4d71,_0xf5ca77){var _0x580bea=[];_0x2f6bd1[_0x3a23('0x29')](function(_0x312139){_0x580bea['push'](getRemoteTag(_0x312139,_0x2b88e9,_0x27bedb,_0x3d36ae,_0x37c2ae));});return Promise[_0x3a23('0x46')](_0x580bea)['then'](function(_0x206221){if(_0x206221[_0x3a23('0xf')]){logger['info']('['+[_0xf70fc3[_0x3a23('0x13')]()]+']\x20arrayPromises:\x20IDs\x20in\x20table\x20label',_0x206221);var _0x54cda8=[];_0x206221[_0x3a23('0x29')](function(_0x88c1d9){_0x54cda8[_0x3a23('0x47')](assignTagToIncident(_0x88c1d9,_0x2b88e9,_0x27bedb,_0xf41d73,_0x3d36ae));});return Promise['all'](_0x54cda8)['then'](function(){_0x4c4d71();})[_0x3a23('0x15')](function(){_0x4c4d71();});}else{_0x4c4d71();}});});}function getTags(_0x1c4215,_0x4037a6,_0x32b8e4,_0x467799,_0x50a17f,_0x2df998){return function(_0x41a345){return new Promise(function(_0x3d01f7,_0x1fd694){var _0x4ee5c1=[];var _0x5955da=_0x467799[_0x3a23('0x48')];if(_0x5955da&&_0x5955da[_0x3a23('0xf')]>0x0){_0x4ee5c1=_[_0x3a23('0x49')](_0x5955da,'name');}if(_0x4ee5c1['length']>0x0){return manageTags(_0x1c4215,_0x4ee5c1,_0x4037a6,_0x32b8e4,_0x41a345,_0x50a17f,_0x2df998)[_0x3a23('0xd')](function(){_0x3d01f7(_0x41a345);});}else{_0x3d01f7(_0x41a345);}});};}function emit(_0x33f794,_0x1fa848,_0x195fd5){var _0x3e620f='%26sysparm_record_target%3Dincident'+'%26sysparm_record_row%3D1%26sysparm_record_rows%3D39'+'%26sysparm_record_list%3Dactive%253Dtrue'+_0x3a23('0x4a');var _0x84f79d={'uri':_0x33f794+'/nav_to.do?uri=incident.do?sys_id%3D'+_0x195fd5+_0x3e620f};io['to'](util[_0x3a23('0x4b')]('user:%s',_0x1fa848))['emit'](_0x3a23('0x4c'),_0x84f79d);}exports['cs']=function(_0x35bb61,_0x15436f,_0x26b8c2,_0x20404c,_0x554563,_0x384d0e,_0x26b72c,_0x3df547){var _0x5a3cde={};var _0x327a20={'user':_0x384d0e['username'],'pass':_0x384d0e['password']};var _0x39df46=_0x3a23('0x4d');var _0x16ac76=_0x3a23('0x4e');_0x384d0e[_0x3a23('0x4f')]=intUtil['stripTrailingSlash'](_0x384d0e['remoteUri']);_0x384d0e['serverUrl']=intUtil[_0x3a23('0x50')](_0x384d0e['serverUrl']);var _0x52514f=util[_0x3a23('0x4b')](_0x3a23('0x51'),_0x384d0e[_0x3a23('0x4f')]);_0x5a3cde[_0x3a23('0x1b')]=_0x20404c['email'];_0x5a3cde[_0x3a23('0x1d')]=_0x384d0e['email'];_0x5a3cde[_0x3a23('0x22')]=_0x3df547[_0x3a23('0x2f')]()==='outbound'?_0x15436f[_0x3a23('0x52')]:_0x15436f['calleridnum'];_0x5a3cde[_0x3a23('0x53')]=_0x3df547===_0x3a23('0x54')||_0x3df547===_0x3a23('0x55')?_0x3a23('0x54'):_0x3a23('0x37');var _0x22e155=util[_0x3a23('0x4b')](_0x3a23('0x56'),_0x384d0e[_0x3a23('0x57')],_0x15436f['uniqueid'],md5(_0x15436f['uniqueid']));if(_0x554563&&_0x554563[_0x3a23('0x58')]){logger[_0x3a23('0x12')](_0x3a23('0x59'),'Recording\x20is\x20enabled!');_0x15436f[_0x3a23('0x5a')]=_0x22e155;}else if(_0x26b72c&&_0x26b72c[_0x3a23('0x5b')]&&_0x26b72c[_0x3a23('0x5b')]!==_0x3a23('0x5c')){logger[_0x3a23('0x12')](_0x3a23('0x5d'),_0x3a23('0x5e'));_0x15436f[_0x3a23('0x5a')]=_0x22e155;}else{_0x15436f['recordingURL']='';}return getAdminUser(_0x3df547,_0x327a20,_0x5a3cde,_0x52514f,_0x16ac76,_0x39df46)[_0x3a23('0xd')](getUser(_0x3df547,_0x327a20,_0x52514f,_0x16ac76,_0x39df46))[_0x3a23('0xd')](getEndUser(_0x3df547,_0x327a20,_0x52514f,_0x16ac76,_0x39df46))[_0x3a23('0xd')](getTicket(_0x3df547,_0x327a20,_0x52514f,_0x26b8c2,_0x15436f,_0x16ac76))[_0x3a23('0xd')](function(_0x1f525c){logger[_0x3a23('0x12')](util[_0x3a23('0x4b')](_0x3a23('0x5f'),_0x1f525c['ticketId']));logger['info'](util[_0x3a23('0x4b')]('call\x20direction:\x20%s',_0x3df547));if(_0x3df547!==_0x3a23('0x55')){logger['info']('['+[_0x3df547[_0x3a23('0x13')]()]+']',_0x3a23('0x60'));emit(_0x384d0e[_0x3a23('0x4f')],_0x20404c[_0x3a23('0x35')],_0x1f525c[_0x3a23('0x3e')]);}})[_0x3a23('0x15')](function(_0x2b2c8f){logger[_0x3a23('0x16')]('['+[_0x3df547[_0x3a23('0x13')]()]+_0x3a23('0x61'),util[_0x3a23('0x62')](_0x2b2c8f,{'showHidden':!![],'depth':null}));});};