c558f14c61869e8235461a14477e931fab48f259
[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 _0x719a=['union','resolve','then','length','[CM][%s][%s]\x20Contact\x20found:%s','[CM][%s][%s]\x20Contact\x20not\x20found','data4','[CM][%s][%s]\x20Autocreate\x20enabled','uniqueid','isNil','calleridname','destcalleridname','<unknown>','Unknown','createContact','push','[CM][%s][%s]\x20Contact\x20created:%s','format','user:%s','action','toLowerCase','merge','lodash','bluebird','ioredis','util','../../../../config/environment','../../../../config/logger','../../rpc/cmContact','defaults','socket.io-emitter','info','[CM][%s][%s]','emit','data2','data5','xmd-contactid','ListId','data3','split','$or','map','routeId','destcalleridnum','calleridnum','firstName','phone','createdAt','scheduledAt','updatedAt'];(function(_0x37a283,_0x447a6b){var _0x401082=function(_0x4212d9){while(--_0x4212d9){_0x37a283['push'](_0x37a283['shift']());}};_0x401082(++_0x447a6b);}(_0x719a,0x110));var _0xa719=function(_0x597e8e,_0x579a43){_0x597e8e=_0x597e8e-0x0;var _0x580b4e=_0x719a[_0x597e8e];return _0x580b4e;};'use strict';var _=require(_0xa719('0x0'));var BPromise=require(_0xa719('0x1'));var Redis=require(_0xa719('0x2'));var util=require(_0xa719('0x3'));var config=require(_0xa719('0x4'));var logger=require(_0xa719('0x5'))('trigger');var cmContactRpc=require(_0xa719('0x6'));config['redis']=_[_0xa719('0x7')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xa719('0x8'))(new Redis(config['redis']));function emit(_0x98faee,_0x1dfe89,_0x71c4ea,_0x14bfcd,_0x34ec6c){logger[_0xa719('0x9')](_0xa719('0xa'),_0x98faee,_0x1dfe89['id'],_0x71c4ea,_0x14bfcd,JSON['stringify'](_0x34ec6c));io['to'](_0x71c4ea)[_0xa719('0xb')](_0x14bfcd,_0x34ec6c);}exports['exec']=function(_0x30d16b,_0x7084e1,_0x1ff515,_0x283cd5){var _0x15443d,_0x2aefbf;var _0x162802={};var _0x2f6f09;var _0x570e02=Number(_0x1ff515['data1']);var _0x35f780=_0x1ff515['data2']?Boolean(Number(_0x1ff515[_0xa719('0xc')])):![];var _0x25736b;var _0x278ca4=![];if(!_['isNil'](_0x1ff515[_0xa719('0xd')])){if(_0x1ff515[_0xa719('0xd')]=='1')_0x278ca4=!![];}if(!_0x278ca4){if(_0x283cd5[_0xa719('0xe')]){_0x162802['id']=_0x283cd5[_0xa719('0xe')];}}if(!_0x162802['id']){_0x162802[_0xa719('0xf')]=_0x570e02;_0x25736b=_0x1ff515[_0xa719('0x10')]&&_0x1ff515[_0xa719('0x10')]!=='0'?_0x1ff515['data3'][_0xa719('0x11')](','):['phone'];_0x162802[_0xa719('0x12')]=_[_0xa719('0x13')](_0x25736b,function(_0x4e327b){var _0x4ce25b={};_0x4ce25b[_0x4e327b]=_0x283cd5[_0xa719('0x14')]?_0x283cd5[_0xa719('0x15')]:_0x283cd5[_0xa719('0x16')];return _0x4ce25b;});_0x2f6f09=_0x283cd5[_0xa719('0x14')]?_0x283cd5[_0xa719('0x15')]:_0x283cd5[_0xa719('0x16')];}var _0x1ce55f=['id',_0xa719('0x17'),'lastName',_0xa719('0x18'),'mobile','fax','ListId',_0xa719('0x19'),_0xa719('0x1a'),_0xa719('0x1b')];var _0x2ab8e2=_[_0xa719('0x1c')](_0x1ce55f,_0x25736b);BPromise[_0xa719('0x1d')]()[_0xa719('0x1e')](cmContactRpc['getContacts']({'attributes':_0x2ab8e2,'where':_0x162802,'phone':_0x2f6f09}))[_0xa719('0x1e')](function(_0x2c696e){_0x2aefbf=_0x2c696e;if(!_['isEmpty'](_0x2aefbf)){if(_0x2aefbf[_0xa719('0x1f')]===0x1){_0x15443d=_0x2aefbf[0x0];logger['info'](_0xa719('0x20'),_0x283cd5['uniqueid'],_0x7084e1['id'],_0x15443d['id']);}else{logger['info']('[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]',_0x283cd5['uniqueid'],_0x7084e1['id'],_[_0xa719('0x13')](_0x2aefbf,'id')['join'](','));}return;}else{logger[_0xa719('0x9')](_0xa719('0x21'),_0x283cd5['uniqueid'],_0x7084e1['id']);var _0xe46cf3={'ListId':_0x570e02};var _0x437505=_0x1ff515[_0xa719('0x22')]&&_0x1ff515[_0xa719('0x22')]!=='0'?_0x1ff515[_0xa719('0x22')]:_0xa719('0x18');if(_0x35f780){logger[_0xa719('0x9')](_0xa719('0x23'),_0x283cd5[_0xa719('0x24')],_0x7084e1['id']);_0xe46cf3[_0x437505]=_[_0xa719('0x25')](_0x283cd5[_0xa719('0x14')])?_0x283cd5[_0xa719('0x16')]:_0x283cd5['destcalleridnum'];if(_['isNil'](_0x283cd5[_0xa719('0x14')])){_0xe46cf3[_0xa719('0x17')]=_0x283cd5[_0xa719('0x26')]&&_0x283cd5[_0xa719('0x26')]!=='<unknown>'?_0x283cd5[_0xa719('0x26')]:'Unknown';}else{_0xe46cf3[_0xa719('0x17')]=_0x283cd5[_0xa719('0x27')]&&_0x283cd5[_0xa719('0x27')]!==_0xa719('0x28')?_0x283cd5[_0xa719('0x27')]:_0xa719('0x29');}return BPromise[_0xa719('0x1d')]()[_0xa719('0x1e')](cmContactRpc[_0xa719('0x2a')](_0xe46cf3))['then'](function(_0x21279a){_0x15443d=_0x21279a;_0x2aefbf[_0xa719('0x2b')](_0x21279a);if(_0x15443d){logger[_0xa719('0x9')](_0xa719('0x2c'),_0x283cd5[_0xa719('0x24')],_0x7084e1['id'],_0x15443d['id']);}return;});}else{logger[_0xa719('0x9')]('[CM][%s][%s]\x20Autocreate\x20disabled',_0x283cd5['uniqueid'],_0x7084e1['id']);_0xe46cf3[_0x437505]=_[_0xa719('0x25')](_0x283cd5[_0xa719('0x14')])?_0x283cd5['calleridnum']:_0x283cd5[_0xa719('0x15')];if(_[_0xa719('0x25')](_0x283cd5[_0xa719('0x14')])){_0xe46cf3[_0xa719('0x17')]=_0x283cd5[_0xa719('0x26')]&&_0x283cd5[_0xa719('0x26')]!==_0xa719('0x28')?_0x283cd5[_0xa719('0x26')]:_0xa719('0x29');}else{_0xe46cf3[_0xa719('0x17')]=_0x283cd5['destcalleridname']&&_0x283cd5['destcalleridname']!==_0xa719('0x28')?_0x283cd5['destcalleridname']:'Unknown';}_0x15443d=_0xe46cf3;_0x2aefbf[_0xa719('0x2b')](_0xe46cf3);return;}}})['then'](function(){if(_0x30d16b){emit(_0x283cd5[_0xa719('0x24')],_0x7084e1,util[_0xa719('0x2d')](_0xa719('0x2e'),_0x30d16b['name']),util[_0xa719('0x2d')]('trigger:%s',_0x1ff515[_0xa719('0x2f')][_0xa719('0x30')]()),{'evt':_[_0xa719('0x31')](_0x283cd5,{'autoCreate':_0x35f780}),'contact':_0x15443d===undefined?{}:_0x15443d,'contacts':_0x2aefbf['length']===0x0?undefined:_0x2aefbf});}});};