9fcb98c95f1906f6cbd3b6b376c0c45fe4dcecaa
[motion2.git] / server / services / ami / trigger / cmContact / index.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 _0xbfa3=['then','isEmpty','[CM][%s][%s]\x20Contact\x20found:%s','uniqueid','[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]','join','[CM][%s][%s]\x20Contact\x20not\x20found','data4','[CM][%s][%s]\x20Autocreate\x20enabled','calleridnum','firstName','calleridname','<unknown>','Unknown','destcalleridname','createContact','push','[CM][%s][%s]\x20Contact\x20created:%s','[CM][%s][%s]\x20Autocreate\x20disabled','format','user:%s','trigger:%s','length','bluebird','util','../../../../config/environment','../../../../config/logger','trigger','../../rpc/cmContact','redis','localhost','info','[CM][%s][%s]','stringify','emit','exec','data1','data2','isNil','data5','xmd-contactid','ListId','data3','phone','$or','map','destcalleridnum','routeId','lastName','mobile','fax','scheduledAt','updatedAt'];(function(_0x2ee7d2,_0xb4acf5){var _0x560ea2=function(_0x446923){while(--_0x446923){_0x2ee7d2['push'](_0x2ee7d2['shift']());}};_0x560ea2(++_0xb4acf5);}(_0xbfa3,0x1f4));var _0x3bfa=function(_0x5e86a0,_0x279e01){_0x5e86a0=_0x5e86a0-0x0;var _0x19055e=_0xbfa3[_0x5e86a0];return _0x19055e;};'use strict';var _=require('lodash');var BPromise=require(_0x3bfa('0x0'));var Redis=require('ioredis');var util=require(_0x3bfa('0x1'));var config=require(_0x3bfa('0x2'));var logger=require(_0x3bfa('0x3'))(_0x3bfa('0x4'));var cmContactRpc=require(_0x3bfa('0x5'));config[_0x3bfa('0x6')]=_['defaults'](config[_0x3bfa('0x6')],{'host':_0x3bfa('0x7'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x3bfa('0x6')]));function emit(_0x302414,_0x24d489,_0x3eed7f,_0x345e0d,_0x74154b){logger[_0x3bfa('0x8')](_0x3bfa('0x9'),_0x302414,_0x24d489['id'],_0x3eed7f,_0x345e0d,JSON[_0x3bfa('0xa')](_0x74154b));io['to'](_0x3eed7f)[_0x3bfa('0xb')](_0x345e0d,_0x74154b);}exports[_0x3bfa('0xc')]=function(_0x93ed94,_0x58af97,_0xbc9db5,_0x32f681){var _0x24f12e,_0x1d1cd7;var _0x352199={};var _0x487f3d;var _0x2756d2=Number(_0xbc9db5[_0x3bfa('0xd')]);var _0x50ed33=_0xbc9db5[_0x3bfa('0xe')]?Boolean(Number(_0xbc9db5['data2'])):![];var _0x124bec;var _0xe008a6=![];if(!_[_0x3bfa('0xf')](_0xbc9db5[_0x3bfa('0x10')])){if(_0xbc9db5[_0x3bfa('0x10')]=='1')_0xe008a6=!![];}if(!_0xe008a6){if(_0x32f681[_0x3bfa('0x11')]){_0x352199['id']=_0x32f681[_0x3bfa('0x11')];}}if(!_0x352199['id']){_0x352199[_0x3bfa('0x12')]=_0x2756d2;_0x124bec=_0xbc9db5[_0x3bfa('0x13')]&&_0xbc9db5['data3']!=='0'?_0xbc9db5[_0x3bfa('0x13')]['split'](','):[_0x3bfa('0x14')];_0x352199[_0x3bfa('0x15')]=_[_0x3bfa('0x16')](_0x124bec,function(_0x7bbade){var _0x1797f4={};_0x1797f4[_0x7bbade]=_0x32f681['routeId']?_0x32f681[_0x3bfa('0x17')]:_0x32f681['calleridnum'];return _0x1797f4;});_0x487f3d=_0x32f681[_0x3bfa('0x18')]?_0x32f681[_0x3bfa('0x17')]:_0x32f681['calleridnum'];}var _0x4f0e4f=['id','firstName',_0x3bfa('0x19'),_0x3bfa('0x14'),_0x3bfa('0x1a'),_0x3bfa('0x1b'),'ListId','createdAt',_0x3bfa('0x1c'),_0x3bfa('0x1d')];var _0x2634c7=_['union'](_0x4f0e4f,_0x124bec);BPromise['resolve']()['then'](cmContactRpc['getContacts']({'attributes':_0x2634c7,'where':_0x352199,'phone':_0x487f3d}))[_0x3bfa('0x1e')](function(_0x218b64){_0x1d1cd7=_0x218b64;if(!_[_0x3bfa('0x1f')](_0x1d1cd7)){if(_0x1d1cd7['length']===0x1){_0x24f12e=_0x1d1cd7[0x0];logger[_0x3bfa('0x8')](_0x3bfa('0x20'),_0x32f681[_0x3bfa('0x21')],_0x58af97['id'],_0x24f12e['id']);}else{logger[_0x3bfa('0x8')](_0x3bfa('0x22'),_0x32f681[_0x3bfa('0x21')],_0x58af97['id'],_['map'](_0x1d1cd7,'id')[_0x3bfa('0x23')](','));}return;}else{logger[_0x3bfa('0x8')](_0x3bfa('0x24'),_0x32f681[_0x3bfa('0x21')],_0x58af97['id']);var _0x45eb41={'ListId':_0x2756d2};var _0x423d00=_0xbc9db5[_0x3bfa('0x25')]&&_0xbc9db5[_0x3bfa('0x25')]!=='0'?_0xbc9db5[_0x3bfa('0x25')]:_0x3bfa('0x14');if(_0x50ed33){logger[_0x3bfa('0x8')](_0x3bfa('0x26'),_0x32f681['uniqueid'],_0x58af97['id']);_0x45eb41[_0x423d00]=_[_0x3bfa('0xf')](_0x32f681[_0x3bfa('0x18')])?_0x32f681[_0x3bfa('0x27')]:_0x32f681[_0x3bfa('0x17')];if(_[_0x3bfa('0xf')](_0x32f681[_0x3bfa('0x18')])){_0x45eb41[_0x3bfa('0x28')]=_0x32f681[_0x3bfa('0x29')]&&_0x32f681['calleridname']!==_0x3bfa('0x2a')?_0x32f681[_0x3bfa('0x29')]:_0x3bfa('0x2b');}else{_0x45eb41[_0x3bfa('0x28')]=_0x32f681['destcalleridname']&&_0x32f681[_0x3bfa('0x2c')]!==_0x3bfa('0x2a')?_0x32f681['destcalleridname']:'Unknown';}return BPromise['resolve']()[_0x3bfa('0x1e')](cmContactRpc[_0x3bfa('0x2d')](_0x45eb41))[_0x3bfa('0x1e')](function(_0x252a43){_0x24f12e=_0x252a43;_0x1d1cd7[_0x3bfa('0x2e')](_0x252a43);if(_0x24f12e){logger[_0x3bfa('0x8')](_0x3bfa('0x2f'),_0x32f681[_0x3bfa('0x21')],_0x58af97['id'],_0x24f12e['id']);}return;});}else{logger[_0x3bfa('0x8')](_0x3bfa('0x30'),_0x32f681[_0x3bfa('0x21')],_0x58af97['id']);_0x45eb41[_0x423d00]=_['isNil'](_0x32f681[_0x3bfa('0x18')])?_0x32f681[_0x3bfa('0x27')]:_0x32f681[_0x3bfa('0x17')];if(_[_0x3bfa('0xf')](_0x32f681[_0x3bfa('0x18')])){_0x45eb41[_0x3bfa('0x28')]=_0x32f681[_0x3bfa('0x29')]&&_0x32f681[_0x3bfa('0x29')]!==_0x3bfa('0x2a')?_0x32f681[_0x3bfa('0x29')]:_0x3bfa('0x2b');}else{_0x45eb41['firstName']=_0x32f681['destcalleridname']&&_0x32f681[_0x3bfa('0x2c')]!=='<unknown>'?_0x32f681[_0x3bfa('0x2c')]:_0x3bfa('0x2b');}_0x24f12e=_0x45eb41;_0x1d1cd7[_0x3bfa('0x2e')](_0x45eb41);return;}}})[_0x3bfa('0x1e')](function(){if(_0x93ed94){emit(_0x32f681['uniqueid'],_0x58af97,util[_0x3bfa('0x31')](_0x3bfa('0x32'),_0x93ed94['name']),util['format'](_0x3bfa('0x33'),_0xbc9db5['action']['toLowerCase']()),{'evt':_['merge'](_0x32f681,{'autoCreate':_0x50ed33}),'contact':_0x24f12e===undefined?{}:_0x24f12e,'contacts':_0x1d1cd7[_0x3bfa('0x34')]===0x0?undefined:_0x1d1cd7});}});};