Built motion from commit 47436d59.|2.6.7
[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 _0x63f4=['redis','defaults','[CM][%s][%s]','emit','exec','data1','data2','isNil','data5','xmd-contactid','ListId','data3','split','phone','$or','destcalleridnum','calleridnum','routeId','firstName','lastName','fax','createdAt','scheduledAt','updatedAt','resolve','then','getContacts','isEmpty','length','uniqueid','info','[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]','map','[CM][%s][%s]\x20Contact\x20not\x20found','data4','calleridname','<unknown>','Unknown','destcalleridname','createContact','push','[CM][%s][%s]\x20Autocreate\x20disabled','format','user:%s','name','action','toLowerCase','lodash','bluebird','ioredis','../../../../config/logger','../../rpc/cmContact'];(function(_0x5b4ac6,_0x129e6f){var _0x36d13b=function(_0x330c2a){while(--_0x330c2a){_0x5b4ac6['push'](_0x5b4ac6['shift']());}};_0x36d13b(++_0x129e6f);}(_0x63f4,0xcb));var _0x463f=function(_0x1a1750,_0x4d5d49){_0x1a1750=_0x1a1750-0x0;var _0x55fdc4=_0x63f4[_0x1a1750];return _0x55fdc4;};'use strict';var _=require(_0x463f('0x0'));var BPromise=require(_0x463f('0x1'));var Redis=require(_0x463f('0x2'));var util=require('util');var config=require('../../../../config/environment');var logger=require(_0x463f('0x3'))('trigger');var cmContactRpc=require(_0x463f('0x4'));config[_0x463f('0x5')]=_[_0x463f('0x6')](config['redis'],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function emit(_0x2e04ef,_0x180ada,_0x26379f,_0x393697,_0x39db15){logger['info'](_0x463f('0x7'),_0x2e04ef,_0x180ada['id'],_0x26379f,_0x393697,JSON['stringify'](_0x39db15));io['to'](_0x26379f)[_0x463f('0x8')](_0x393697,_0x39db15);}exports[_0x463f('0x9')]=function(_0x3839ef,_0x57cfb0,_0xba49c2,_0x4fe934){var _0x465d5d,_0x368447;var _0x3d856a={};var _0x3247c4;var _0x4ca969=Number(_0xba49c2[_0x463f('0xa')]);var _0x25c429=_0xba49c2['data2']?Boolean(Number(_0xba49c2[_0x463f('0xb')])):![];var _0x3d2d97;var _0x4f3dbf=![];if(!_[_0x463f('0xc')](_0xba49c2['data5'])){if(_0xba49c2[_0x463f('0xd')]=='1')_0x4f3dbf=!![];}if(!_0x4f3dbf){if(_0x4fe934[_0x463f('0xe')]){_0x3d856a['id']=_0x4fe934[_0x463f('0xe')];}}if(!_0x3d856a['id']){_0x3d856a[_0x463f('0xf')]=_0x4ca969;_0x3d2d97=_0xba49c2['data3']&&_0xba49c2[_0x463f('0x10')]!=='0'?_0xba49c2['data3'][_0x463f('0x11')](','):[_0x463f('0x12')];_0x3d856a[_0x463f('0x13')]=_['map'](_0x3d2d97,function(_0xeeb643){var _0x54861f={};_0x54861f[_0xeeb643]=_0x4fe934['routeId']?_0x4fe934[_0x463f('0x14')]:_0x4fe934[_0x463f('0x15')];return _0x54861f;});_0x3247c4=_0x4fe934[_0x463f('0x16')]?_0x4fe934[_0x463f('0x14')]:_0x4fe934['calleridnum'];}var _0x11444c=['id',_0x463f('0x17'),_0x463f('0x18'),'phone','mobile',_0x463f('0x19'),_0x463f('0xf'),_0x463f('0x1a'),_0x463f('0x1b'),_0x463f('0x1c')];var _0x133808=_['union'](_0x11444c,_0x3d2d97);BPromise[_0x463f('0x1d')]()[_0x463f('0x1e')](cmContactRpc[_0x463f('0x1f')]({'attributes':_0x133808,'where':_0x3d856a,'phone':_0x3247c4}))[_0x463f('0x1e')](function(_0x2ffd40){_0x368447=_0x2ffd40;if(!_[_0x463f('0x20')](_0x368447)){if(_0x368447[_0x463f('0x21')]===0x1){_0x465d5d=_0x368447[0x0];logger['info']('[CM][%s][%s]\x20Contact\x20found:%s',_0x4fe934[_0x463f('0x22')],_0x57cfb0['id'],_0x465d5d['id']);}else{logger[_0x463f('0x23')](_0x463f('0x24'),_0x4fe934['uniqueid'],_0x57cfb0['id'],_[_0x463f('0x25')](_0x368447,'id')['join'](','));}return;}else{logger[_0x463f('0x23')](_0x463f('0x26'),_0x4fe934[_0x463f('0x22')],_0x57cfb0['id']);var _0xf2cb4={'ListId':_0x4ca969};var _0x288af1=_0xba49c2[_0x463f('0x27')]&&_0xba49c2['data4']!=='0'?_0xba49c2['data4']:_0x463f('0x12');if(_0x25c429){logger[_0x463f('0x23')]('[CM][%s][%s]\x20Autocreate\x20enabled',_0x4fe934[_0x463f('0x22')],_0x57cfb0['id']);_0xf2cb4[_0x288af1]=_['isNil'](_0x4fe934[_0x463f('0x16')])?_0x4fe934[_0x463f('0x15')]:_0x4fe934[_0x463f('0x14')];if(_['isNil'](_0x4fe934[_0x463f('0x16')])){_0xf2cb4[_0x463f('0x17')]=_0x4fe934[_0x463f('0x28')]&&_0x4fe934[_0x463f('0x28')]!==_0x463f('0x29')?_0x4fe934[_0x463f('0x28')]:_0x463f('0x2a');}else{_0xf2cb4[_0x463f('0x17')]=_0x4fe934[_0x463f('0x2b')]&&_0x4fe934['destcalleridname']!==_0x463f('0x29')?_0x4fe934[_0x463f('0x2b')]:_0x463f('0x2a');}return BPromise[_0x463f('0x1d')]()[_0x463f('0x1e')](cmContactRpc[_0x463f('0x2c')](_0xf2cb4))[_0x463f('0x1e')](function(_0x1d9157){_0x465d5d=_0x1d9157;_0x368447[_0x463f('0x2d')](_0x1d9157);if(_0x465d5d){logger[_0x463f('0x23')]('[CM][%s][%s]\x20Contact\x20created:%s',_0x4fe934[_0x463f('0x22')],_0x57cfb0['id'],_0x465d5d['id']);}return;});}else{logger['info'](_0x463f('0x2e'),_0x4fe934[_0x463f('0x22')],_0x57cfb0['id']);_0xf2cb4[_0x288af1]=_[_0x463f('0xc')](_0x4fe934[_0x463f('0x16')])?_0x4fe934[_0x463f('0x15')]:_0x4fe934[_0x463f('0x14')];if(_[_0x463f('0xc')](_0x4fe934[_0x463f('0x16')])){_0xf2cb4[_0x463f('0x17')]=_0x4fe934[_0x463f('0x28')]&&_0x4fe934[_0x463f('0x28')]!==_0x463f('0x29')?_0x4fe934['calleridname']:_0x463f('0x2a');}else{_0xf2cb4[_0x463f('0x17')]=_0x4fe934[_0x463f('0x2b')]&&_0x4fe934[_0x463f('0x2b')]!=='<unknown>'?_0x4fe934[_0x463f('0x2b')]:_0x463f('0x2a');}_0x465d5d=_0xf2cb4;_0x368447[_0x463f('0x2d')](_0xf2cb4);return;}}})[_0x463f('0x1e')](function(){if(_0x3839ef){emit(_0x4fe934[_0x463f('0x22')],_0x57cfb0,util[_0x463f('0x2f')](_0x463f('0x30'),_0x3839ef[_0x463f('0x31')]),util['format']('trigger:%s',_0xba49c2[_0x463f('0x32')][_0x463f('0x33')]()),{'evt':_['merge'](_0x4fe934,{'autoCreate':_0x25c429}),'contact':_0x465d5d===undefined?{}:_0x465d5d,'contacts':_0x368447[_0x463f('0x21')]===0x0?undefined:_0x368447});}});};