Built motion from commit b0a9a629.|2.6.33
[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 _0x7fe2=['xmd-contactid','ListId','data3','split','phone','$or','destcalleridnum','calleridnum','lastName','mobile','fax','createdAt','scheduledAt','updatedAt','resolve','isEmpty','info','[CM][%s][%s]\x20Contact\x20found:%s','uniqueid','[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]','map','[CM][%s][%s]\x20Contact\x20not\x20found','data4','[CM][%s][%s]\x20Autocreate\x20enabled','routeId','firstName','calleridname','Unknown','destcalleridname','<unknown>','then','createContact','push','[CM][%s][%s]\x20Contact\x20created:%s','format','user:%s','name','trigger:%s','action','toLowerCase','merge','length','lodash','bluebird','util','trigger','../../rpc/cmContact','redis','[CM][%s][%s]','stringify','exec','data2','isNil','data5'];(function(_0x3f657e,_0xef58b1){var _0x36b9be=function(_0x384907){while(--_0x384907){_0x3f657e['push'](_0x3f657e['shift']());}};_0x36b9be(++_0xef58b1);}(_0x7fe2,0x96));var _0x27fe=function(_0x146a85,_0x529b52){_0x146a85=_0x146a85-0x0;var _0x1b59bf=_0x7fe2[_0x146a85];return _0x1b59bf;};'use strict';var _=require(_0x27fe('0x0'));var BPromise=require(_0x27fe('0x1'));var Redis=require('ioredis');var util=require(_0x27fe('0x2'));var config=require('../../../../config/environment');var logger=require('../../../../config/logger')(_0x27fe('0x3'));var cmContactRpc=require(_0x27fe('0x4'));config[_0x27fe('0x5')]=_['defaults'](config[_0x27fe('0x5')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x27fe('0x5')]));function emit(_0xc91e9d,_0x5ac6c2,_0x1ecaa4,_0x3f8411,_0x4b9a90){logger['info'](_0x27fe('0x6'),_0xc91e9d,_0x5ac6c2['id'],_0x1ecaa4,_0x3f8411,JSON[_0x27fe('0x7')](_0x4b9a90));io['to'](_0x1ecaa4)['emit'](_0x3f8411,_0x4b9a90);}exports[_0x27fe('0x8')]=function(_0xd991e9,_0x5ef130,_0x1f0956,_0x51d5c8){var _0x3ce7d0,_0x48bf1e;var _0x49bbde={};var _0x52f6a5;var _0x5cdc58=Number(_0x1f0956['data1']);var _0x23cd2f=_0x1f0956[_0x27fe('0x9')]?Boolean(Number(_0x1f0956['data2'])):![];var _0x1de7dd;var _0x25e75f=![];if(!_[_0x27fe('0xa')](_0x1f0956[_0x27fe('0xb')])){if(_0x1f0956[_0x27fe('0xb')]=='1')_0x25e75f=!![];}if(!_0x25e75f){if(_0x51d5c8[_0x27fe('0xc')]){_0x49bbde['id']=_0x51d5c8[_0x27fe('0xc')];}}if(!_0x49bbde['id']){_0x49bbde[_0x27fe('0xd')]=_0x5cdc58;_0x1de7dd=_0x1f0956[_0x27fe('0xe')]&&_0x1f0956[_0x27fe('0xe')]!=='0'?_0x1f0956[_0x27fe('0xe')][_0x27fe('0xf')](','):[_0x27fe('0x10')];_0x49bbde[_0x27fe('0x11')]=_['map'](_0x1de7dd,function(_0x31e71c){var _0x54fcf5={};_0x54fcf5[_0x31e71c]=_0x51d5c8['routeId']?_0x51d5c8[_0x27fe('0x12')]:_0x51d5c8['calleridnum'];return _0x54fcf5;});_0x52f6a5=_0x51d5c8['routeId']?_0x51d5c8[_0x27fe('0x12')]:_0x51d5c8[_0x27fe('0x13')];}var _0x134c82=['id','firstName',_0x27fe('0x14'),_0x27fe('0x10'),_0x27fe('0x15'),_0x27fe('0x16'),_0x27fe('0xd'),_0x27fe('0x17'),_0x27fe('0x18'),_0x27fe('0x19')];var _0x1f249f=_['union'](_0x134c82,_0x1de7dd);BPromise[_0x27fe('0x1a')]()['then'](cmContactRpc['getContacts']({'attributes':_0x1f249f,'where':_0x49bbde,'phone':_0x52f6a5}))['then'](function(_0x2d161b){_0x48bf1e=_0x2d161b;if(!_[_0x27fe('0x1b')](_0x48bf1e)){if(_0x48bf1e['length']===0x1){_0x3ce7d0=_0x48bf1e[0x0];logger[_0x27fe('0x1c')](_0x27fe('0x1d'),_0x51d5c8[_0x27fe('0x1e')],_0x5ef130['id'],_0x3ce7d0['id']);}else{logger['info'](_0x27fe('0x1f'),_0x51d5c8[_0x27fe('0x1e')],_0x5ef130['id'],_[_0x27fe('0x20')](_0x48bf1e,'id')['join'](','));}return;}else{logger[_0x27fe('0x1c')](_0x27fe('0x21'),_0x51d5c8[_0x27fe('0x1e')],_0x5ef130['id']);var _0x35b8e7={'ListId':_0x5cdc58};var _0x59d10b=_0x1f0956[_0x27fe('0x22')]&&_0x1f0956[_0x27fe('0x22')]!=='0'?_0x1f0956[_0x27fe('0x22')]:_0x27fe('0x10');if(_0x23cd2f){logger[_0x27fe('0x1c')](_0x27fe('0x23'),_0x51d5c8[_0x27fe('0x1e')],_0x5ef130['id']);_0x35b8e7[_0x59d10b]=_['isNil'](_0x51d5c8[_0x27fe('0x24')])?_0x51d5c8[_0x27fe('0x13')]:_0x51d5c8[_0x27fe('0x12')];if(_[_0x27fe('0xa')](_0x51d5c8[_0x27fe('0x24')])){_0x35b8e7[_0x27fe('0x25')]=_0x51d5c8[_0x27fe('0x26')]&&_0x51d5c8[_0x27fe('0x26')]!=='<unknown>'?_0x51d5c8['calleridname']:_0x27fe('0x27');}else{_0x35b8e7[_0x27fe('0x25')]=_0x51d5c8['destcalleridname']&&_0x51d5c8[_0x27fe('0x28')]!==_0x27fe('0x29')?_0x51d5c8[_0x27fe('0x28')]:'Unknown';}return BPromise[_0x27fe('0x1a')]()[_0x27fe('0x2a')](cmContactRpc[_0x27fe('0x2b')](_0x35b8e7))[_0x27fe('0x2a')](function(_0xea86fb){_0x3ce7d0=_0xea86fb;_0x48bf1e[_0x27fe('0x2c')](_0xea86fb);if(_0x3ce7d0){logger[_0x27fe('0x1c')](_0x27fe('0x2d'),_0x51d5c8[_0x27fe('0x1e')],_0x5ef130['id'],_0x3ce7d0['id']);}return;});}else{logger[_0x27fe('0x1c')]('[CM][%s][%s]\x20Autocreate\x20disabled',_0x51d5c8[_0x27fe('0x1e')],_0x5ef130['id']);_0x35b8e7[_0x59d10b]=_[_0x27fe('0xa')](_0x51d5c8[_0x27fe('0x24')])?_0x51d5c8[_0x27fe('0x13')]:_0x51d5c8[_0x27fe('0x12')];if(_[_0x27fe('0xa')](_0x51d5c8[_0x27fe('0x24')])){_0x35b8e7[_0x27fe('0x25')]=_0x51d5c8['calleridname']&&_0x51d5c8[_0x27fe('0x26')]!==_0x27fe('0x29')?_0x51d5c8[_0x27fe('0x26')]:_0x27fe('0x27');}else{_0x35b8e7['firstName']=_0x51d5c8[_0x27fe('0x28')]&&_0x51d5c8[_0x27fe('0x28')]!==_0x27fe('0x29')?_0x51d5c8[_0x27fe('0x28')]:_0x27fe('0x27');}_0x3ce7d0=_0x35b8e7;_0x48bf1e[_0x27fe('0x2c')](_0x35b8e7);return;}}})['then'](function(){if(_0xd991e9){emit(_0x51d5c8[_0x27fe('0x1e')],_0x5ef130,util[_0x27fe('0x2e')](_0x27fe('0x2f'),_0xd991e9[_0x27fe('0x30')]),util[_0x27fe('0x2e')](_0x27fe('0x31'),_0x1f0956[_0x27fe('0x32')][_0x27fe('0x33')]()),{'evt':_[_0x27fe('0x34')](_0x51d5c8,{'autoCreate':_0x23cd2f}),'contact':_0x3ce7d0===undefined?{}:_0x3ce7d0,'contacts':_0x48bf1e[_0x27fe('0x35')]===0x0?undefined:_0x48bf1e});}});};