35aacf7ac4c0793226f104f5d43ab815417c2e64
[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 _0xc7a3=['phone','$or','map','destcalleridnum','lastName','mobile','fax','createdAt','scheduledAt','updatedAt','union','resolve','then','getContacts','isEmpty','length','uniqueid','join','[CM][%s][%s]\x20Contact\x20not\x20found','data4','[CM][%s][%s]\x20Autocreate\x20enabled','isNil','routeId','calleridnum','firstName','calleridname','<unknown>','destcalleridname','Unknown','push','[CM][%s][%s]\x20Contact\x20created:%s','[CM][%s][%s]\x20Autocreate\x20disabled','format','user:%s','name','trigger:%s','action','merge','lodash','ioredis','util','../../../../config/environment','../../../../config/logger','../../rpc/cmContact','defaults','redis','localhost','socket.io-emitter','info','stringify','emit','exec','data2','xmd-contactid','ListId','data3'];(function(_0x13d07a,_0x41efc3){var _0x5ee0ee=function(_0x4ca94a){while(--_0x4ca94a){_0x13d07a['push'](_0x13d07a['shift']());}};_0x5ee0ee(++_0x41efc3);}(_0xc7a3,0xce));var _0x3c7a=function(_0x1e070d,_0x15d110){_0x1e070d=_0x1e070d-0x0;var _0x4bf1f4=_0xc7a3[_0x1e070d];return _0x4bf1f4;};'use strict';var _=require(_0x3c7a('0x0'));var BPromise=require('bluebird');var Redis=require(_0x3c7a('0x1'));var util=require(_0x3c7a('0x2'));var config=require(_0x3c7a('0x3'));var logger=require(_0x3c7a('0x4'))('trigger');var cmContactRpc=require(_0x3c7a('0x5'));config['redis']=_[_0x3c7a('0x6')](config[_0x3c7a('0x7')],{'host':_0x3c7a('0x8'),'port':0x18eb});var io=require(_0x3c7a('0x9'))(new Redis(config['redis']));function emit(_0x411efd,_0x28d0d0,_0x3bbfa5,_0x2ebecf,_0x580ad3){logger[_0x3c7a('0xa')]('[CM][%s][%s]',_0x411efd,_0x28d0d0['id'],_0x3bbfa5,_0x2ebecf,JSON[_0x3c7a('0xb')](_0x580ad3));io['to'](_0x3bbfa5)[_0x3c7a('0xc')](_0x2ebecf,_0x580ad3);}exports[_0x3c7a('0xd')]=function(_0x5c782b,_0x3d6c54,_0x483bd8,_0x21dad5){var _0x207de2,_0x4626f5;var _0x89547f={};var _0x3e6adb=Number(_0x483bd8['data1']);var _0x595a64=_0x483bd8[_0x3c7a('0xe')]?Boolean(Number(_0x483bd8[_0x3c7a('0xe')])):![];var _0x27c884;if(_0x21dad5['xmd-contactid']){_0x89547f['id']=_0x21dad5[_0x3c7a('0xf')];}if(!_0x89547f['id']){_0x89547f[_0x3c7a('0x10')]=_0x3e6adb;_0x27c884=_0x483bd8['data3']&&_0x483bd8[_0x3c7a('0x11')]!=='0'?_0x483bd8[_0x3c7a('0x11')]['split'](','):[_0x3c7a('0x12')];_0x89547f[_0x3c7a('0x13')]=_[_0x3c7a('0x14')](_0x27c884,function(_0xcca5c6){var _0x35ecab={};_0x35ecab[_0xcca5c6]=_0x21dad5['routeId']?_0x21dad5[_0x3c7a('0x15')]:_0x21dad5['calleridnum'];return _0x35ecab;});}var _0x1410b1=['id','firstName',_0x3c7a('0x16'),_0x3c7a('0x12'),_0x3c7a('0x17'),_0x3c7a('0x18'),'ListId',_0x3c7a('0x19'),_0x3c7a('0x1a'),_0x3c7a('0x1b')];var _0x37b231=_[_0x3c7a('0x1c')](_0x1410b1,_0x27c884);BPromise[_0x3c7a('0x1d')]()[_0x3c7a('0x1e')](cmContactRpc[_0x3c7a('0x1f')]({'attributes':_0x37b231,'where':_0x89547f}))[_0x3c7a('0x1e')](function(_0x340f1e){_0x4626f5=_0x340f1e;if(!_[_0x3c7a('0x20')](_0x4626f5)){if(_0x4626f5[_0x3c7a('0x21')]===0x1){_0x207de2=_0x4626f5[0x0];logger[_0x3c7a('0xa')]('[CM][%s][%s]\x20Contact\x20found:%s',_0x21dad5[_0x3c7a('0x22')],_0x3d6c54['id'],_0x207de2['id']);}else{logger[_0x3c7a('0xa')]('[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]',_0x21dad5[_0x3c7a('0x22')],_0x3d6c54['id'],_[_0x3c7a('0x14')](_0x4626f5,'id')[_0x3c7a('0x23')](','));}return;}else{logger[_0x3c7a('0xa')](_0x3c7a('0x24'),_0x21dad5[_0x3c7a('0x22')],_0x3d6c54['id']);var _0x29cf18={'ListId':_0x3e6adb};var _0x57d847=_0x483bd8[_0x3c7a('0x25')]&&_0x483bd8['data4']!=='0'?_0x483bd8['data4']:'phone';if(_0x595a64){logger[_0x3c7a('0xa')](_0x3c7a('0x26'),_0x21dad5[_0x3c7a('0x22')],_0x3d6c54['id']);_0x29cf18[_0x57d847]=_[_0x3c7a('0x27')](_0x21dad5[_0x3c7a('0x28')])?_0x21dad5[_0x3c7a('0x29')]:_0x21dad5[_0x3c7a('0x15')];if(_[_0x3c7a('0x27')](_0x21dad5['routeId'])){_0x29cf18[_0x3c7a('0x2a')]=_0x21dad5[_0x3c7a('0x2b')]&&_0x21dad5[_0x3c7a('0x2b')]!==_0x3c7a('0x2c')?_0x21dad5['calleridname']:'Unknown';}else{_0x29cf18[_0x3c7a('0x2a')]=_0x21dad5[_0x3c7a('0x2d')]&&_0x21dad5['destcalleridname']!==_0x3c7a('0x2c')?_0x21dad5['destcalleridname']:_0x3c7a('0x2e');}return BPromise[_0x3c7a('0x1d')]()[_0x3c7a('0x1e')](cmContactRpc['createContact'](_0x29cf18))[_0x3c7a('0x1e')](function(_0x59a420){_0x207de2=_0x59a420;_0x4626f5[_0x3c7a('0x2f')](_0x59a420);if(_0x207de2){logger[_0x3c7a('0xa')](_0x3c7a('0x30'),_0x21dad5[_0x3c7a('0x22')],_0x3d6c54['id'],_0x207de2['id']);}return;});}else{logger[_0x3c7a('0xa')](_0x3c7a('0x31'),_0x21dad5[_0x3c7a('0x22')],_0x3d6c54['id']);_0x29cf18[_0x57d847]=_[_0x3c7a('0x27')](_0x21dad5[_0x3c7a('0x28')])?_0x21dad5[_0x3c7a('0x29')]:_0x21dad5[_0x3c7a('0x15')];if(_[_0x3c7a('0x27')](_0x21dad5[_0x3c7a('0x28')])){_0x29cf18[_0x3c7a('0x2a')]=_0x21dad5[_0x3c7a('0x2b')]&&_0x21dad5[_0x3c7a('0x2b')]!==_0x3c7a('0x2c')?_0x21dad5['calleridname']:_0x3c7a('0x2e');}else{_0x29cf18[_0x3c7a('0x2a')]=_0x21dad5['destcalleridname']&&_0x21dad5[_0x3c7a('0x2d')]!=='<unknown>'?_0x21dad5[_0x3c7a('0x2d')]:_0x3c7a('0x2e');}_0x207de2=_0x29cf18;_0x4626f5[_0x3c7a('0x2f')](_0x29cf18);return;}}})[_0x3c7a('0x1e')](function(){if(_0x5c782b){emit(_0x21dad5[_0x3c7a('0x22')],_0x3d6c54,util[_0x3c7a('0x32')](_0x3c7a('0x33'),_0x5c782b[_0x3c7a('0x34')]),util['format'](_0x3c7a('0x35'),_0x483bd8[_0x3c7a('0x36')]['toLowerCase']()),{'evt':_[_0x3c7a('0x37')](_0x21dad5,{'autoCreate':_0x595a64}),'contact':_0x207de2===undefined?{}:_0x207de2,'contacts':_0x4626f5[_0x3c7a('0x21')]===0x0?undefined:_0x4626f5});}});};