d5db9c5369f21d3b2706a88bd98dcba8193b4663
[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 _0x4043=['data2','xmd-contactid2','ListId','data3','phone','$or','map','routeId','firstName','lastName','mobile','fax','createdAt','scheduledAt','updatedAt','union','getContacts','then','isEmpty','length','info','[CM][%s][%s]\x20Contact\x20found:%s','uniqueid','[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]','join','[CM][%s][%s]\x20Contact\x20not\x20found','[CM][%s][%s]\x20Autocreate\x20enabled','data4','calleridnum','isNil','calleridname','<unknown>','destcalleridname','createContact','[CM][%s][%s]\x20Autocreate\x20disabled','format','user:%s','trigger:%s','toLowerCase','merge','lodash','bluebird','ioredis','../../../../config/logger','trigger','../../rpc/cmContact','redis','defaults','socket.io-emitter','emit','data1'];(function(_0x502c7d,_0x2f1285){var _0x30b7ed=function(_0x2d92f3){while(--_0x2d92f3){_0x502c7d['push'](_0x502c7d['shift']());}};_0x30b7ed(++_0x2f1285);}(_0x4043,0x1f3));var _0x3404=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0x4043[_0x1facfa];return _0x9ec701;};'use strict';var _=require(_0x3404('0x0'));var BPromise=require(_0x3404('0x1'));var Redis=require(_0x3404('0x2'));var util=require('util');var config=require('../../../../config/environment');var logger=require(_0x3404('0x3'))(_0x3404('0x4'));var cmContactRpc=require(_0x3404('0x5'));config[_0x3404('0x6')]=_[_0x3404('0x7')](config[_0x3404('0x6')],{'host':'localhost','port':0x18eb});var io=require(_0x3404('0x8'))(new Redis(config[_0x3404('0x6')]));function emit(_0x482c10,_0x10e417,_0x46a381,_0x2ee37a,_0x11f0d2){logger['info']('[CM][%s][%s]',_0x482c10,_0x10e417['id'],_0x46a381,_0x2ee37a,JSON['stringify'](_0x11f0d2));io['to'](_0x46a381)[_0x3404('0x9')](_0x2ee37a,_0x11f0d2);}exports['exec']=function(_0x398854,_0x533444,_0xd4f365,_0x38c344){var _0x1a2c24,_0x30ee27;var _0xd24cf4={};var _0x20e6f1=Number(_0xd4f365[_0x3404('0xa')]);var _0x1622dc=_0xd4f365[_0x3404('0xb')]?Boolean(Number(_0xd4f365[_0x3404('0xb')])):![];if(_0x38c344[_0x3404('0xc')]&&!_['isEmpty'](_0x38c344['xmd-contactid2']))_0xd24cf4['id']=_0x38c344[_0x3404('0xc')];if(!_0xd24cf4['id']){_0xd24cf4[_0x3404('0xd')]=_0x20e6f1;var _0x2267e5=_0xd4f365[_0x3404('0xe')]&&_0xd4f365[_0x3404('0xe')]!=='0'?_0xd4f365[_0x3404('0xe')]['split'](','):[_0x3404('0xf')];_0xd24cf4[_0x3404('0x10')]=_[_0x3404('0x11')](_0x2267e5,function(_0x129a57){var _0x35b335={};_0x35b335[_0x129a57]=_0x38c344[_0x3404('0x12')]?_0x38c344['destcalleridnum']:_0x38c344['calleridnum'];return _0x35b335;});}var _0x56f336=['id',_0x3404('0x13'),_0x3404('0x14'),'phone',_0x3404('0x15'),_0x3404('0x16'),_0x3404('0xd'),_0x3404('0x17'),_0x3404('0x18'),_0x3404('0x19')];var _0x5c8641=_[_0x3404('0x1a')](_0x56f336,_0x2267e5);BPromise['resolve']()['then'](cmContactRpc[_0x3404('0x1b')]({'attributes':_0x5c8641,'where':_0xd24cf4}))[_0x3404('0x1c')](function(_0x566124){_0x30ee27=_0x566124;if(!_[_0x3404('0x1d')](_0x30ee27)){if(_0x30ee27[_0x3404('0x1e')]===0x1){_0x1a2c24=_0x30ee27[0x0];logger[_0x3404('0x1f')](_0x3404('0x20'),_0x38c344[_0x3404('0x21')],_0x533444['id'],_0x1a2c24['id']);}else{logger[_0x3404('0x1f')](_0x3404('0x22'),_0x38c344[_0x3404('0x21')],_0x533444['id'],_[_0x3404('0x11')](_0x30ee27,'id')[_0x3404('0x23')](','));}return;}else{logger[_0x3404('0x1f')](_0x3404('0x24'),_0x38c344[_0x3404('0x21')],_0x533444['id']);if(_0x1622dc){logger['info'](_0x3404('0x25'),_0x38c344[_0x3404('0x21')],_0x533444['id']);var _0x440270=_0xd4f365[_0x3404('0x26')]&&_0xd4f365['data4']!=='0'?_0xd4f365[_0x3404('0x26')]:_0x3404('0xf');var _0x56ab8e={'ListId':_0x20e6f1};_0x56ab8e[_0x440270]=_['isNil'](_0x38c344[_0x3404('0x12')])?_0x38c344[_0x3404('0x27')]:_0x38c344['destcalleridnum'];if(_[_0x3404('0x28')](_0x38c344[_0x3404('0x12')])){_0x56ab8e[_0x3404('0x13')]=_0x38c344[_0x3404('0x29')]&&_0x38c344[_0x3404('0x29')]!==_0x3404('0x2a')?_0x38c344[_0x3404('0x29')]:'Unknown';}else{_0x56ab8e[_0x3404('0x13')]=_0x38c344[_0x3404('0x2b')]&&_0x38c344[_0x3404('0x2b')]!==_0x3404('0x2a')?_0x38c344[_0x3404('0x2b')]:'Unknown';}return BPromise['resolve']()['then'](cmContactRpc[_0x3404('0x2c')](_0x56ab8e))[_0x3404('0x1c')](function(_0x4d58a8){_0x1a2c24=_0x4d58a8;if(_0x1a2c24){logger[_0x3404('0x1f')]('[CM][%s][%s]\x20Contact\x20created:%s',_0x38c344[_0x3404('0x21')],_0x533444['id'],_0x1a2c24['id']);}return;});}else{logger[_0x3404('0x1f')](_0x3404('0x2d'),_0x38c344[_0x3404('0x21')],_0x533444['id']);return;}}})[_0x3404('0x1c')](function(){if(_0x398854){emit(_0x38c344[_0x3404('0x21')],_0x533444,util[_0x3404('0x2e')](_0x3404('0x2f'),_0x398854['name']),util[_0x3404('0x2e')](_0x3404('0x30'),_0xd4f365['action'][_0x3404('0x31')]()),{'evt':_[_0x3404('0x32')](_0x38c344,{'autoCreate':_0x1622dc}),'contact':_0x1a2c24,'contacts':!_0x1a2c24?_0x30ee27:undefined});}});};