b58df28e118ee56b51d19d0bcde3867a95e47cf9
[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 _0x0d94=['merge','bluebird','ioredis','../../../../config/environment','trigger','redis','defaults','localhost','socket.io-emitter','info','[CM][%s][%s]','stringify','emit','data1','data2','isNil','data5','xmd-contactid','ListId','data3','split','phone','$or','map','calleridnum','routeId','destcalleridnum','lastName','mobile','fax','createdAt','scheduledAt','updatedAt','resolve','then','isEmpty','length','[CM][%s][%s]\x20Contact\x20found:%s','uniqueid','[CM][%s][%s]\x20Contact\x20not\x20found','data4','[CM][%s][%s]\x20Autocreate\x20enabled','firstName','calleridname','<unknown>','destcalleridname','Unknown','createContact','[CM][%s][%s]\x20Contact\x20created:%s','[CM][%s][%s]\x20Autocreate\x20disabled','push','format','user:%s','name','trigger:%s','action','toLowerCase'];(function(_0x44216d,_0x4938a7){var _0xeca523=function(_0x11faf1){while(--_0x11faf1){_0x44216d['push'](_0x44216d['shift']());}};_0xeca523(++_0x4938a7);}(_0x0d94,0x11e));var _0x40d9=function(_0xa94a3e,_0x55e44e){_0xa94a3e=_0xa94a3e-0x0;var _0x5ba01e=_0x0d94[_0xa94a3e];return _0x5ba01e;};'use strict';var _=require('lodash');var BPromise=require(_0x40d9('0x0'));var Redis=require(_0x40d9('0x1'));var util=require('util');var config=require(_0x40d9('0x2'));var logger=require('../../../../config/logger')(_0x40d9('0x3'));var cmContactRpc=require('../../rpc/cmContact');config[_0x40d9('0x4')]=_[_0x40d9('0x5')](config['redis'],{'host':_0x40d9('0x6'),'port':0x18eb});var io=require(_0x40d9('0x7'))(new Redis(config[_0x40d9('0x4')]));function emit(_0x2d01be,_0x5728ad,_0x3b270a,_0x2081a8,_0x4fc2ff){logger[_0x40d9('0x8')](_0x40d9('0x9'),_0x2d01be,_0x5728ad['id'],_0x3b270a,_0x2081a8,JSON[_0x40d9('0xa')](_0x4fc2ff));io['to'](_0x3b270a)[_0x40d9('0xb')](_0x2081a8,_0x4fc2ff);}exports['exec']=function(_0x5cb49f,_0x45acda,_0x5eb060,_0x41c28c){var _0x4186e4,_0x39438c;var _0x5d450e={};var _0xfdcdbe;var _0x29a7bf=Number(_0x5eb060[_0x40d9('0xc')]);var _0x1f203f=_0x5eb060['data2']?Boolean(Number(_0x5eb060[_0x40d9('0xd')])):![];var _0x9618c4;var _0x28f3db=![];if(!_[_0x40d9('0xe')](_0x5eb060[_0x40d9('0xf')])){if(_0x5eb060[_0x40d9('0xf')]=='1')_0x28f3db=!![];}if(!_0x28f3db){if(_0x41c28c[_0x40d9('0x10')]){_0x5d450e['id']=_0x41c28c[_0x40d9('0x10')];}}if(!_0x5d450e['id']){_0x5d450e[_0x40d9('0x11')]=_0x29a7bf;_0x9618c4=_0x5eb060['data3']&&_0x5eb060[_0x40d9('0x12')]!=='0'?_0x5eb060[_0x40d9('0x12')][_0x40d9('0x13')](','):[_0x40d9('0x14')];_0x5d450e[_0x40d9('0x15')]=_[_0x40d9('0x16')](_0x9618c4,function(_0x1eca6f){var _0x5a4abd={};_0x5a4abd[_0x1eca6f]=_0x41c28c['routeId']?_0x41c28c['destcalleridnum']:_0x41c28c[_0x40d9('0x17')];return _0x5a4abd;});_0xfdcdbe=_0x41c28c[_0x40d9('0x18')]?_0x41c28c[_0x40d9('0x19')]:_0x41c28c['calleridnum'];}var _0x55e762=['id','firstName',_0x40d9('0x1a'),'phone',_0x40d9('0x1b'),_0x40d9('0x1c'),_0x40d9('0x11'),_0x40d9('0x1d'),_0x40d9('0x1e'),_0x40d9('0x1f')];var _0x270c4d=_['union'](_0x55e762,_0x9618c4);BPromise[_0x40d9('0x20')]()[_0x40d9('0x21')](cmContactRpc['getContacts']({'attributes':_0x270c4d,'where':_0x5d450e,'phone':_0xfdcdbe}))[_0x40d9('0x21')](function(_0x5a34c7){_0x39438c=_0x5a34c7;if(!_[_0x40d9('0x22')](_0x39438c)){if(_0x39438c[_0x40d9('0x23')]===0x1){_0x4186e4=_0x39438c[0x0];logger[_0x40d9('0x8')](_0x40d9('0x24'),_0x41c28c[_0x40d9('0x25')],_0x45acda['id'],_0x4186e4['id']);}else{logger[_0x40d9('0x8')]('[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]',_0x41c28c['uniqueid'],_0x45acda['id'],_[_0x40d9('0x16')](_0x39438c,'id')['join'](','));}return;}else{logger['info'](_0x40d9('0x26'),_0x41c28c[_0x40d9('0x25')],_0x45acda['id']);var _0x159c8f={'ListId':_0x29a7bf};var _0x509d15=_0x5eb060[_0x40d9('0x27')]&&_0x5eb060[_0x40d9('0x27')]!=='0'?_0x5eb060['data4']:_0x40d9('0x14');if(_0x1f203f){logger[_0x40d9('0x8')](_0x40d9('0x28'),_0x41c28c[_0x40d9('0x25')],_0x45acda['id']);_0x159c8f[_0x509d15]=_[_0x40d9('0xe')](_0x41c28c[_0x40d9('0x18')])?_0x41c28c[_0x40d9('0x17')]:_0x41c28c[_0x40d9('0x19')];if(_[_0x40d9('0xe')](_0x41c28c[_0x40d9('0x18')])){_0x159c8f[_0x40d9('0x29')]=_0x41c28c[_0x40d9('0x2a')]&&_0x41c28c[_0x40d9('0x2a')]!==_0x40d9('0x2b')?_0x41c28c[_0x40d9('0x2a')]:'Unknown';}else{_0x159c8f[_0x40d9('0x29')]=_0x41c28c[_0x40d9('0x2c')]&&_0x41c28c[_0x40d9('0x2c')]!=='<unknown>'?_0x41c28c['destcalleridname']:_0x40d9('0x2d');}return BPromise[_0x40d9('0x20')]()[_0x40d9('0x21')](cmContactRpc[_0x40d9('0x2e')](_0x159c8f))['then'](function(_0x1e04cb){_0x4186e4=_0x1e04cb;_0x39438c['push'](_0x1e04cb);if(_0x4186e4){logger['info'](_0x40d9('0x2f'),_0x41c28c[_0x40d9('0x25')],_0x45acda['id'],_0x4186e4['id']);}return;});}else{logger[_0x40d9('0x8')](_0x40d9('0x30'),_0x41c28c[_0x40d9('0x25')],_0x45acda['id']);_0x159c8f[_0x509d15]=_[_0x40d9('0xe')](_0x41c28c[_0x40d9('0x18')])?_0x41c28c[_0x40d9('0x17')]:_0x41c28c[_0x40d9('0x19')];if(_[_0x40d9('0xe')](_0x41c28c[_0x40d9('0x18')])){_0x159c8f[_0x40d9('0x29')]=_0x41c28c[_0x40d9('0x2a')]&&_0x41c28c[_0x40d9('0x2a')]!=='<unknown>'?_0x41c28c['calleridname']:_0x40d9('0x2d');}else{_0x159c8f[_0x40d9('0x29')]=_0x41c28c[_0x40d9('0x2c')]&&_0x41c28c[_0x40d9('0x2c')]!==_0x40d9('0x2b')?_0x41c28c[_0x40d9('0x2c')]:_0x40d9('0x2d');}_0x4186e4=_0x159c8f;_0x39438c[_0x40d9('0x31')](_0x159c8f);return;}}})[_0x40d9('0x21')](function(){if(_0x5cb49f){emit(_0x41c28c['uniqueid'],_0x45acda,util[_0x40d9('0x32')](_0x40d9('0x33'),_0x5cb49f[_0x40d9('0x34')]),util[_0x40d9('0x32')](_0x40d9('0x35'),_0x5eb060[_0x40d9('0x36')][_0x40d9('0x37')]()),{'evt':_[_0x40d9('0x38')](_0x41c28c,{'autoCreate':_0x1f203f}),'contact':_0x4186e4===undefined?{}:_0x4186e4,'contacts':_0x39438c['length']===0x0?undefined:_0x39438c});}});};