0dc907a87af8881458b17438c2751857328c5d3e
[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 _0xb42a=['localhost','socket.io-emitter','info','[CM][%s][%s]','stringify','emit','exec','data2','xmd-contactid','ListId','data3','phone','map','routeId','destcalleridnum','calleridnum','firstName','lastName','mobile','fax','createdAt','scheduledAt','updatedAt','resolve','getContacts','isEmpty','[CM][%s][%s]\x20Contact\x20found:%s','uniqueid','join','data4','isNil','calleridname','<unknown>','Unknown','destcalleridname','push','[CM][%s][%s]\x20Contact\x20created:%s','[CM][%s][%s]\x20Autocreate\x20disabled','format','user:%s','name','trigger:%s','action','toLowerCase','length','lodash','bluebird','ioredis','../../../../config/environment','../../../../config/logger','redis','defaults'];(function(_0xa3e0f7,_0x1b06db){var _0x4ce604=function(_0x29df1e){while(--_0x29df1e){_0xa3e0f7['push'](_0xa3e0f7['shift']());}};_0x4ce604(++_0x1b06db);}(_0xb42a,0x95));var _0xab42=function(_0x3ad4c2,_0x369557){_0x3ad4c2=_0x3ad4c2-0x0;var _0x518639=_0xb42a[_0x3ad4c2];return _0x518639;};'use strict';var _=require(_0xab42('0x0'));var BPromise=require(_0xab42('0x1'));var Redis=require(_0xab42('0x2'));var util=require('util');var config=require(_0xab42('0x3'));var logger=require(_0xab42('0x4'))('trigger');var cmContactRpc=require('../../rpc/cmContact');config[_0xab42('0x5')]=_[_0xab42('0x6')](config[_0xab42('0x5')],{'host':_0xab42('0x7'),'port':0x18eb});var io=require(_0xab42('0x8'))(new Redis(config[_0xab42('0x5')]));function emit(_0x4b0200,_0x2047ee,_0xbc873e,_0x1bacdd,_0x3b762c){logger[_0xab42('0x9')](_0xab42('0xa'),_0x4b0200,_0x2047ee['id'],_0xbc873e,_0x1bacdd,JSON[_0xab42('0xb')](_0x3b762c));io['to'](_0xbc873e)[_0xab42('0xc')](_0x1bacdd,_0x3b762c);}exports[_0xab42('0xd')]=function(_0x11dd6e,_0x544f7f,_0x13c400,_0x4a7285){var _0x3f021c,_0x18c656;var _0x19fd46={};var _0xc7dc26=Number(_0x13c400['data1']);var _0x4d67db=_0x13c400[_0xab42('0xe')]?Boolean(Number(_0x13c400[_0xab42('0xe')])):![];var _0x589b15;if(_0x4a7285[_0xab42('0xf')]){_0x19fd46['id']=_0x4a7285[_0xab42('0xf')];}if(!_0x19fd46['id']){_0x19fd46[_0xab42('0x10')]=_0xc7dc26;_0x589b15=_0x13c400['data3']&&_0x13c400[_0xab42('0x11')]!=='0'?_0x13c400[_0xab42('0x11')]['split'](','):[_0xab42('0x12')];_0x19fd46['$or']=_[_0xab42('0x13')](_0x589b15,function(_0x28d927){var _0x5417ea={};_0x5417ea[_0x28d927]=_0x4a7285[_0xab42('0x14')]?_0x4a7285[_0xab42('0x15')]:_0x4a7285[_0xab42('0x16')];return _0x5417ea;});}var _0x1f8231=['id',_0xab42('0x17'),_0xab42('0x18'),_0xab42('0x12'),_0xab42('0x19'),_0xab42('0x1a'),_0xab42('0x10'),_0xab42('0x1b'),_0xab42('0x1c'),_0xab42('0x1d')];var _0x1ec348=_['union'](_0x1f8231,_0x589b15);BPromise[_0xab42('0x1e')]()['then'](cmContactRpc[_0xab42('0x1f')]({'attributes':_0x1ec348,'where':_0x19fd46}))['then'](function(_0x474c87){_0x18c656=_0x474c87;if(!_[_0xab42('0x20')](_0x18c656)){if(_0x18c656['length']===0x1){_0x3f021c=_0x18c656[0x0];logger[_0xab42('0x9')](_0xab42('0x21'),_0x4a7285['uniqueid'],_0x544f7f['id'],_0x3f021c['id']);}else{logger[_0xab42('0x9')]('[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]',_0x4a7285[_0xab42('0x22')],_0x544f7f['id'],_[_0xab42('0x13')](_0x18c656,'id')[_0xab42('0x23')](','));}return;}else{logger[_0xab42('0x9')]('[CM][%s][%s]\x20Contact\x20not\x20found',_0x4a7285[_0xab42('0x22')],_0x544f7f['id']);var _0x412631={'ListId':_0xc7dc26};var _0x334a16=_0x13c400[_0xab42('0x24')]&&_0x13c400[_0xab42('0x24')]!=='0'?_0x13c400[_0xab42('0x24')]:_0xab42('0x12');if(_0x4d67db){logger['info']('[CM][%s][%s]\x20Autocreate\x20enabled',_0x4a7285[_0xab42('0x22')],_0x544f7f['id']);_0x412631[_0x334a16]=_[_0xab42('0x25')](_0x4a7285['routeId'])?_0x4a7285[_0xab42('0x16')]:_0x4a7285[_0xab42('0x15')];if(_[_0xab42('0x25')](_0x4a7285[_0xab42('0x14')])){_0x412631[_0xab42('0x17')]=_0x4a7285[_0xab42('0x26')]&&_0x4a7285[_0xab42('0x26')]!==_0xab42('0x27')?_0x4a7285[_0xab42('0x26')]:_0xab42('0x28');}else{_0x412631[_0xab42('0x17')]=_0x4a7285['destcalleridname']&&_0x4a7285[_0xab42('0x29')]!==_0xab42('0x27')?_0x4a7285['destcalleridname']:_0xab42('0x28');}return BPromise[_0xab42('0x1e')]()['then'](cmContactRpc['createContact'](_0x412631))['then'](function(_0xd076cf){_0x3f021c=_0xd076cf;_0x18c656[_0xab42('0x2a')](_0xd076cf);if(_0x3f021c){logger[_0xab42('0x9')](_0xab42('0x2b'),_0x4a7285['uniqueid'],_0x544f7f['id'],_0x3f021c['id']);}return;});}else{logger['info'](_0xab42('0x2c'),_0x4a7285[_0xab42('0x22')],_0x544f7f['id']);_0x412631[_0x334a16]=_['isNil'](_0x4a7285['routeId'])?_0x4a7285[_0xab42('0x16')]:_0x4a7285[_0xab42('0x15')];if(_[_0xab42('0x25')](_0x4a7285['routeId'])){_0x412631[_0xab42('0x17')]=_0x4a7285['calleridname']&&_0x4a7285['calleridname']!==_0xab42('0x27')?_0x4a7285[_0xab42('0x26')]:_0xab42('0x28');}else{_0x412631[_0xab42('0x17')]=_0x4a7285[_0xab42('0x29')]&&_0x4a7285['destcalleridname']!==_0xab42('0x27')?_0x4a7285[_0xab42('0x29')]:'Unknown';}_0x3f021c=_0x412631;_0x18c656[_0xab42('0x2a')](_0x412631);return;}}})['then'](function(){if(_0x11dd6e){emit(_0x4a7285[_0xab42('0x22')],_0x544f7f,util[_0xab42('0x2d')](_0xab42('0x2e'),_0x11dd6e[_0xab42('0x2f')]),util['format'](_0xab42('0x30'),_0x13c400[_0xab42('0x31')][_0xab42('0x32')]()),{'evt':_['merge'](_0x4a7285,{'autoCreate':_0x4d67db}),'contact':_0x3f021c===undefined?{}:_0x3f021c,'contacts':_0x18c656[_0xab42('0x33')]===0x0?undefined:_0x18c656});}});};