cf5f5c27d6df2d9fbd20e64bc9df1ad72c2dab15
[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 _0xb2e2=['phone','map','routeId','firstName','lastName','mobile','fax','createdAt','scheduledAt','updatedAt','union','then','getContacts','length','[CM][%s][%s]\x20Contact\x20found:%s','uniqueid','[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]','join','[CM][%s][%s]\x20Contact\x20not\x20found','data4','isNil','calleridnum','calleridname','<unknown>','Unknown','destcalleridname','resolve','createContact','[CM][%s][%s]\x20Contact\x20created:%s','[CM][%s][%s]\x20Autocreate\x20disabled','format','user:%s','name','trigger:%s','action','lodash','bluebird','ioredis','../../../../config/environment','../../../../config/logger','trigger','defaults','localhost','socket.io-emitter','redis','info','[CM][%s][%s]','stringify','exec','data1','data2','xmd-contactid2','isEmpty','ListId','data3','split'];(function(_0x4faa63,_0x5ab895){var _0x3a5139=function(_0x421ef5){while(--_0x421ef5){_0x4faa63['push'](_0x4faa63['shift']());}};_0x3a5139(++_0x5ab895);}(_0xb2e2,0x173));var _0x2b2e=function(_0x149660,_0x5daf6b){_0x149660=_0x149660-0x0;var _0x37871f=_0xb2e2[_0x149660];return _0x37871f;};'use strict';var _=require(_0x2b2e('0x0'));var BPromise=require(_0x2b2e('0x1'));var Redis=require(_0x2b2e('0x2'));var util=require('util');var config=require(_0x2b2e('0x3'));var logger=require(_0x2b2e('0x4'))(_0x2b2e('0x5'));var cmContactRpc=require('../../rpc/cmContact');config['redis']=_[_0x2b2e('0x6')](config['redis'],{'host':_0x2b2e('0x7'),'port':0x18eb});var io=require(_0x2b2e('0x8'))(new Redis(config[_0x2b2e('0x9')]));function emit(_0x3f7529,_0x9e354a,_0x36a56e,_0x24f08b,_0x2b1d51){logger[_0x2b2e('0xa')](_0x2b2e('0xb'),_0x3f7529,_0x9e354a['id'],_0x36a56e,_0x24f08b,JSON[_0x2b2e('0xc')](_0x2b1d51));io['to'](_0x36a56e)['emit'](_0x24f08b,_0x2b1d51);}exports[_0x2b2e('0xd')]=function(_0xb9e009,_0x3c6999,_0x5bdad0,_0x27682e){var _0x548d2e,_0x5bc4a7;var _0x44c76e={};var _0x3aa2ad=Number(_0x5bdad0[_0x2b2e('0xe')]);var _0x233bec=_0x5bdad0[_0x2b2e('0xf')]?Boolean(Number(_0x5bdad0[_0x2b2e('0xf')])):![];if(_0x27682e[_0x2b2e('0x10')]&&!_[_0x2b2e('0x11')](_0x27682e[_0x2b2e('0x10')]))_0x44c76e['id']=_0x27682e['xmd-contactid2'];if(!_0x44c76e['id']){_0x44c76e[_0x2b2e('0x12')]=_0x3aa2ad;var _0x5d735a=_0x5bdad0['data3']&&_0x5bdad0[_0x2b2e('0x13')]!=='0'?_0x5bdad0[_0x2b2e('0x13')][_0x2b2e('0x14')](','):[_0x2b2e('0x15')];_0x44c76e['$or']=_[_0x2b2e('0x16')](_0x5d735a,function(_0x280e9d){var _0x308021={};_0x308021[_0x280e9d]=_0x27682e[_0x2b2e('0x17')]?_0x27682e['destcalleridnum']:_0x27682e['calleridnum'];return _0x308021;});}var _0x4ce20f=['id',_0x2b2e('0x18'),_0x2b2e('0x19'),'phone',_0x2b2e('0x1a'),_0x2b2e('0x1b'),_0x2b2e('0x12'),_0x2b2e('0x1c'),_0x2b2e('0x1d'),_0x2b2e('0x1e')];var _0x23df7a=_[_0x2b2e('0x1f')](_0x4ce20f,_0x5d735a);BPromise['resolve']()[_0x2b2e('0x20')](cmContactRpc[_0x2b2e('0x21')]({'attributes':_0x23df7a,'where':_0x44c76e}))[_0x2b2e('0x20')](function(_0x48076a){_0x5bc4a7=_0x48076a;if(!_[_0x2b2e('0x11')](_0x5bc4a7)){if(_0x5bc4a7[_0x2b2e('0x22')]===0x1){_0x548d2e=_0x5bc4a7[0x0];logger['info'](_0x2b2e('0x23'),_0x27682e[_0x2b2e('0x24')],_0x3c6999['id'],_0x548d2e['id']);}else{logger[_0x2b2e('0xa')](_0x2b2e('0x25'),_0x27682e[_0x2b2e('0x24')],_0x3c6999['id'],_[_0x2b2e('0x16')](_0x5bc4a7,'id')[_0x2b2e('0x26')](','));}return;}else{logger['info'](_0x2b2e('0x27'),_0x27682e[_0x2b2e('0x24')],_0x3c6999['id']);if(_0x233bec){logger[_0x2b2e('0xa')]('[CM][%s][%s]\x20Autocreate\x20enabled',_0x27682e[_0x2b2e('0x24')],_0x3c6999['id']);var _0x783e65=_0x5bdad0['data4']&&_0x5bdad0['data4']!=='0'?_0x5bdad0[_0x2b2e('0x28')]:'phone';var _0x4f390b={'ListId':_0x3aa2ad};_0x4f390b[_0x783e65]=_[_0x2b2e('0x29')](_0x27682e['routeId'])?_0x27682e[_0x2b2e('0x2a')]:_0x27682e['destcalleridnum'];if(_[_0x2b2e('0x29')](_0x27682e[_0x2b2e('0x17')])){_0x4f390b[_0x2b2e('0x18')]=_0x27682e[_0x2b2e('0x2b')]&&_0x27682e['calleridname']!==_0x2b2e('0x2c')?_0x27682e[_0x2b2e('0x2b')]:_0x2b2e('0x2d');}else{_0x4f390b[_0x2b2e('0x18')]=_0x27682e['destcalleridname']&&_0x27682e['destcalleridname']!==_0x2b2e('0x2c')?_0x27682e[_0x2b2e('0x2e')]:_0x2b2e('0x2d');}return BPromise[_0x2b2e('0x2f')]()[_0x2b2e('0x20')](cmContactRpc[_0x2b2e('0x30')](_0x4f390b))[_0x2b2e('0x20')](function(_0xb47bad){_0x548d2e=_0xb47bad;if(_0x548d2e){logger[_0x2b2e('0xa')](_0x2b2e('0x31'),_0x27682e['uniqueid'],_0x3c6999['id'],_0x548d2e['id']);}return;});}else{logger[_0x2b2e('0xa')](_0x2b2e('0x32'),_0x27682e[_0x2b2e('0x24')],_0x3c6999['id']);return;}}})[_0x2b2e('0x20')](function(){if(_0xb9e009){emit(_0x27682e['uniqueid'],_0x3c6999,util[_0x2b2e('0x33')](_0x2b2e('0x34'),_0xb9e009[_0x2b2e('0x35')]),util['format'](_0x2b2e('0x36'),_0x5bdad0[_0x2b2e('0x37')]['toLowerCase']()),{'evt':_['merge'](_0x27682e,{'autoCreate':_0x233bec}),'contact':_0x548d2e,'contacts':!_0x548d2e?_0x5bc4a7:undefined});}});};