80092b54220b939f99f7a6397923dca6c6b2b87b
[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 _0xd417=['<unknown>','Unknown','destcalleridname','resolve','push','[CM][%s][%s]\x20Contact\x20created:%s','format','trigger:%s','action','merge','length','lodash','bluebird','ioredis','util','../../../../config/environment','../../../../config/logger','trigger','redis','defaults','localhost','socket.io-emitter','info','[CM][%s][%s]','stringify','emit','exec','data2','xmd-contactid','ListId','data3','split','phone','$or','map','routeId','calleridnum','firstName','fax','createdAt','scheduledAt','updatedAt','then','getContacts','isEmpty','[CM][%s][%s]\x20Contact\x20found:%s','uniqueid','[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]','[CM][%s][%s]\x20Contact\x20not\x20found','data4','isNil','destcalleridnum','calleridname'];(function(_0x561a28,_0x3484f3){var _0x24ad35=function(_0x362d86){while(--_0x362d86){_0x561a28['push'](_0x561a28['shift']());}};_0x24ad35(++_0x3484f3);}(_0xd417,0x114));var _0x7d41=function(_0x227f46,_0x402f0c){_0x227f46=_0x227f46-0x0;var _0x53881c=_0xd417[_0x227f46];return _0x53881c;};'use strict';var _=require(_0x7d41('0x0'));var BPromise=require(_0x7d41('0x1'));var Redis=require(_0x7d41('0x2'));var util=require(_0x7d41('0x3'));var config=require(_0x7d41('0x4'));var logger=require(_0x7d41('0x5'))(_0x7d41('0x6'));var cmContactRpc=require('../../rpc/cmContact');config[_0x7d41('0x7')]=_[_0x7d41('0x8')](config[_0x7d41('0x7')],{'host':_0x7d41('0x9'),'port':0x18eb});var io=require(_0x7d41('0xa'))(new Redis(config[_0x7d41('0x7')]));function emit(_0x31a2e3,_0x16df33,_0x3ce0eb,_0x47554,_0x571689){logger[_0x7d41('0xb')](_0x7d41('0xc'),_0x31a2e3,_0x16df33['id'],_0x3ce0eb,_0x47554,JSON[_0x7d41('0xd')](_0x571689));io['to'](_0x3ce0eb)[_0x7d41('0xe')](_0x47554,_0x571689);}exports[_0x7d41('0xf')]=function(_0x55b104,_0xa171e3,_0x42c6eb,_0x4c2c80){var _0x47d24d,_0x4a8f23;var _0x4e331e={};var _0x19a531=Number(_0x42c6eb['data1']);var _0x5cea7c=_0x42c6eb['data2']?Boolean(Number(_0x42c6eb[_0x7d41('0x10')])):![];var _0x52a15b;if(_0x4c2c80[_0x7d41('0x11')]){_0x4e331e['id']=_0x4c2c80[_0x7d41('0x11')];}if(!_0x4e331e['id']){_0x4e331e[_0x7d41('0x12')]=_0x19a531;_0x52a15b=_0x42c6eb[_0x7d41('0x13')]&&_0x42c6eb[_0x7d41('0x13')]!=='0'?_0x42c6eb[_0x7d41('0x13')][_0x7d41('0x14')](','):[_0x7d41('0x15')];_0x4e331e[_0x7d41('0x16')]=_[_0x7d41('0x17')](_0x52a15b,function(_0xf3646b){var _0x4f159a={};_0x4f159a[_0xf3646b]=_0x4c2c80[_0x7d41('0x18')]?_0x4c2c80['destcalleridnum']:_0x4c2c80[_0x7d41('0x19')];return _0x4f159a;});}var _0x4b8335=['id',_0x7d41('0x1a'),'lastName',_0x7d41('0x15'),'mobile',_0x7d41('0x1b'),_0x7d41('0x12'),_0x7d41('0x1c'),_0x7d41('0x1d'),_0x7d41('0x1e')];var _0x2b1ccf=_['union'](_0x4b8335,_0x52a15b);BPromise['resolve']()[_0x7d41('0x1f')](cmContactRpc[_0x7d41('0x20')]({'attributes':_0x2b1ccf,'where':_0x4e331e}))[_0x7d41('0x1f')](function(_0x49d03d){_0x4a8f23=_0x49d03d;if(!_[_0x7d41('0x21')](_0x4a8f23)){if(_0x4a8f23['length']===0x1){_0x47d24d=_0x4a8f23[0x0];logger[_0x7d41('0xb')](_0x7d41('0x22'),_0x4c2c80[_0x7d41('0x23')],_0xa171e3['id'],_0x47d24d['id']);}else{logger[_0x7d41('0xb')](_0x7d41('0x24'),_0x4c2c80[_0x7d41('0x23')],_0xa171e3['id'],_[_0x7d41('0x17')](_0x4a8f23,'id')['join'](','));}return;}else{logger[_0x7d41('0xb')](_0x7d41('0x25'),_0x4c2c80[_0x7d41('0x23')],_0xa171e3['id']);var _0x14202e={'ListId':_0x19a531};var _0x1b2007=_0x42c6eb[_0x7d41('0x26')]&&_0x42c6eb[_0x7d41('0x26')]!=='0'?_0x42c6eb['data4']:_0x7d41('0x15');if(_0x5cea7c){logger[_0x7d41('0xb')]('[CM][%s][%s]\x20Autocreate\x20enabled',_0x4c2c80[_0x7d41('0x23')],_0xa171e3['id']);_0x14202e[_0x1b2007]=_[_0x7d41('0x27')](_0x4c2c80[_0x7d41('0x18')])?_0x4c2c80[_0x7d41('0x19')]:_0x4c2c80[_0x7d41('0x28')];if(_['isNil'](_0x4c2c80[_0x7d41('0x18')])){_0x14202e[_0x7d41('0x1a')]=_0x4c2c80['calleridname']&&_0x4c2c80[_0x7d41('0x29')]!==_0x7d41('0x2a')?_0x4c2c80[_0x7d41('0x29')]:_0x7d41('0x2b');}else{_0x14202e['firstName']=_0x4c2c80[_0x7d41('0x2c')]&&_0x4c2c80[_0x7d41('0x2c')]!==_0x7d41('0x2a')?_0x4c2c80['destcalleridname']:_0x7d41('0x2b');}return BPromise[_0x7d41('0x2d')]()['then'](cmContactRpc['createContact'](_0x14202e))[_0x7d41('0x1f')](function(_0x14495e){_0x47d24d=_0x14495e;_0x4a8f23[_0x7d41('0x2e')](_0x14495e);if(_0x47d24d){logger[_0x7d41('0xb')](_0x7d41('0x2f'),_0x4c2c80[_0x7d41('0x23')],_0xa171e3['id'],_0x47d24d['id']);}return;});}else{logger[_0x7d41('0xb')]('[CM][%s][%s]\x20Autocreate\x20disabled',_0x4c2c80['uniqueid'],_0xa171e3['id']);_0x14202e[_0x1b2007]=_[_0x7d41('0x27')](_0x4c2c80[_0x7d41('0x18')])?_0x4c2c80['calleridnum']:_0x4c2c80['destcalleridnum'];if(_['isNil'](_0x4c2c80[_0x7d41('0x18')])){_0x14202e[_0x7d41('0x1a')]=_0x4c2c80['calleridname']&&_0x4c2c80['calleridname']!==_0x7d41('0x2a')?_0x4c2c80[_0x7d41('0x29')]:_0x7d41('0x2b');}else{_0x14202e[_0x7d41('0x1a')]=_0x4c2c80[_0x7d41('0x2c')]&&_0x4c2c80[_0x7d41('0x2c')]!==_0x7d41('0x2a')?_0x4c2c80[_0x7d41('0x2c')]:'Unknown';}_0x47d24d=_0x14202e;_0x4a8f23[_0x7d41('0x2e')](_0x14202e);return;}}})['then'](function(){if(_0x55b104){emit(_0x4c2c80[_0x7d41('0x23')],_0xa171e3,util[_0x7d41('0x30')]('user:%s',_0x55b104['name']),util[_0x7d41('0x30')](_0x7d41('0x31'),_0x42c6eb[_0x7d41('0x32')]['toLowerCase']()),{'evt':_[_0x7d41('0x33')](_0x4c2c80,{'autoCreate':_0x5cea7c}),'contact':_0x47d24d===undefined?{}:_0x47d24d,'contacts':_0x4a8f23[_0x7d41('0x34')]===0x0?undefined:_0x4a8f23});}});};