7a2c8d6e4857fa72b18bc5a8170ff8d1ad8cc85b
[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 _0x55ca=['phone','$or','map','routeId','destcalleridnum','firstName','lastName','mobile','fax','scheduledAt','updatedAt','resolve','then','isEmpty','length','uniqueid','[CM][%s][%s]\x20Contact\x20not\x20found','data4','[CM][%s][%s]\x20Autocreate\x20enabled','isNil','calleridnum','calleridname','<unknown>','destcalleridname','Unknown','createContact','push','[CM][%s][%s]\x20Contact\x20created:%s','[CM][%s][%s]\x20Autocreate\x20disabled','format','name','trigger:%s','action','toLowerCase','lodash','bluebird','../../../../config/logger','trigger','redis','defaults','localhost','socket.io-emitter','info','[CM][%s][%s]','exec','data1','data2','data5','xmd-contactid','ListId','data3','split'];(function(_0x6a0266,_0x1552d6){var _0x309e00=function(_0x17c1d1){while(--_0x17c1d1){_0x6a0266['push'](_0x6a0266['shift']());}};_0x309e00(++_0x1552d6);}(_0x55ca,0x126));var _0xa55c=function(_0x3d8776,_0x5305dc){_0x3d8776=_0x3d8776-0x0;var _0x51d331=_0x55ca[_0x3d8776];return _0x51d331;};'use strict';var _=require(_0xa55c('0x0'));var BPromise=require(_0xa55c('0x1'));var Redis=require('ioredis');var util=require('util');var config=require('../../../../config/environment');var logger=require(_0xa55c('0x2'))(_0xa55c('0x3'));var cmContactRpc=require('../../rpc/cmContact');config[_0xa55c('0x4')]=_[_0xa55c('0x5')](config[_0xa55c('0x4')],{'host':_0xa55c('0x6'),'port':0x18eb});var io=require(_0xa55c('0x7'))(new Redis(config[_0xa55c('0x4')]));function emit(_0x36b623,_0x4d0624,_0x2121fd,_0x2537f0,_0x57e069){logger[_0xa55c('0x8')](_0xa55c('0x9'),_0x36b623,_0x4d0624['id'],_0x2121fd,_0x2537f0,JSON['stringify'](_0x57e069));io['to'](_0x2121fd)['emit'](_0x2537f0,_0x57e069);}exports[_0xa55c('0xa')]=function(_0x20c76a,_0x381d07,_0x5d8e5a,_0x31646d){var _0xe6d826,_0x508342;var _0x70c2de={};var _0x3998f7=Number(_0x5d8e5a[_0xa55c('0xb')]);var _0x5d47ff=_0x5d8e5a['data2']?Boolean(Number(_0x5d8e5a[_0xa55c('0xc')])):![];var _0x576044;var _0x5a3672=![];if(!_['isNil'](_0x5d8e5a[_0xa55c('0xd')])){if(_0x5d8e5a[_0xa55c('0xd')]=='1')_0x5a3672=!![];}if(!_0x5a3672){if(_0x31646d[_0xa55c('0xe')]){_0x70c2de['id']=_0x31646d[_0xa55c('0xe')];}}if(!_0x70c2de['id']){_0x70c2de[_0xa55c('0xf')]=_0x3998f7;_0x576044=_0x5d8e5a[_0xa55c('0x10')]&&_0x5d8e5a['data3']!=='0'?_0x5d8e5a[_0xa55c('0x10')][_0xa55c('0x11')](','):[_0xa55c('0x12')];_0x70c2de[_0xa55c('0x13')]=_[_0xa55c('0x14')](_0x576044,function(_0x3ae86b){var _0x51590e={};_0x51590e[_0x3ae86b]=_0x31646d[_0xa55c('0x15')]?_0x31646d[_0xa55c('0x16')]:_0x31646d['calleridnum'];return _0x51590e;});}var _0x3d4c9e=['id',_0xa55c('0x17'),_0xa55c('0x18'),_0xa55c('0x12'),_0xa55c('0x19'),_0xa55c('0x1a'),'ListId','createdAt',_0xa55c('0x1b'),_0xa55c('0x1c')];var _0xade4c4=_['union'](_0x3d4c9e,_0x576044);BPromise[_0xa55c('0x1d')]()[_0xa55c('0x1e')](cmContactRpc['getContacts']({'attributes':_0xade4c4,'where':_0x70c2de}))[_0xa55c('0x1e')](function(_0x133096){_0x508342=_0x133096;if(!_[_0xa55c('0x1f')](_0x508342)){if(_0x508342[_0xa55c('0x20')]===0x1){_0xe6d826=_0x508342[0x0];logger[_0xa55c('0x8')]('[CM][%s][%s]\x20Contact\x20found:%s',_0x31646d[_0xa55c('0x21')],_0x381d07['id'],_0xe6d826['id']);}else{logger['info']('[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]',_0x31646d['uniqueid'],_0x381d07['id'],_[_0xa55c('0x14')](_0x508342,'id')['join'](','));}return;}else{logger[_0xa55c('0x8')](_0xa55c('0x22'),_0x31646d[_0xa55c('0x21')],_0x381d07['id']);var _0xf0e574={'ListId':_0x3998f7};var _0x2313a9=_0x5d8e5a[_0xa55c('0x23')]&&_0x5d8e5a[_0xa55c('0x23')]!=='0'?_0x5d8e5a[_0xa55c('0x23')]:_0xa55c('0x12');if(_0x5d47ff){logger[_0xa55c('0x8')](_0xa55c('0x24'),_0x31646d['uniqueid'],_0x381d07['id']);_0xf0e574[_0x2313a9]=_[_0xa55c('0x25')](_0x31646d[_0xa55c('0x15')])?_0x31646d[_0xa55c('0x26')]:_0x31646d[_0xa55c('0x16')];if(_['isNil'](_0x31646d[_0xa55c('0x15')])){_0xf0e574[_0xa55c('0x17')]=_0x31646d[_0xa55c('0x27')]&&_0x31646d[_0xa55c('0x27')]!==_0xa55c('0x28')?_0x31646d[_0xa55c('0x27')]:'Unknown';}else{_0xf0e574[_0xa55c('0x17')]=_0x31646d['destcalleridname']&&_0x31646d[_0xa55c('0x29')]!==_0xa55c('0x28')?_0x31646d[_0xa55c('0x29')]:_0xa55c('0x2a');}return BPromise['resolve']()[_0xa55c('0x1e')](cmContactRpc[_0xa55c('0x2b')](_0xf0e574))[_0xa55c('0x1e')](function(_0x20da31){_0xe6d826=_0x20da31;_0x508342[_0xa55c('0x2c')](_0x20da31);if(_0xe6d826){logger[_0xa55c('0x8')](_0xa55c('0x2d'),_0x31646d[_0xa55c('0x21')],_0x381d07['id'],_0xe6d826['id']);}return;});}else{logger[_0xa55c('0x8')](_0xa55c('0x2e'),_0x31646d[_0xa55c('0x21')],_0x381d07['id']);_0xf0e574[_0x2313a9]=_['isNil'](_0x31646d['routeId'])?_0x31646d[_0xa55c('0x26')]:_0x31646d[_0xa55c('0x16')];if(_['isNil'](_0x31646d[_0xa55c('0x15')])){_0xf0e574[_0xa55c('0x17')]=_0x31646d[_0xa55c('0x27')]&&_0x31646d[_0xa55c('0x27')]!==_0xa55c('0x28')?_0x31646d[_0xa55c('0x27')]:_0xa55c('0x2a');}else{_0xf0e574[_0xa55c('0x17')]=_0x31646d[_0xa55c('0x29')]&&_0x31646d['destcalleridname']!=='<unknown>'?_0x31646d['destcalleridname']:_0xa55c('0x2a');}_0xe6d826=_0xf0e574;_0x508342[_0xa55c('0x2c')](_0xf0e574);return;}}})[_0xa55c('0x1e')](function(){if(_0x20c76a){emit(_0x31646d['uniqueid'],_0x381d07,util[_0xa55c('0x2f')]('user:%s',_0x20c76a[_0xa55c('0x30')]),util['format'](_0xa55c('0x31'),_0x5d8e5a[_0xa55c('0x32')][_0xa55c('0x33')]()),{'evt':_['merge'](_0x31646d,{'autoCreate':_0x5d47ff}),'contact':_0xe6d826===undefined?{}:_0xe6d826,'contacts':_0x508342[_0xa55c('0x20')]===0x0?undefined:_0x508342});}});};