Built motion from commit (unavailable).|2.5.17
[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 _0x7a0a=['user:%s','name','trigger:%s','toLowerCase','merge','ioredis','../../../../config/environment','../../../../config/logger','../../rpc/cmContact','redis','defaults','localhost','socket.io-emitter','info','[CM][%s][%s]','stringify','emit','exec','data1','data2','xmd-contactid','data3','split','phone','$or','routeId','destcalleridnum','fax','ListId','createdAt','scheduledAt','updatedAt','union','resolve','then','getContacts','isEmpty','length','[CM][%s][%s]\x20Contact\x20found:%s','uniqueid','map','join','[CM][%s][%s]\x20Contact\x20not\x20found','data4','[CM][%s][%s]\x20Autocreate\x20enabled','isNil','calleridnum','firstName','calleridname','Unknown','destcalleridname','<unknown>','createContact','push','[CM][%s][%s]\x20Autocreate\x20disabled','format'];(function(_0x11ca63,_0xea9f9c){var _0x41f1f6=function(_0xb80b69){while(--_0xb80b69){_0x11ca63['push'](_0x11ca63['shift']());}};_0x41f1f6(++_0xea9f9c);}(_0x7a0a,0xe5));var _0xa7a0=function(_0x3a97ad,_0x3d3a15){_0x3a97ad=_0x3a97ad-0x0;var _0x34af03=_0x7a0a[_0x3a97ad];return _0x34af03;};'use strict';var _=require('lodash');var BPromise=require('bluebird');var Redis=require(_0xa7a0('0x0'));var util=require('util');var config=require(_0xa7a0('0x1'));var logger=require(_0xa7a0('0x2'))('trigger');var cmContactRpc=require(_0xa7a0('0x3'));config[_0xa7a0('0x4')]=_[_0xa7a0('0x5')](config['redis'],{'host':_0xa7a0('0x6'),'port':0x18eb});var io=require(_0xa7a0('0x7'))(new Redis(config[_0xa7a0('0x4')]));function emit(_0x5791ac,_0x4c5795,_0x27636e,_0x405e3e,_0x310bad){logger[_0xa7a0('0x8')](_0xa7a0('0x9'),_0x5791ac,_0x4c5795['id'],_0x27636e,_0x405e3e,JSON[_0xa7a0('0xa')](_0x310bad));io['to'](_0x27636e)[_0xa7a0('0xb')](_0x405e3e,_0x310bad);}exports[_0xa7a0('0xc')]=function(_0x4114e3,_0x3818c6,_0x339adf,_0x55c6f4){var _0x50f380,_0x45fb1c;var _0xa1e97b={};var _0x5c0c10=Number(_0x339adf[_0xa7a0('0xd')]);var _0x173d81=_0x339adf[_0xa7a0('0xe')]?Boolean(Number(_0x339adf[_0xa7a0('0xe')])):![];var _0x571178;if(_0x55c6f4[_0xa7a0('0xf')]){_0xa1e97b['id']=_0x55c6f4[_0xa7a0('0xf')];}if(!_0xa1e97b['id']){_0xa1e97b['ListId']=_0x5c0c10;_0x571178=_0x339adf[_0xa7a0('0x10')]&&_0x339adf[_0xa7a0('0x10')]!=='0'?_0x339adf[_0xa7a0('0x10')][_0xa7a0('0x11')](','):[_0xa7a0('0x12')];_0xa1e97b[_0xa7a0('0x13')]=_['map'](_0x571178,function(_0x42df21){var _0x12ab2e={};_0x12ab2e[_0x42df21]=_0x55c6f4[_0xa7a0('0x14')]?_0x55c6f4[_0xa7a0('0x15')]:_0x55c6f4['calleridnum'];return _0x12ab2e;});}var _0x52710f=['id','firstName','lastName','phone','mobile',_0xa7a0('0x16'),_0xa7a0('0x17'),_0xa7a0('0x18'),_0xa7a0('0x19'),_0xa7a0('0x1a')];var _0x20300f=_[_0xa7a0('0x1b')](_0x52710f,_0x571178);BPromise[_0xa7a0('0x1c')]()[_0xa7a0('0x1d')](cmContactRpc[_0xa7a0('0x1e')]({'attributes':_0x20300f,'where':_0xa1e97b}))[_0xa7a0('0x1d')](function(_0x1b9fd6){_0x45fb1c=_0x1b9fd6;if(!_[_0xa7a0('0x1f')](_0x45fb1c)){if(_0x45fb1c[_0xa7a0('0x20')]===0x1){_0x50f380=_0x45fb1c[0x0];logger[_0xa7a0('0x8')](_0xa7a0('0x21'),_0x55c6f4[_0xa7a0('0x22')],_0x3818c6['id'],_0x50f380['id']);}else{logger[_0xa7a0('0x8')]('[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]',_0x55c6f4[_0xa7a0('0x22')],_0x3818c6['id'],_[_0xa7a0('0x23')](_0x45fb1c,'id')[_0xa7a0('0x24')](','));}return;}else{logger['info'](_0xa7a0('0x25'),_0x55c6f4[_0xa7a0('0x22')],_0x3818c6['id']);var _0x3deeb2={'ListId':_0x5c0c10};var _0x4ce0d0=_0x339adf[_0xa7a0('0x26')]&&_0x339adf[_0xa7a0('0x26')]!=='0'?_0x339adf[_0xa7a0('0x26')]:_0xa7a0('0x12');if(_0x173d81){logger[_0xa7a0('0x8')](_0xa7a0('0x27'),_0x55c6f4[_0xa7a0('0x22')],_0x3818c6['id']);_0x3deeb2[_0x4ce0d0]=_[_0xa7a0('0x28')](_0x55c6f4[_0xa7a0('0x14')])?_0x55c6f4[_0xa7a0('0x29')]:_0x55c6f4[_0xa7a0('0x15')];if(_[_0xa7a0('0x28')](_0x55c6f4[_0xa7a0('0x14')])){_0x3deeb2[_0xa7a0('0x2a')]=_0x55c6f4[_0xa7a0('0x2b')]&&_0x55c6f4['calleridname']!=='<unknown>'?_0x55c6f4[_0xa7a0('0x2b')]:_0xa7a0('0x2c');}else{_0x3deeb2[_0xa7a0('0x2a')]=_0x55c6f4[_0xa7a0('0x2d')]&&_0x55c6f4[_0xa7a0('0x2d')]!==_0xa7a0('0x2e')?_0x55c6f4[_0xa7a0('0x2d')]:'Unknown';}return BPromise[_0xa7a0('0x1c')]()['then'](cmContactRpc[_0xa7a0('0x2f')](_0x3deeb2))[_0xa7a0('0x1d')](function(_0x1c4c4f){_0x50f380=_0x1c4c4f;_0x45fb1c[_0xa7a0('0x30')](_0x1c4c4f);if(_0x50f380){logger['info']('[CM][%s][%s]\x20Contact\x20created:%s',_0x55c6f4[_0xa7a0('0x22')],_0x3818c6['id'],_0x50f380['id']);}return;});}else{logger[_0xa7a0('0x8')](_0xa7a0('0x31'),_0x55c6f4[_0xa7a0('0x22')],_0x3818c6['id']);_0x3deeb2[_0x4ce0d0]=_[_0xa7a0('0x28')](_0x55c6f4['routeId'])?_0x55c6f4[_0xa7a0('0x29')]:_0x55c6f4[_0xa7a0('0x15')];if(_['isNil'](_0x55c6f4['routeId'])){_0x3deeb2['firstName']=_0x55c6f4['calleridname']&&_0x55c6f4[_0xa7a0('0x2b')]!==_0xa7a0('0x2e')?_0x55c6f4[_0xa7a0('0x2b')]:_0xa7a0('0x2c');}else{_0x3deeb2['firstName']=_0x55c6f4[_0xa7a0('0x2d')]&&_0x55c6f4[_0xa7a0('0x2d')]!==_0xa7a0('0x2e')?_0x55c6f4['destcalleridname']:'Unknown';}_0x50f380=_0x3deeb2;_0x45fb1c[_0xa7a0('0x30')](_0x3deeb2);return;}}})[_0xa7a0('0x1d')](function(){if(_0x4114e3){emit(_0x55c6f4[_0xa7a0('0x22')],_0x3818c6,util[_0xa7a0('0x32')](_0xa7a0('0x33'),_0x4114e3[_0xa7a0('0x34')]),util[_0xa7a0('0x32')](_0xa7a0('0x35'),_0x339adf['action'][_0xa7a0('0x36')]()),{'evt':_[_0xa7a0('0x37')](_0x55c6f4,{'autoCreate':_0x173d81}),'contact':_0x50f380===undefined?{}:_0x50f380,'contacts':_0x45fb1c['length']===0x0?undefined:_0x45fb1c});}});};