df07674cd4b0968696ead2a5fdc971c0da7119e9
[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 _0x09ae=['getContacts','isEmpty','length','info','[CM][%s][%s]\x20Contact\x20found:%s','uniqueid','[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]','join','data4','phone','routeId','isNil','calleridname','<unknown>','destcalleridname','Unknown','createContact','push','format','action','toLowerCase','merge','lodash','bluebird','ioredis','util','../../../../config/environment','trigger','../../rpc/cmContact','redis','defaults','localhost','socket.io-emitter','stringify','emit','exec','data1','data2','xmd-contactid','ListId','data3','split','map','destcalleridnum','calleridnum','firstName','lastName','mobile','fax','createdAt','updatedAt','union','resolve','then'];(function(_0x1ac052,_0x3f8942){var _0x17dfe7=function(_0xec078b){while(--_0xec078b){_0x1ac052['push'](_0x1ac052['shift']());}};_0x17dfe7(++_0x3f8942);}(_0x09ae,0x82));var _0xe09a=function(_0x237e5d,_0xaeecf0){_0x237e5d=_0x237e5d-0x0;var _0x72c80e=_0x09ae[_0x237e5d];return _0x72c80e;};'use strict';var _=require(_0xe09a('0x0'));var BPromise=require(_0xe09a('0x1'));var Redis=require(_0xe09a('0x2'));var util=require(_0xe09a('0x3'));var config=require(_0xe09a('0x4'));var logger=require('../../../../config/logger')(_0xe09a('0x5'));var cmContactRpc=require(_0xe09a('0x6'));config[_0xe09a('0x7')]=_[_0xe09a('0x8')](config[_0xe09a('0x7')],{'host':_0xe09a('0x9'),'port':0x18eb});var io=require(_0xe09a('0xa'))(new Redis(config[_0xe09a('0x7')]));function emit(_0xee9847,_0x479988,_0xc13ad,_0x201c18,_0x4c7bf8){logger['info']('[CM][%s][%s]',_0xee9847,_0x479988['id'],_0xc13ad,_0x201c18,JSON[_0xe09a('0xb')](_0x4c7bf8));io['to'](_0xc13ad)[_0xe09a('0xc')](_0x201c18,_0x4c7bf8);}exports[_0xe09a('0xd')]=function(_0x391a03,_0x42ff17,_0x1abe28,_0x10fc0a){var _0x24a745,_0x5962d2;var _0x4d443a={};var _0x52ed8e=Number(_0x1abe28[_0xe09a('0xe')]);var _0x24b420=_0x1abe28[_0xe09a('0xf')]?Boolean(Number(_0x1abe28[_0xe09a('0xf')])):![];var _0xa91a21;if(_0x10fc0a[_0xe09a('0x10')]){_0x4d443a['id']=_0x10fc0a[_0xe09a('0x10')];}if(!_0x4d443a['id']){_0x4d443a[_0xe09a('0x11')]=_0x52ed8e;_0xa91a21=_0x1abe28['data3']&&_0x1abe28['data3']!=='0'?_0x1abe28[_0xe09a('0x12')][_0xe09a('0x13')](','):['phone'];_0x4d443a['$or']=_[_0xe09a('0x14')](_0xa91a21,function(_0x2324ab){var _0x29d2fb={};_0x29d2fb[_0x2324ab]=_0x10fc0a['routeId']?_0x10fc0a[_0xe09a('0x15')]:_0x10fc0a[_0xe09a('0x16')];return _0x29d2fb;});}var _0x27ada7=['id',_0xe09a('0x17'),_0xe09a('0x18'),'phone',_0xe09a('0x19'),_0xe09a('0x1a'),_0xe09a('0x11'),_0xe09a('0x1b'),'scheduledAt',_0xe09a('0x1c')];var _0x3efe75=_[_0xe09a('0x1d')](_0x27ada7,_0xa91a21);BPromise[_0xe09a('0x1e')]()[_0xe09a('0x1f')](cmContactRpc[_0xe09a('0x20')]({'attributes':_0x3efe75,'where':_0x4d443a}))[_0xe09a('0x1f')](function(_0x41f7bd){_0x5962d2=_0x41f7bd;if(!_[_0xe09a('0x21')](_0x5962d2)){if(_0x5962d2[_0xe09a('0x22')]===0x1){_0x24a745=_0x5962d2[0x0];logger[_0xe09a('0x23')](_0xe09a('0x24'),_0x10fc0a[_0xe09a('0x25')],_0x42ff17['id'],_0x24a745['id']);}else{logger[_0xe09a('0x23')](_0xe09a('0x26'),_0x10fc0a[_0xe09a('0x25')],_0x42ff17['id'],_[_0xe09a('0x14')](_0x5962d2,'id')[_0xe09a('0x27')](','));}return;}else{logger[_0xe09a('0x23')]('[CM][%s][%s]\x20Contact\x20not\x20found',_0x10fc0a[_0xe09a('0x25')],_0x42ff17['id']);var _0x309c8c={'ListId':_0x52ed8e};var _0x2950f6=_0x1abe28['data4']&&_0x1abe28[_0xe09a('0x28')]!=='0'?_0x1abe28[_0xe09a('0x28')]:_0xe09a('0x29');if(_0x24b420){logger['info']('[CM][%s][%s]\x20Autocreate\x20enabled',_0x10fc0a[_0xe09a('0x25')],_0x42ff17['id']);_0x309c8c[_0x2950f6]=_['isNil'](_0x10fc0a[_0xe09a('0x2a')])?_0x10fc0a[_0xe09a('0x16')]:_0x10fc0a[_0xe09a('0x15')];if(_[_0xe09a('0x2b')](_0x10fc0a['routeId'])){_0x309c8c[_0xe09a('0x17')]=_0x10fc0a[_0xe09a('0x2c')]&&_0x10fc0a[_0xe09a('0x2c')]!==_0xe09a('0x2d')?_0x10fc0a[_0xe09a('0x2c')]:'Unknown';}else{_0x309c8c[_0xe09a('0x17')]=_0x10fc0a[_0xe09a('0x2e')]&&_0x10fc0a[_0xe09a('0x2e')]!=='<unknown>'?_0x10fc0a[_0xe09a('0x2e')]:_0xe09a('0x2f');}return BPromise[_0xe09a('0x1e')]()[_0xe09a('0x1f')](cmContactRpc[_0xe09a('0x30')](_0x309c8c))[_0xe09a('0x1f')](function(_0x3284ba){_0x24a745=_0x3284ba;_0x5962d2[_0xe09a('0x31')](_0x3284ba);if(_0x24a745){logger[_0xe09a('0x23')]('[CM][%s][%s]\x20Contact\x20created:%s',_0x10fc0a[_0xe09a('0x25')],_0x42ff17['id'],_0x24a745['id']);}return;});}else{logger[_0xe09a('0x23')]('[CM][%s][%s]\x20Autocreate\x20disabled',_0x10fc0a['uniqueid'],_0x42ff17['id']);_0x309c8c[_0x2950f6]=_[_0xe09a('0x2b')](_0x10fc0a[_0xe09a('0x2a')])?_0x10fc0a[_0xe09a('0x16')]:_0x10fc0a[_0xe09a('0x15')];if(_[_0xe09a('0x2b')](_0x10fc0a['routeId'])){_0x309c8c['firstName']=_0x10fc0a['calleridname']&&_0x10fc0a['calleridname']!==_0xe09a('0x2d')?_0x10fc0a['calleridname']:_0xe09a('0x2f');}else{_0x309c8c[_0xe09a('0x17')]=_0x10fc0a[_0xe09a('0x2e')]&&_0x10fc0a[_0xe09a('0x2e')]!==_0xe09a('0x2d')?_0x10fc0a[_0xe09a('0x2e')]:_0xe09a('0x2f');}_0x24a745=_0x309c8c;_0x5962d2[_0xe09a('0x31')](_0x309c8c);return;}}})[_0xe09a('0x1f')](function(){if(_0x391a03){emit(_0x10fc0a[_0xe09a('0x25')],_0x42ff17,util[_0xe09a('0x32')]('user:%s',_0x391a03['name']),util[_0xe09a('0x32')]('trigger:%s',_0x1abe28[_0xe09a('0x33')][_0xe09a('0x34')]()),{'evt':_[_0xe09a('0x35')](_0x10fc0a,{'autoCreate':_0x24b420}),'contact':_0x24a745===undefined?{}:_0x24a745,'contacts':_0x5962d2[_0xe09a('0x22')]===0x0?undefined:_0x5962d2});}});};