54c8a623e09d150a42cc9aaba4dfc66eee392329
[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 _0x556b=['data4','isNil','calleridname','<unknown>','Unknown','destcalleridname','createContact','push','[CM][%s][%s]\x20Contact\x20created:%s','format','user:%s','name','toLowerCase','merge','lodash','bluebird','ioredis','util','../../../../config/environment','../../../../config/logger','trigger','../../rpc/cmContact','redis','localhost','socket.io-emitter','[CM][%s][%s]','data1','data2','xmd-contactid','ListId','data3','split','phone','$or','map','routeId','destcalleridnum','firstName','lastName','fax','createdAt','scheduledAt','updatedAt','union','resolve','then','isEmpty','length','info','[CM][%s][%s]\x20Contact\x20found:%s','[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]','uniqueid','join','[CM][%s][%s]\x20Contact\x20not\x20found'];(function(_0x2e4f4c,_0x172e75){var _0x17a25a=function(_0x271e08){while(--_0x271e08){_0x2e4f4c['push'](_0x2e4f4c['shift']());}};_0x17a25a(++_0x172e75);}(_0x556b,0x188));var _0xb556=function(_0x10ffdd,_0x59a1d4){_0x10ffdd=_0x10ffdd-0x0;var _0x31f18e=_0x556b[_0x10ffdd];return _0x31f18e;};'use strict';var _=require(_0xb556('0x0'));var BPromise=require(_0xb556('0x1'));var Redis=require(_0xb556('0x2'));var util=require(_0xb556('0x3'));var config=require(_0xb556('0x4'));var logger=require(_0xb556('0x5'))(_0xb556('0x6'));var cmContactRpc=require(_0xb556('0x7'));config[_0xb556('0x8')]=_['defaults'](config['redis'],{'host':_0xb556('0x9'),'port':0x18eb});var io=require(_0xb556('0xa'))(new Redis(config[_0xb556('0x8')]));function emit(_0xd1740e,_0x1ce6c6,_0x288ffe,_0xaee812,_0x3d7b11){logger['info'](_0xb556('0xb'),_0xd1740e,_0x1ce6c6['id'],_0x288ffe,_0xaee812,JSON['stringify'](_0x3d7b11));io['to'](_0x288ffe)['emit'](_0xaee812,_0x3d7b11);}exports['exec']=function(_0x42f0f0,_0x2f1898,_0x54c04e,_0x1346cb){var _0x5e6e91,_0x5a518a;var _0x627581={};var _0x237cb1=Number(_0x54c04e[_0xb556('0xc')]);var _0x10a6f6=_0x54c04e[_0xb556('0xd')]?Boolean(Number(_0x54c04e['data2'])):![];var _0x5bc590;if(_0x1346cb[_0xb556('0xe')]){_0x627581['id']=_0x1346cb[_0xb556('0xe')];}if(!_0x627581['id']){_0x627581[_0xb556('0xf')]=_0x237cb1;_0x5bc590=_0x54c04e[_0xb556('0x10')]&&_0x54c04e['data3']!=='0'?_0x54c04e[_0xb556('0x10')][_0xb556('0x11')](','):[_0xb556('0x12')];_0x627581[_0xb556('0x13')]=_[_0xb556('0x14')](_0x5bc590,function(_0x3f0047){var _0x1c43ec={};_0x1c43ec[_0x3f0047]=_0x1346cb[_0xb556('0x15')]?_0x1346cb[_0xb556('0x16')]:_0x1346cb['calleridnum'];return _0x1c43ec;});}var _0x39351d=['id',_0xb556('0x17'),_0xb556('0x18'),_0xb556('0x12'),'mobile',_0xb556('0x19'),_0xb556('0xf'),_0xb556('0x1a'),_0xb556('0x1b'),_0xb556('0x1c')];var _0x83be57=_[_0xb556('0x1d')](_0x39351d,_0x5bc590);BPromise[_0xb556('0x1e')]()[_0xb556('0x1f')](cmContactRpc['getContacts']({'attributes':_0x83be57,'where':_0x627581}))[_0xb556('0x1f')](function(_0x47118f){_0x5a518a=_0x47118f;if(!_[_0xb556('0x20')](_0x5a518a)){if(_0x5a518a[_0xb556('0x21')]===0x1){_0x5e6e91=_0x5a518a[0x0];logger[_0xb556('0x22')](_0xb556('0x23'),_0x1346cb['uniqueid'],_0x2f1898['id'],_0x5e6e91['id']);}else{logger['info'](_0xb556('0x24'),_0x1346cb[_0xb556('0x25')],_0x2f1898['id'],_[_0xb556('0x14')](_0x5a518a,'id')[_0xb556('0x26')](','));}return;}else{logger['info'](_0xb556('0x27'),_0x1346cb[_0xb556('0x25')],_0x2f1898['id']);var _0x39b940={'ListId':_0x237cb1};var _0x2529c2=_0x54c04e[_0xb556('0x28')]&&_0x54c04e[_0xb556('0x28')]!=='0'?_0x54c04e[_0xb556('0x28')]:_0xb556('0x12');if(_0x10a6f6){logger[_0xb556('0x22')]('[CM][%s][%s]\x20Autocreate\x20enabled',_0x1346cb['uniqueid'],_0x2f1898['id']);_0x39b940[_0x2529c2]=_['isNil'](_0x1346cb[_0xb556('0x15')])?_0x1346cb['calleridnum']:_0x1346cb[_0xb556('0x16')];if(_[_0xb556('0x29')](_0x1346cb[_0xb556('0x15')])){_0x39b940[_0xb556('0x17')]=_0x1346cb[_0xb556('0x2a')]&&_0x1346cb[_0xb556('0x2a')]!==_0xb556('0x2b')?_0x1346cb[_0xb556('0x2a')]:_0xb556('0x2c');}else{_0x39b940['firstName']=_0x1346cb[_0xb556('0x2d')]&&_0x1346cb[_0xb556('0x2d')]!==_0xb556('0x2b')?_0x1346cb['destcalleridname']:_0xb556('0x2c');}return BPromise[_0xb556('0x1e')]()[_0xb556('0x1f')](cmContactRpc[_0xb556('0x2e')](_0x39b940))[_0xb556('0x1f')](function(_0x35e9f9){_0x5e6e91=_0x35e9f9;_0x5a518a[_0xb556('0x2f')](_0x35e9f9);if(_0x5e6e91){logger['info'](_0xb556('0x30'),_0x1346cb['uniqueid'],_0x2f1898['id'],_0x5e6e91['id']);}return;});}else{logger[_0xb556('0x22')]('[CM][%s][%s]\x20Autocreate\x20disabled',_0x1346cb[_0xb556('0x25')],_0x2f1898['id']);_0x39b940[_0x2529c2]=_['isNil'](_0x1346cb[_0xb556('0x15')])?_0x1346cb['calleridnum']:_0x1346cb['destcalleridnum'];if(_['isNil'](_0x1346cb['routeId'])){_0x39b940[_0xb556('0x17')]=_0x1346cb[_0xb556('0x2a')]&&_0x1346cb[_0xb556('0x2a')]!==_0xb556('0x2b')?_0x1346cb[_0xb556('0x2a')]:'Unknown';}else{_0x39b940['firstName']=_0x1346cb[_0xb556('0x2d')]&&_0x1346cb[_0xb556('0x2d')]!==_0xb556('0x2b')?_0x1346cb['destcalleridname']:'Unknown';}_0x5e6e91=_0x39b940;_0x5a518a[_0xb556('0x2f')](_0x39b940);return;}}})['then'](function(){if(_0x42f0f0){emit(_0x1346cb[_0xb556('0x25')],_0x2f1898,util[_0xb556('0x31')](_0xb556('0x32'),_0x42f0f0[_0xb556('0x33')]),util[_0xb556('0x31')]('trigger:%s',_0x54c04e['action'][_0xb556('0x34')]()),{'evt':_[_0xb556('0x35')](_0x1346cb,{'autoCreate':_0x10a6f6}),'contact':_0x5e6e91===undefined?{}:_0x5e6e91,'contacts':_0x5a518a[_0xb556('0x21')]===0x0?undefined:_0x5a518a});}});};