Built motion from commit 775e2a94.|2.6.3
[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 _0x689f=['lastName','mobile','fax','createdAt','scheduledAt','updatedAt','union','resolve','then','[CM][%s][%s]\x20Contact\x20found:%s','uniqueid','[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]','[CM][%s][%s]\x20Contact\x20not\x20found','data4','calleridname','Unknown','destcalleridname','<unknown>','createContact','push','[CM][%s][%s]\x20Autocreate\x20disabled','format','name','trigger:%s','action','toLowerCase','merge','util','../../../../config/environment','../../rpc/cmContact','defaults','localhost','socket.io-emitter','redis','info','stringify','emit','exec','data1','data2','isNil','data5','xmd-contactid','ListId','data3','phone','map','destcalleridnum','calleridnum','routeId','firstName'];(function(_0x27363f,_0x2fd3b1){var _0x1547e9=function(_0x49d612){while(--_0x49d612){_0x27363f['push'](_0x27363f['shift']());}};_0x1547e9(++_0x2fd3b1);}(_0x689f,0x81));var _0xf689=function(_0x54454a,_0x5f31c9){_0x54454a=_0x54454a-0x0;var _0x47049d=_0x689f[_0x54454a];return _0x47049d;};'use strict';var _=require('lodash');var BPromise=require('bluebird');var Redis=require('ioredis');var util=require(_0xf689('0x0'));var config=require(_0xf689('0x1'));var logger=require('../../../../config/logger')('trigger');var cmContactRpc=require(_0xf689('0x2'));config['redis']=_[_0xf689('0x3')](config['redis'],{'host':_0xf689('0x4'),'port':0x18eb});var io=require(_0xf689('0x5'))(new Redis(config[_0xf689('0x6')]));function emit(_0x53cf63,_0x410c91,_0x3d2db9,_0x58dce7,_0x98edba){logger[_0xf689('0x7')]('[CM][%s][%s]',_0x53cf63,_0x410c91['id'],_0x3d2db9,_0x58dce7,JSON[_0xf689('0x8')](_0x98edba));io['to'](_0x3d2db9)[_0xf689('0x9')](_0x58dce7,_0x98edba);}exports[_0xf689('0xa')]=function(_0x1c96df,_0xb2b314,_0x106636,_0x1ea588){var _0x5615db,_0x1e742f;var _0x161d88={};var _0xae2dfd;var _0x352a6b=Number(_0x106636[_0xf689('0xb')]);var _0x462bf7=_0x106636[_0xf689('0xc')]?Boolean(Number(_0x106636[_0xf689('0xc')])):![];var _0x239dbb;var _0x5a1568=![];if(!_[_0xf689('0xd')](_0x106636[_0xf689('0xe')])){if(_0x106636[_0xf689('0xe')]=='1')_0x5a1568=!![];}if(!_0x5a1568){if(_0x1ea588[_0xf689('0xf')]){_0x161d88['id']=_0x1ea588['xmd-contactid'];}}if(!_0x161d88['id']){_0x161d88[_0xf689('0x10')]=_0x352a6b;_0x239dbb=_0x106636[_0xf689('0x11')]&&_0x106636[_0xf689('0x11')]!=='0'?_0x106636[_0xf689('0x11')]['split'](','):[_0xf689('0x12')];_0x161d88['$or']=_[_0xf689('0x13')](_0x239dbb,function(_0x2960c7){var _0x4d8ca0={};_0x4d8ca0[_0x2960c7]=_0x1ea588['routeId']?_0x1ea588[_0xf689('0x14')]:_0x1ea588[_0xf689('0x15')];return _0x4d8ca0;});_0xae2dfd=_0x1ea588[_0xf689('0x16')]?_0x1ea588[_0xf689('0x14')]:_0x1ea588['calleridnum'];}var _0x678a5a=['id',_0xf689('0x17'),_0xf689('0x18'),_0xf689('0x12'),_0xf689('0x19'),_0xf689('0x1a'),'ListId',_0xf689('0x1b'),_0xf689('0x1c'),_0xf689('0x1d')];var _0x41d937=_[_0xf689('0x1e')](_0x678a5a,_0x239dbb);BPromise[_0xf689('0x1f')]()[_0xf689('0x20')](cmContactRpc['getContacts']({'attributes':_0x41d937,'where':_0x161d88,'phone':_0xae2dfd}))[_0xf689('0x20')](function(_0x5a3058){_0x1e742f=_0x5a3058;if(!_['isEmpty'](_0x1e742f)){if(_0x1e742f['length']===0x1){_0x5615db=_0x1e742f[0x0];logger['info'](_0xf689('0x21'),_0x1ea588[_0xf689('0x22')],_0xb2b314['id'],_0x5615db['id']);}else{logger['info'](_0xf689('0x23'),_0x1ea588[_0xf689('0x22')],_0xb2b314['id'],_[_0xf689('0x13')](_0x1e742f,'id')['join'](','));}return;}else{logger[_0xf689('0x7')](_0xf689('0x24'),_0x1ea588[_0xf689('0x22')],_0xb2b314['id']);var _0x413ea8={'ListId':_0x352a6b};var _0xe9865=_0x106636[_0xf689('0x25')]&&_0x106636[_0xf689('0x25')]!=='0'?_0x106636[_0xf689('0x25')]:_0xf689('0x12');if(_0x462bf7){logger[_0xf689('0x7')]('[CM][%s][%s]\x20Autocreate\x20enabled',_0x1ea588[_0xf689('0x22')],_0xb2b314['id']);_0x413ea8[_0xe9865]=_[_0xf689('0xd')](_0x1ea588['routeId'])?_0x1ea588['calleridnum']:_0x1ea588[_0xf689('0x14')];if(_[_0xf689('0xd')](_0x1ea588[_0xf689('0x16')])){_0x413ea8['firstName']=_0x1ea588[_0xf689('0x26')]&&_0x1ea588['calleridname']!=='<unknown>'?_0x1ea588['calleridname']:_0xf689('0x27');}else{_0x413ea8['firstName']=_0x1ea588[_0xf689('0x28')]&&_0x1ea588[_0xf689('0x28')]!==_0xf689('0x29')?_0x1ea588[_0xf689('0x28')]:_0xf689('0x27');}return BPromise[_0xf689('0x1f')]()[_0xf689('0x20')](cmContactRpc[_0xf689('0x2a')](_0x413ea8))['then'](function(_0x4ed669){_0x5615db=_0x4ed669;_0x1e742f[_0xf689('0x2b')](_0x4ed669);if(_0x5615db){logger['info']('[CM][%s][%s]\x20Contact\x20created:%s',_0x1ea588[_0xf689('0x22')],_0xb2b314['id'],_0x5615db['id']);}return;});}else{logger['info'](_0xf689('0x2c'),_0x1ea588['uniqueid'],_0xb2b314['id']);_0x413ea8[_0xe9865]=_[_0xf689('0xd')](_0x1ea588['routeId'])?_0x1ea588['calleridnum']:_0x1ea588[_0xf689('0x14')];if(_[_0xf689('0xd')](_0x1ea588[_0xf689('0x16')])){_0x413ea8[_0xf689('0x17')]=_0x1ea588['calleridname']&&_0x1ea588[_0xf689('0x26')]!==_0xf689('0x29')?_0x1ea588['calleridname']:_0xf689('0x27');}else{_0x413ea8[_0xf689('0x17')]=_0x1ea588[_0xf689('0x28')]&&_0x1ea588['destcalleridname']!==_0xf689('0x29')?_0x1ea588[_0xf689('0x28')]:_0xf689('0x27');}_0x5615db=_0x413ea8;_0x1e742f[_0xf689('0x2b')](_0x413ea8);return;}}})['then'](function(){if(_0x1c96df){emit(_0x1ea588['uniqueid'],_0xb2b314,util[_0xf689('0x2d')]('user:%s',_0x1c96df[_0xf689('0x2e')]),util[_0xf689('0x2d')](_0xf689('0x2f'),_0x106636[_0xf689('0x30')][_0xf689('0x31')]()),{'evt':_[_0xf689('0x32')](_0x1ea588,{'autoCreate':_0x462bf7}),'contact':_0x5615db===undefined?{}:_0x5615db,'contacts':_0x1e742f['length']===0x0?undefined:_0x1e742f});}});};