Built motion from commit (unavailable).|2.5.9
[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 _0x4f6b=['then','getContacts','info','uniqueid','[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]','[CM][%s][%s]\x20Contact\x20not\x20found','data4','isNil','calleridnum','routeId','calleridname','<unknown>','destcalleridname','Unknown','createContact','[CM][%s][%s]\x20Contact\x20created:%s','[CM][%s][%s]\x20Autocreate\x20disabled','name','format','trigger:%s','action','merge','lodash','bluebird','util','../../../../config/environment','../../../../config/logger','../../rpc/cmContact','redis','defaults','stringify','emit','exec','data1','data2','isEmpty','xmd-contactid2','data3','phone','$or','map','destcalleridnum','firstName','lastName','mobile','fax','ListId','createdAt','scheduledAt','resolve'];(function(_0xa1e3e3,_0x29fe0e){var _0xc980e9=function(_0x1f5adc){while(--_0x1f5adc){_0xa1e3e3['push'](_0xa1e3e3['shift']());}};_0xc980e9(++_0x29fe0e);}(_0x4f6b,0x1d8));var _0xb4f6=function(_0x422905,_0x3bce3a){_0x422905=_0x422905-0x0;var _0x33dc6c=_0x4f6b[_0x422905];return _0x33dc6c;};'use strict';var _=require(_0xb4f6('0x0'));var BPromise=require(_0xb4f6('0x1'));var Redis=require('ioredis');var util=require(_0xb4f6('0x2'));var config=require(_0xb4f6('0x3'));var logger=require(_0xb4f6('0x4'))('trigger');var cmContactRpc=require(_0xb4f6('0x5'));config[_0xb4f6('0x6')]=_[_0xb4f6('0x7')](config[_0xb4f6('0x6')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xb4f6('0x6')]));function emit(_0x56d78a,_0x5bbbf4,_0x4e74da,_0x284bf8,_0x11481f){logger['info']('[CM][%s][%s]',_0x56d78a,_0x5bbbf4['id'],_0x4e74da,_0x284bf8,JSON[_0xb4f6('0x8')](_0x11481f));io['to'](_0x4e74da)[_0xb4f6('0x9')](_0x284bf8,_0x11481f);}exports[_0xb4f6('0xa')]=function(_0x180715,_0x190b92,_0x5dc43e,_0x1bfad0){var _0x4f7c8e,_0x2c70b3;var _0x3e57d2={};var _0x27736e=Number(_0x5dc43e[_0xb4f6('0xb')]);var _0x49ccd8=_0x5dc43e[_0xb4f6('0xc')]?Boolean(Number(_0x5dc43e[_0xb4f6('0xc')])):![];if(_0x1bfad0['xmd-contactid2']&&!_[_0xb4f6('0xd')](_0x1bfad0['xmd-contactid2']))_0x3e57d2['id']=_0x1bfad0[_0xb4f6('0xe')];if(!_0x3e57d2['id']){_0x3e57d2['ListId']=_0x27736e;var _0x512219=_0x5dc43e[_0xb4f6('0xf')]&&_0x5dc43e[_0xb4f6('0xf')]!=='0'?_0x5dc43e[_0xb4f6('0xf')]['split'](','):[_0xb4f6('0x10')];_0x3e57d2[_0xb4f6('0x11')]=_[_0xb4f6('0x12')](_0x512219,function(_0x2bdab6){var _0x424de3={};_0x424de3[_0x2bdab6]=_0x1bfad0['routeId']?_0x1bfad0[_0xb4f6('0x13')]:_0x1bfad0['calleridnum'];return _0x424de3;});}var _0x21f2f6=['id',_0xb4f6('0x14'),_0xb4f6('0x15'),_0xb4f6('0x10'),_0xb4f6('0x16'),_0xb4f6('0x17'),_0xb4f6('0x18'),_0xb4f6('0x19'),_0xb4f6('0x1a'),'updatedAt'];var _0x2391c9=_['union'](_0x21f2f6,_0x512219);BPromise[_0xb4f6('0x1b')]()[_0xb4f6('0x1c')](cmContactRpc[_0xb4f6('0x1d')]({'attributes':_0x2391c9,'where':_0x3e57d2}))['then'](function(_0x5035ed){_0x2c70b3=_0x5035ed;if(!_['isEmpty'](_0x2c70b3)){if(_0x2c70b3['length']===0x1){_0x4f7c8e=_0x2c70b3[0x0];logger[_0xb4f6('0x1e')]('[CM][%s][%s]\x20Contact\x20found:%s',_0x1bfad0[_0xb4f6('0x1f')],_0x190b92['id'],_0x4f7c8e['id']);}else{logger[_0xb4f6('0x1e')](_0xb4f6('0x20'),_0x1bfad0[_0xb4f6('0x1f')],_0x190b92['id'],_[_0xb4f6('0x12')](_0x2c70b3,'id')['join'](','));}return;}else{logger[_0xb4f6('0x1e')](_0xb4f6('0x21'),_0x1bfad0[_0xb4f6('0x1f')],_0x190b92['id']);if(_0x49ccd8){logger[_0xb4f6('0x1e')]('[CM][%s][%s]\x20Autocreate\x20enabled',_0x1bfad0[_0xb4f6('0x1f')],_0x190b92['id']);var _0x1955f5=_0x5dc43e[_0xb4f6('0x22')]&&_0x5dc43e[_0xb4f6('0x22')]!=='0'?_0x5dc43e[_0xb4f6('0x22')]:_0xb4f6('0x10');var _0x2a7841={'ListId':_0x27736e};_0x2a7841[_0x1955f5]=_[_0xb4f6('0x23')](_0x1bfad0['routeId'])?_0x1bfad0[_0xb4f6('0x24')]:_0x1bfad0['destcalleridnum'];if(_[_0xb4f6('0x23')](_0x1bfad0[_0xb4f6('0x25')])){_0x2a7841[_0xb4f6('0x14')]=_0x1bfad0[_0xb4f6('0x26')]&&_0x1bfad0['calleridname']!==_0xb4f6('0x27')?_0x1bfad0[_0xb4f6('0x26')]:'Unknown';}else{_0x2a7841[_0xb4f6('0x14')]=_0x1bfad0[_0xb4f6('0x28')]&&_0x1bfad0['destcalleridname']!==_0xb4f6('0x27')?_0x1bfad0[_0xb4f6('0x28')]:_0xb4f6('0x29');}return BPromise['resolve']()[_0xb4f6('0x1c')](cmContactRpc[_0xb4f6('0x2a')](_0x2a7841))[_0xb4f6('0x1c')](function(_0x45d139){_0x4f7c8e=_0x45d139;if(_0x4f7c8e){logger[_0xb4f6('0x1e')](_0xb4f6('0x2b'),_0x1bfad0['uniqueid'],_0x190b92['id'],_0x4f7c8e['id']);}return;});}else{logger[_0xb4f6('0x1e')](_0xb4f6('0x2c'),_0x1bfad0[_0xb4f6('0x1f')],_0x190b92['id']);return;}}})[_0xb4f6('0x1c')](function(){if(_0x180715){emit(_0x1bfad0[_0xb4f6('0x1f')],_0x190b92,util['format']('user:%s',_0x180715[_0xb4f6('0x2d')]),util[_0xb4f6('0x2e')](_0xb4f6('0x2f'),_0x5dc43e[_0xb4f6('0x30')]['toLowerCase']()),{'evt':_[_0xb4f6('0x31')](_0x1bfad0,{'autoCreate':_0x49ccd8}),'contact':_0x4f7c8e,'contacts':!_0x4f7c8e?_0x2c70b3:undefined});}});};