1ac44e4d0dccd5b01a5e12a4385bbfecef1c852f
[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 _0x568a=['merge','lodash','bluebird','ioredis','util','../../../../config/environment','redis','socket.io-emitter','info','[CM][%s][%s]','stringify','exec','data1','isNil','data5','xmd-contactid','data3','split','phone','$or','routeId','destcalleridnum','calleridnum','firstName','lastName','mobile','ListId','createdAt','updatedAt','union','resolve','then','length','[CM][%s][%s]\x20Contact\x20found:%s','uniqueid','[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]','[CM][%s][%s]\x20Contact\x20not\x20found','data4','[CM][%s][%s]\x20Autocreate\x20enabled','calleridname','<unknown>','destcalleridname','Unknown','createContact','push','[CM][%s][%s]\x20Contact\x20created:%s','format','user:%s','name','action','toLowerCase'];(function(_0x571d85,_0xda439c){var _0x3c2e07=function(_0x2d2144){while(--_0x2d2144){_0x571d85['push'](_0x571d85['shift']());}};_0x3c2e07(++_0xda439c);}(_0x568a,0xcd));var _0xa568=function(_0x4cf98e,_0xba4b79){_0x4cf98e=_0x4cf98e-0x0;var _0x1623ac=_0x568a[_0x4cf98e];return _0x1623ac;};'use strict';var _=require(_0xa568('0x0'));var BPromise=require(_0xa568('0x1'));var Redis=require(_0xa568('0x2'));var util=require(_0xa568('0x3'));var config=require(_0xa568('0x4'));var logger=require('../../../../config/logger')('trigger');var cmContactRpc=require('../../rpc/cmContact');config[_0xa568('0x5')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xa568('0x6'))(new Redis(config[_0xa568('0x5')]));function emit(_0x12160d,_0x1cf69c,_0x4ae3ee,_0x2643d9,_0x11b9ae){logger[_0xa568('0x7')](_0xa568('0x8'),_0x12160d,_0x1cf69c['id'],_0x4ae3ee,_0x2643d9,JSON[_0xa568('0x9')](_0x11b9ae));io['to'](_0x4ae3ee)['emit'](_0x2643d9,_0x11b9ae);}exports[_0xa568('0xa')]=function(_0x472727,_0x678c1a,_0x4c557c,_0x59be39){var _0x1c81ef,_0x29a977;var _0x3a9898={};var _0x28270e;var _0x34c8cd=Number(_0x4c557c[_0xa568('0xb')]);var _0x214324=_0x4c557c['data2']?Boolean(Number(_0x4c557c['data2'])):![];var _0x26c892;var _0x9fc55d=![];if(!_[_0xa568('0xc')](_0x4c557c[_0xa568('0xd')])){if(_0x4c557c[_0xa568('0xd')]=='1')_0x9fc55d=!![];}if(!_0x9fc55d){if(_0x59be39[_0xa568('0xe')]){_0x3a9898['id']=_0x59be39[_0xa568('0xe')];}}if(!_0x3a9898['id']){_0x3a9898['ListId']=_0x34c8cd;_0x26c892=_0x4c557c['data3']&&_0x4c557c[_0xa568('0xf')]!=='0'?_0x4c557c[_0xa568('0xf')][_0xa568('0x10')](','):[_0xa568('0x11')];_0x3a9898[_0xa568('0x12')]=_['map'](_0x26c892,function(_0xdf0a0d){var _0x237385={};_0x237385[_0xdf0a0d]=_0x59be39[_0xa568('0x13')]?_0x59be39[_0xa568('0x14')]:_0x59be39[_0xa568('0x15')];return _0x237385;});_0x28270e=_0x59be39[_0xa568('0x13')]?_0x59be39['destcalleridnum']:_0x59be39[_0xa568('0x15')];}var _0x45b41f=['id',_0xa568('0x16'),_0xa568('0x17'),'phone',_0xa568('0x18'),'fax',_0xa568('0x19'),_0xa568('0x1a'),'scheduledAt',_0xa568('0x1b')];var _0x5c23d1=_[_0xa568('0x1c')](_0x45b41f,_0x26c892);BPromise[_0xa568('0x1d')]()[_0xa568('0x1e')](cmContactRpc['getContacts']({'attributes':_0x5c23d1,'where':_0x3a9898,'phone':_0x28270e}))[_0xa568('0x1e')](function(_0x61cea4){_0x29a977=_0x61cea4;if(!_['isEmpty'](_0x29a977)){if(_0x29a977[_0xa568('0x1f')]===0x1){_0x1c81ef=_0x29a977[0x0];logger[_0xa568('0x7')](_0xa568('0x20'),_0x59be39[_0xa568('0x21')],_0x678c1a['id'],_0x1c81ef['id']);}else{logger[_0xa568('0x7')](_0xa568('0x22'),_0x59be39['uniqueid'],_0x678c1a['id'],_['map'](_0x29a977,'id')['join'](','));}return;}else{logger[_0xa568('0x7')](_0xa568('0x23'),_0x59be39[_0xa568('0x21')],_0x678c1a['id']);var _0x1c443d={'ListId':_0x34c8cd};var _0x3ea21f=_0x4c557c['data4']&&_0x4c557c['data4']!=='0'?_0x4c557c[_0xa568('0x24')]:_0xa568('0x11');if(_0x214324){logger[_0xa568('0x7')](_0xa568('0x25'),_0x59be39[_0xa568('0x21')],_0x678c1a['id']);_0x1c443d[_0x3ea21f]=_[_0xa568('0xc')](_0x59be39[_0xa568('0x13')])?_0x59be39[_0xa568('0x15')]:_0x59be39[_0xa568('0x14')];if(_['isNil'](_0x59be39[_0xa568('0x13')])){_0x1c443d[_0xa568('0x16')]=_0x59be39[_0xa568('0x26')]&&_0x59be39[_0xa568('0x26')]!==_0xa568('0x27')?_0x59be39[_0xa568('0x26')]:'Unknown';}else{_0x1c443d[_0xa568('0x16')]=_0x59be39[_0xa568('0x28')]&&_0x59be39['destcalleridname']!==_0xa568('0x27')?_0x59be39['destcalleridname']:_0xa568('0x29');}return BPromise['resolve']()['then'](cmContactRpc[_0xa568('0x2a')](_0x1c443d))[_0xa568('0x1e')](function(_0xba4796){_0x1c81ef=_0xba4796;_0x29a977[_0xa568('0x2b')](_0xba4796);if(_0x1c81ef){logger[_0xa568('0x7')](_0xa568('0x2c'),_0x59be39[_0xa568('0x21')],_0x678c1a['id'],_0x1c81ef['id']);}return;});}else{logger['info']('[CM][%s][%s]\x20Autocreate\x20disabled',_0x59be39[_0xa568('0x21')],_0x678c1a['id']);_0x1c443d[_0x3ea21f]=_['isNil'](_0x59be39[_0xa568('0x13')])?_0x59be39[_0xa568('0x15')]:_0x59be39[_0xa568('0x14')];if(_[_0xa568('0xc')](_0x59be39['routeId'])){_0x1c443d['firstName']=_0x59be39[_0xa568('0x26')]&&_0x59be39['calleridname']!==_0xa568('0x27')?_0x59be39['calleridname']:_0xa568('0x29');}else{_0x1c443d['firstName']=_0x59be39['destcalleridname']&&_0x59be39[_0xa568('0x28')]!=='<unknown>'?_0x59be39[_0xa568('0x28')]:_0xa568('0x29');}_0x1c81ef=_0x1c443d;_0x29a977[_0xa568('0x2b')](_0x1c443d);return;}}})[_0xa568('0x1e')](function(){if(_0x472727){emit(_0x59be39[_0xa568('0x21')],_0x678c1a,util[_0xa568('0x2d')](_0xa568('0x2e'),_0x472727[_0xa568('0x2f')]),util[_0xa568('0x2d')]('trigger:%s',_0x4c557c[_0xa568('0x30')][_0xa568('0x31')]()),{'evt':_[_0xa568('0x32')](_0x59be39,{'autoCreate':_0x214324}),'contact':_0x1c81ef===undefined?{}:_0x1c81ef,'contacts':_0x29a977['length']===0x0?undefined:_0x29a977});}});};