6b9f95b6693398a2d4aeac673a057d817c0e6bdd
[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 _0xc4fb=['redis','localhost','info','[CM][%s][%s]','stringify','emit','exec','data1','data2','isNil','data5','xmd-contactid','ListId','phone','map','routeId','destcalleridnum','firstName','lastName','mobile','createdAt','updatedAt','getContacts','then','isEmpty','length','uniqueid','[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]','join','[CM][%s][%s]\x20Contact\x20not\x20found','data4','[CM][%s][%s]\x20Autocreate\x20enabled','calleridname','<unknown>','Unknown','destcalleridname','resolve','push','[CM][%s][%s]\x20Autocreate\x20disabled','format','trigger:%s','action','merge','lodash','bluebird','ioredis','../../../../config/environment','../../../../config/logger','trigger','../../rpc/cmContact','defaults'];(function(_0x4ca80f,_0x72376d){var _0xa1d96c=function(_0x22713a){while(--_0x22713a){_0x4ca80f['push'](_0x4ca80f['shift']());}};_0xa1d96c(++_0x72376d);}(_0xc4fb,0x12a));var _0xbc4f=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0xc4fb[_0x5b644e];return _0x49c6bf;};'use strict';var _=require(_0xbc4f('0x0'));var BPromise=require(_0xbc4f('0x1'));var Redis=require(_0xbc4f('0x2'));var util=require('util');var config=require(_0xbc4f('0x3'));var logger=require(_0xbc4f('0x4'))(_0xbc4f('0x5'));var cmContactRpc=require(_0xbc4f('0x6'));config['redis']=_[_0xbc4f('0x7')](config[_0xbc4f('0x8')],{'host':_0xbc4f('0x9'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function emit(_0x7445ca,_0x44791a,_0x1db839,_0x1fb58e,_0x4e34cf){logger[_0xbc4f('0xa')](_0xbc4f('0xb'),_0x7445ca,_0x44791a['id'],_0x1db839,_0x1fb58e,JSON[_0xbc4f('0xc')](_0x4e34cf));io['to'](_0x1db839)[_0xbc4f('0xd')](_0x1fb58e,_0x4e34cf);}exports[_0xbc4f('0xe')]=function(_0x134833,_0x4cf39d,_0x42e585,_0x34f8f2){var _0x100a11,_0x50a311;var _0x30b20f={};var _0x340ff0;var _0x24bc53=Number(_0x42e585[_0xbc4f('0xf')]);var _0x297e7e=_0x42e585['data2']?Boolean(Number(_0x42e585[_0xbc4f('0x10')])):![];var _0x2357eb;var _0x5f43f2=![];if(!_[_0xbc4f('0x11')](_0x42e585[_0xbc4f('0x12')])){if(_0x42e585[_0xbc4f('0x12')]=='1')_0x5f43f2=!![];}if(!_0x5f43f2){if(_0x34f8f2[_0xbc4f('0x13')]){_0x30b20f['id']=_0x34f8f2[_0xbc4f('0x13')];}}if(!_0x30b20f['id']){_0x30b20f[_0xbc4f('0x14')]=_0x24bc53;_0x2357eb=_0x42e585['data3']&&_0x42e585['data3']!=='0'?_0x42e585['data3']['split'](','):[_0xbc4f('0x15')];_0x30b20f['$or']=_[_0xbc4f('0x16')](_0x2357eb,function(_0x556af2){var _0x15cc38={};_0x15cc38[_0x556af2]=_0x34f8f2[_0xbc4f('0x17')]?_0x34f8f2[_0xbc4f('0x18')]:_0x34f8f2['calleridnum'];return _0x15cc38;});_0x340ff0=_0x34f8f2[_0xbc4f('0x17')]?_0x34f8f2['destcalleridnum']:_0x34f8f2['calleridnum'];}var _0xf35928=['id',_0xbc4f('0x19'),_0xbc4f('0x1a'),'phone',_0xbc4f('0x1b'),'fax',_0xbc4f('0x14'),_0xbc4f('0x1c'),'scheduledAt',_0xbc4f('0x1d')];var _0x164e1c=_['union'](_0xf35928,_0x2357eb);BPromise['resolve']()['then'](cmContactRpc[_0xbc4f('0x1e')]({'attributes':_0x164e1c,'where':_0x30b20f,'phone':_0x340ff0}))[_0xbc4f('0x1f')](function(_0xd5d030){_0x50a311=_0xd5d030;if(!_[_0xbc4f('0x20')](_0x50a311)){if(_0x50a311[_0xbc4f('0x21')]===0x1){_0x100a11=_0x50a311[0x0];logger[_0xbc4f('0xa')]('[CM][%s][%s]\x20Contact\x20found:%s',_0x34f8f2[_0xbc4f('0x22')],_0x4cf39d['id'],_0x100a11['id']);}else{logger['info'](_0xbc4f('0x23'),_0x34f8f2['uniqueid'],_0x4cf39d['id'],_[_0xbc4f('0x16')](_0x50a311,'id')[_0xbc4f('0x24')](','));}return;}else{logger['info'](_0xbc4f('0x25'),_0x34f8f2[_0xbc4f('0x22')],_0x4cf39d['id']);var _0x41caaa={'ListId':_0x24bc53};var _0x44ec23=_0x42e585[_0xbc4f('0x26')]&&_0x42e585['data4']!=='0'?_0x42e585[_0xbc4f('0x26')]:_0xbc4f('0x15');if(_0x297e7e){logger['info'](_0xbc4f('0x27'),_0x34f8f2['uniqueid'],_0x4cf39d['id']);_0x41caaa[_0x44ec23]=_[_0xbc4f('0x11')](_0x34f8f2[_0xbc4f('0x17')])?_0x34f8f2['calleridnum']:_0x34f8f2[_0xbc4f('0x18')];if(_[_0xbc4f('0x11')](_0x34f8f2['routeId'])){_0x41caaa[_0xbc4f('0x19')]=_0x34f8f2[_0xbc4f('0x28')]&&_0x34f8f2[_0xbc4f('0x28')]!==_0xbc4f('0x29')?_0x34f8f2['calleridname']:_0xbc4f('0x2a');}else{_0x41caaa[_0xbc4f('0x19')]=_0x34f8f2[_0xbc4f('0x2b')]&&_0x34f8f2[_0xbc4f('0x2b')]!==_0xbc4f('0x29')?_0x34f8f2[_0xbc4f('0x2b')]:'Unknown';}return BPromise[_0xbc4f('0x2c')]()[_0xbc4f('0x1f')](cmContactRpc['createContact'](_0x41caaa))[_0xbc4f('0x1f')](function(_0x2ba78a){_0x100a11=_0x2ba78a;_0x50a311[_0xbc4f('0x2d')](_0x2ba78a);if(_0x100a11){logger[_0xbc4f('0xa')]('[CM][%s][%s]\x20Contact\x20created:%s',_0x34f8f2['uniqueid'],_0x4cf39d['id'],_0x100a11['id']);}return;});}else{logger[_0xbc4f('0xa')](_0xbc4f('0x2e'),_0x34f8f2[_0xbc4f('0x22')],_0x4cf39d['id']);_0x41caaa[_0x44ec23]=_['isNil'](_0x34f8f2['routeId'])?_0x34f8f2['calleridnum']:_0x34f8f2[_0xbc4f('0x18')];if(_[_0xbc4f('0x11')](_0x34f8f2[_0xbc4f('0x17')])){_0x41caaa[_0xbc4f('0x19')]=_0x34f8f2[_0xbc4f('0x28')]&&_0x34f8f2[_0xbc4f('0x28')]!==_0xbc4f('0x29')?_0x34f8f2[_0xbc4f('0x28')]:_0xbc4f('0x2a');}else{_0x41caaa['firstName']=_0x34f8f2[_0xbc4f('0x2b')]&&_0x34f8f2[_0xbc4f('0x2b')]!==_0xbc4f('0x29')?_0x34f8f2[_0xbc4f('0x2b')]:_0xbc4f('0x2a');}_0x100a11=_0x41caaa;_0x50a311[_0xbc4f('0x2d')](_0x41caaa);return;}}})[_0xbc4f('0x1f')](function(){if(_0x134833){emit(_0x34f8f2[_0xbc4f('0x22')],_0x4cf39d,util[_0xbc4f('0x2f')]('user:%s',_0x134833['name']),util['format'](_0xbc4f('0x30'),_0x42e585[_0xbc4f('0x31')]['toLowerCase']()),{'evt':_[_0xbc4f('0x32')](_0x34f8f2,{'autoCreate':_0x297e7e}),'contact':_0x100a11===undefined?{}:_0x100a11,'contacts':_0x50a311[_0xbc4f('0x21')]===0x0?undefined:_0x50a311});}});};