14121fcb55f13c132f4d7c2e60369b20c0a98d44
[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 _0x98e2=['then','isEmpty','length','info','[CM][%s][%s]\x20Contact\x20found:%s','uniqueid','join','[CM][%s][%s]\x20Contact\x20not\x20found','data4','[CM][%s][%s]\x20Autocreate\x20enabled','isNil','calleridname','<unknown>','Unknown','destcalleridname','createContact','push','[CM][%s][%s]\x20Contact\x20created:%s','[CM][%s][%s]\x20Autocreate\x20disabled','format','trigger:%s','action','toLowerCase','merge','lodash','bluebird','ioredis','util','../../../../config/environment','../../../../config/logger','trigger','../../rpc/cmContact','defaults','redis','localhost','socket.io-emitter','[CM][%s][%s]','stringify','exec','data1','data2','xmd-contactid','ListId','data3','split','phone','$or','map','routeId','destcalleridnum','calleridnum','firstName','lastName','mobile','createdAt','scheduledAt','updatedAt','resolve'];(function(_0x2b010c,_0x328d56){var _0x5c3908=function(_0x53a606){while(--_0x53a606){_0x2b010c['push'](_0x2b010c['shift']());}};_0x5c3908(++_0x328d56);}(_0x98e2,0xc6));var _0x298e=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x98e2[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0x298e('0x0'));var BPromise=require(_0x298e('0x1'));var Redis=require(_0x298e('0x2'));var util=require(_0x298e('0x3'));var config=require(_0x298e('0x4'));var logger=require(_0x298e('0x5'))(_0x298e('0x6'));var cmContactRpc=require(_0x298e('0x7'));config['redis']=_[_0x298e('0x8')](config[_0x298e('0x9')],{'host':_0x298e('0xa'),'port':0x18eb});var io=require(_0x298e('0xb'))(new Redis(config[_0x298e('0x9')]));function emit(_0x5b2fab,_0x8a88a2,_0x3e6f9a,_0x3ebbfc,_0x17a6e9){logger['info'](_0x298e('0xc'),_0x5b2fab,_0x8a88a2['id'],_0x3e6f9a,_0x3ebbfc,JSON[_0x298e('0xd')](_0x17a6e9));io['to'](_0x3e6f9a)['emit'](_0x3ebbfc,_0x17a6e9);}exports[_0x298e('0xe')]=function(_0x108d38,_0xabd3a8,_0x1cc6ea,_0x377cdf){var _0x50411a,_0x47947e;var _0x29801d={};var _0x55ea76=Number(_0x1cc6ea[_0x298e('0xf')]);var _0x2c5a17=_0x1cc6ea[_0x298e('0x10')]?Boolean(Number(_0x1cc6ea[_0x298e('0x10')])):![];var _0x398ef7;if(_0x377cdf['xmd-contactid']){_0x29801d['id']=_0x377cdf[_0x298e('0x11')];}if(!_0x29801d['id']){_0x29801d[_0x298e('0x12')]=_0x55ea76;_0x398ef7=_0x1cc6ea[_0x298e('0x13')]&&_0x1cc6ea[_0x298e('0x13')]!=='0'?_0x1cc6ea[_0x298e('0x13')][_0x298e('0x14')](','):[_0x298e('0x15')];_0x29801d[_0x298e('0x16')]=_[_0x298e('0x17')](_0x398ef7,function(_0x1d32cc){var _0x1a6304={};_0x1a6304[_0x1d32cc]=_0x377cdf[_0x298e('0x18')]?_0x377cdf[_0x298e('0x19')]:_0x377cdf[_0x298e('0x1a')];return _0x1a6304;});}var _0x4e8bea=['id',_0x298e('0x1b'),_0x298e('0x1c'),_0x298e('0x15'),_0x298e('0x1d'),'fax',_0x298e('0x12'),_0x298e('0x1e'),_0x298e('0x1f'),_0x298e('0x20')];var _0x34f8ff=_['union'](_0x4e8bea,_0x398ef7);BPromise[_0x298e('0x21')]()[_0x298e('0x22')](cmContactRpc['getContacts']({'attributes':_0x34f8ff,'where':_0x29801d}))[_0x298e('0x22')](function(_0x201bf1){_0x47947e=_0x201bf1;if(!_[_0x298e('0x23')](_0x47947e)){if(_0x47947e[_0x298e('0x24')]===0x1){_0x50411a=_0x47947e[0x0];logger[_0x298e('0x25')](_0x298e('0x26'),_0x377cdf[_0x298e('0x27')],_0xabd3a8['id'],_0x50411a['id']);}else{logger[_0x298e('0x25')]('[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]',_0x377cdf[_0x298e('0x27')],_0xabd3a8['id'],_['map'](_0x47947e,'id')[_0x298e('0x28')](','));}return;}else{logger['info'](_0x298e('0x29'),_0x377cdf['uniqueid'],_0xabd3a8['id']);var _0x15ff82={'ListId':_0x55ea76};var _0x427007=_0x1cc6ea[_0x298e('0x2a')]&&_0x1cc6ea[_0x298e('0x2a')]!=='0'?_0x1cc6ea[_0x298e('0x2a')]:_0x298e('0x15');if(_0x2c5a17){logger[_0x298e('0x25')](_0x298e('0x2b'),_0x377cdf['uniqueid'],_0xabd3a8['id']);_0x15ff82[_0x427007]=_[_0x298e('0x2c')](_0x377cdf[_0x298e('0x18')])?_0x377cdf[_0x298e('0x1a')]:_0x377cdf[_0x298e('0x19')];if(_[_0x298e('0x2c')](_0x377cdf[_0x298e('0x18')])){_0x15ff82[_0x298e('0x1b')]=_0x377cdf['calleridname']&&_0x377cdf[_0x298e('0x2d')]!==_0x298e('0x2e')?_0x377cdf[_0x298e('0x2d')]:_0x298e('0x2f');}else{_0x15ff82[_0x298e('0x1b')]=_0x377cdf[_0x298e('0x30')]&&_0x377cdf[_0x298e('0x30')]!=='<unknown>'?_0x377cdf[_0x298e('0x30')]:_0x298e('0x2f');}return BPromise[_0x298e('0x21')]()[_0x298e('0x22')](cmContactRpc[_0x298e('0x31')](_0x15ff82))[_0x298e('0x22')](function(_0x4d38f8){_0x50411a=_0x4d38f8;_0x47947e[_0x298e('0x32')](_0x4d38f8);if(_0x50411a){logger[_0x298e('0x25')](_0x298e('0x33'),_0x377cdf[_0x298e('0x27')],_0xabd3a8['id'],_0x50411a['id']);}return;});}else{logger[_0x298e('0x25')](_0x298e('0x34'),_0x377cdf[_0x298e('0x27')],_0xabd3a8['id']);_0x15ff82[_0x427007]=_[_0x298e('0x2c')](_0x377cdf['routeId'])?_0x377cdf['calleridnum']:_0x377cdf[_0x298e('0x19')];if(_['isNil'](_0x377cdf[_0x298e('0x18')])){_0x15ff82['firstName']=_0x377cdf[_0x298e('0x2d')]&&_0x377cdf[_0x298e('0x2d')]!=='<unknown>'?_0x377cdf['calleridname']:_0x298e('0x2f');}else{_0x15ff82['firstName']=_0x377cdf[_0x298e('0x30')]&&_0x377cdf[_0x298e('0x30')]!=='<unknown>'?_0x377cdf[_0x298e('0x30')]:'Unknown';}_0x50411a=_0x15ff82;_0x47947e[_0x298e('0x32')](_0x15ff82);return;}}})[_0x298e('0x22')](function(){if(_0x108d38){emit(_0x377cdf[_0x298e('0x27')],_0xabd3a8,util['format']('user:%s',_0x108d38['name']),util[_0x298e('0x35')](_0x298e('0x36'),_0x1cc6ea[_0x298e('0x37')][_0x298e('0x38')]()),{'evt':_[_0x298e('0x39')](_0x377cdf,{'autoCreate':_0x2c5a17}),'contact':_0x50411a===undefined?{}:_0x50411a,'contacts':_0x47947e[_0x298e('0x24')]===0x0?undefined:_0x47947e});}});};