Built motion from commit (unavailable).|2.6.0
[motion2.git] / server / api / cmContact / cmContact.model.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 _0xe0c1=['priority','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','findOne','CmHopperFinal','cmContact,\x20afterCreate,\x20','scheduledat','catch','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','VoiceQueue','findAll','outbound','dialCheckDuplicateType','CmList','Lists','length','always','BlackLists','CmHopperBlack','cmContact,\x20%s,\x20%s','onlyIfOpen','Campaign','message','List\x20not\x20found','isEmpty','destroy','VoiceQueueId','CampaignId','push','all','lodash','util','../../config/logger','api','moment','bluebird','request-promise','define','CmContact','cm_contacts','phone','fti_cm_contacts','firstName','mobile','fax','email','models','get','error','cmContact','afterCreate','inspect','CmHopper','then','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create','ListId'];(function(_0x3d728e,_0x4325cf){var _0x627520=function(_0x2d713b){while(--_0x2d713b){_0x3d728e['push'](_0x3d728e['shift']());}};_0x627520(++_0x4325cf);}(_0xe0c1,0x10f));var _0x1e0c=function(_0x276de3,_0x264aeb){_0x276de3=_0x276de3-0x0;var _0x2eb959=_0xe0c1[_0x276de3];return _0x2eb959;};'use strict';var _=require(_0x1e0c('0x0'));var util=require(_0x1e0c('0x1'));var logger=require(_0x1e0c('0x2'))(_0x1e0c('0x3'));var moment=require(_0x1e0c('0x4'));var BPromise=require(_0x1e0c('0x5'));var rp=require(_0x1e0c('0x6'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./cmContact.attributes');module['exports']=function(_0x57c88f,_0x935e3b){return _0x57c88f[_0x1e0c('0x7')](_0x1e0c('0x8'),attributes,{'tableName':_0x1e0c('0x9'),'paranoid':!![],'indexes':[{'name':_0x1e0c('0xa'),'fields':[_0x1e0c('0xa')]},{'name':_0x1e0c('0xb'),'fields':[_0x1e0c('0xc'),'lastName',_0x1e0c('0xa'),_0x1e0c('0xd'),_0x1e0c('0xe'),_0x1e0c('0xf')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x452aee,_0x42b407,_0x2bd205){var _0x506e0a=_0x57c88f[_0x1e0c('0x10')];var _0x504f4d=_0x452aee[_0x1e0c('0x11')]({'plain':!![]});function _0x39305e(){return function(_0x432542){logger[_0x1e0c('0x12')](_0x1e0c('0x13'),_0x1e0c('0x14'),util[_0x1e0c('0x15')](_0x432542,{'showHidden':![],'depth':null}));};}var _0x1c2616=function(_0x1fbc44){return new BPromise(function(_0x452248,_0x599d0b){_0x506e0a[_0x1e0c('0x16')]['findOne']({'where':{'phone':_0x504f4d[_0x1e0c('0xa')],'VoiceQueueId':_0x1fbc44['id']}})[_0x1e0c('0x17')](function(_0x13840b){if(!_[_0x1e0c('0x18')](_0x13840b)){throw new Error(_0x1e0c('0x19')+_0x504f4d[_0x1e0c('0xa')]+_0x1e0c('0x1a')+_0x1fbc44['id']);}return _0x506e0a['CmHopper'][_0x1e0c('0x1b')]({'phone':_0x504f4d[_0x1e0c('0xa')],'ContactId':_0x504f4d['id'],'ListId':_0x504f4d[_0x1e0c('0x1c')],'priority':_0x504f4d[_0x1e0c('0x1d')]?_0x504f4d['priority']:0x2,'scheduledat':_0x504f4d['scheduledat']?_0x504f4d['scheduledat']:moment()[_0x1e0c('0x1e')](_0x1e0c('0x1f')),'callback':_0x504f4d[_0x1e0c('0x20')]?!![]:![],'callbackuniqueid':_0x504f4d[_0x1e0c('0x20')]?_0x504f4d[_0x1e0c('0x20')]:undefined,'callbackat':_0x504f4d[_0x1e0c('0x20')]?moment()[_0x1e0c('0x1e')](_0x1e0c('0x1f')):undefined,'VoiceQueueId':_0x1fbc44['id']});})['catch'](function(_0x5d6943){_0x599d0b(_0x5d6943);});});};var _0x3885d2=function(_0x38d8bd){return new BPromise(function(_0x3b1200,_0xb29b17){_0x506e0a['CmHopper'][_0x1e0c('0x21')]({'where':{'phone':_0x504f4d[_0x1e0c('0xa')],'VoiceQueueId':_0x38d8bd['id']}})[_0x1e0c('0x17')](function(_0x1cf772){if(!_[_0x1e0c('0x18')](_0x1cf772)){throw new Error(_0x1e0c('0x19')+_0x504f4d['phone']+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x38d8bd['id']);}return _0x506e0a[_0x1e0c('0x22')][_0x1e0c('0x21')]({'where':{'calleridnum':_0x504f4d[_0x1e0c('0xa')],'VoiceQueueId':_0x38d8bd['id']}});})[_0x1e0c('0x17')](function(_0x5cec62){if(!_[_0x1e0c('0x18')](_0x5cec62)){throw new Error(_0x1e0c('0x23')+_0x504f4d[_0x1e0c('0xa')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20'+_0x38d8bd['id']);}return _0x506e0a[_0x1e0c('0x16')][_0x1e0c('0x1b')]({'phone':_0x504f4d[_0x1e0c('0xa')],'ContactId':_0x504f4d['id'],'ListId':_0x504f4d[_0x1e0c('0x1c')],'priority':_0x504f4d[_0x1e0c('0x1d')]?_0x504f4d['priority']:0x2,'scheduledat':_0x504f4d[_0x1e0c('0x24')]?_0x504f4d['scheduledat']:moment()[_0x1e0c('0x1e')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x504f4d[_0x1e0c('0x20')]?!![]:![],'callbackuniqueid':_0x504f4d[_0x1e0c('0x20')]?_0x504f4d[_0x1e0c('0x20')]:undefined,'callbackat':_0x504f4d[_0x1e0c('0x20')]?moment()[_0x1e0c('0x1e')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x38d8bd['id']});})[_0x1e0c('0x25')](function(_0x2cae9e){_0xb29b17(_0x2cae9e);});});};function _0x57dfb6(){return function(_0x5b3259){logger[_0x1e0c('0x12')]('cmContact',_0x1e0c('0x14'),util[_0x1e0c('0x15')](_0x5b3259,{'showHidden':![],'depth':null}));};}var _0xca3b86=function(_0x47424e){return new BPromise(function(_0xa7bb00,_0x452e76){_0x506e0a[_0x1e0c('0x16')][_0x1e0c('0x21')]({'where':{'phone':_0x504f4d[_0x1e0c('0xa')],'CampaignId':_0x47424e['id']}})[_0x1e0c('0x17')](function(_0x533b9c){if(!_[_0x1e0c('0x18')](_0x533b9c)){throw new Error('cmContact,\x20afterCreate\x20'+_0x504f4d[_0x1e0c('0xa')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x47424e['id']);}return _0x506e0a[_0x1e0c('0x16')]['create']({'phone':_0x504f4d[_0x1e0c('0xa')],'ContactId':_0x504f4d['id'],'ListId':_0x504f4d[_0x1e0c('0x1c')],'priority':_0x504f4d['priority']?_0x504f4d['priority']:0x2,'scheduledat':_0x504f4d['scheduledat']?_0x504f4d[_0x1e0c('0x24')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x504f4d[_0x1e0c('0x20')]?!![]:![],'callbackuniqueid':_0x504f4d[_0x1e0c('0x20')]?_0x504f4d[_0x1e0c('0x20')]:undefined,'callbackat':_0x504f4d[_0x1e0c('0x20')]?moment()[_0x1e0c('0x1e')](_0x1e0c('0x1f')):undefined,'CampaignId':_0x47424e['id']});})['catch'](function(_0x458a45){_0x452e76(_0x458a45);});});};var _0x3c112b=function(_0x416bfb){return new BPromise(function(_0x3bd6fd,_0x3f3500){_0x506e0a[_0x1e0c('0x16')]['findOne']({'where':{'phone':_0x504f4d[_0x1e0c('0xa')],'CampaignId':_0x416bfb['id']}})[_0x1e0c('0x17')](function(_0x1b729b){if(!_[_0x1e0c('0x18')](_0x1b729b)){throw new Error(_0x1e0c('0x19')+_0x504f4d[_0x1e0c('0xa')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x416bfb['id']);}return _0x506e0a[_0x1e0c('0x22')][_0x1e0c('0x21')]({'where':{'calleridnum':_0x504f4d['phone'],'CampaignId':_0x416bfb['id']}});})[_0x1e0c('0x17')](function(_0x2ffc0c){if(!_['isNil'](_0x2ffc0c)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x504f4d[_0x1e0c('0xa')]+_0x1e0c('0x26')+_0x416bfb['id']);}return _0x506e0a[_0x1e0c('0x16')][_0x1e0c('0x1b')]({'phone':_0x504f4d['phone'],'ContactId':_0x504f4d['id'],'ListId':_0x504f4d['ListId'],'priority':_0x504f4d[_0x1e0c('0x1d')]?_0x504f4d['priority']:0x2,'scheduledat':_0x504f4d[_0x1e0c('0x24')]?_0x504f4d[_0x1e0c('0x24')]:moment()[_0x1e0c('0x1e')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x504f4d['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x504f4d[_0x1e0c('0x20')]?_0x504f4d['callbackUniqueid']:undefined,'callbackat':_0x504f4d[_0x1e0c('0x20')]?moment()['format'](_0x1e0c('0x1f')):undefined,'CampaignId':_0x416bfb['id']});})['catch'](function(_0x3ab785){_0x3f3500(_0x3ab785);});});};if(_0x504f4d['ListId']){_0x506e0a[_0x1e0c('0x27')][_0x1e0c('0x28')]({'where':{'type':_0x1e0c('0x29')},'attributes':['id',_0x1e0c('0x2a')],'include':[{'model':_0x506e0a[_0x1e0c('0x2b')],'as':_0x1e0c('0x2c'),'where':{'id':_0x504f4d['ListId']}}]})['then'](function(_0x477583){if(_0x477583){var _0x24d0c5=[];for(var _0x39bc5b=0x0,_0x41ded5;_0x39bc5b<_0x477583[_0x1e0c('0x2d')];_0x39bc5b+=0x1){_0x41ded5=_0x477583[_0x39bc5b][_0x1e0c('0x11')]({'plain':!![]});switch(_0x41ded5['dialCheckDuplicateType']){case _0x1e0c('0x2e'):_0x3885d2(_0x41ded5)[_0x1e0c('0x25')](_0x39305e());break;case'onlyIfOpen':_0x1c2616(_0x41ded5)['catch'](_0x39305e());break;default:_0x506e0a[_0x1e0c('0x16')][_0x1e0c('0x1b')]({'phone':_0x504f4d[_0x1e0c('0xa')],'ContactId':_0x504f4d['id'],'ListId':_0x504f4d[_0x1e0c('0x1c')],'scheduledat':_0x504f4d[_0x1e0c('0x24')]?_0x504f4d[_0x1e0c('0x24')]:moment()[_0x1e0c('0x1e')](_0x1e0c('0x1f')),'priority':_0x504f4d[_0x1e0c('0x1d')]?_0x504f4d[_0x1e0c('0x1d')]:0x2,'callback':_0x504f4d[_0x1e0c('0x20')]?!![]:![],'callbackuniqueid':_0x504f4d[_0x1e0c('0x20')]?_0x504f4d['callbackUniqueid']:undefined,'callbackat':_0x504f4d[_0x1e0c('0x20')]?moment()['format'](_0x1e0c('0x1f')):undefined,'VoiceQueueId':_0x41ded5['id']})[_0x1e0c('0x25')](_0x39305e());}}}})[_0x1e0c('0x17')](function(){return _0x506e0a[_0x1e0c('0x27')][_0x1e0c('0x28')]({'where':{'type':_0x1e0c('0x29')},'attributes':['id'],'include':[{'model':_0x506e0a[_0x1e0c('0x2b')],'as':_0x1e0c('0x2f'),'where':{'id':_0x504f4d['ListId']}}]})['then'](function(_0x2f3f40){if(_0x2f3f40){var _0x30153b=[];for(var _0x157490=0x0,_0x4ed5cf;_0x157490<_0x2f3f40[_0x1e0c('0x2d')];_0x157490+=0x1){_0x4ed5cf=_0x2f3f40[_0x157490][_0x1e0c('0x11')]({'plain':!![]});_0x506e0a[_0x1e0c('0x30')]['create']({'phone':_0x504f4d['phone'],'ContactId':_0x504f4d['id'],'ListId':_0x504f4d[_0x1e0c('0x1c')],'VoiceQueueId':_0x4ed5cf['id']})[_0x1e0c('0x25')](function(_0x5be24a){logger[_0x1e0c('0x12')](_0x1e0c('0x31'),_0x1e0c('0x14'),_0x5be24a['message']);});}}});})[_0x1e0c('0x17')](function(){return _0x506e0a['Campaign'][_0x1e0c('0x28')]({'attributes':['id',_0x1e0c('0x2a')],'include':[{'model':_0x506e0a[_0x1e0c('0x2b')],'as':_0x1e0c('0x2c'),'where':{'id':_0x504f4d[_0x1e0c('0x1c')]}}]})[_0x1e0c('0x17')](function(_0x918127){if(_0x918127){var _0x1c1532=[];for(var _0x364bf0=0x0,_0x5eb3ec;_0x364bf0<_0x918127['length'];_0x364bf0+=0x1){_0x5eb3ec=_0x918127[_0x364bf0][_0x1e0c('0x11')]({'plain':!![]});switch(_0x5eb3ec[_0x1e0c('0x2a')]){case _0x1e0c('0x2e'):_0x3c112b(_0x5eb3ec)[_0x1e0c('0x25')](_0x57dfb6());break;case _0x1e0c('0x32'):_0xca3b86(_0x5eb3ec)[_0x1e0c('0x25')](_0x57dfb6());break;default:_0x506e0a['CmHopper'][_0x1e0c('0x1b')]({'phone':_0x504f4d['phone'],'ContactId':_0x504f4d['id'],'ListId':_0x504f4d['ListId'],'scheduledat':_0x504f4d[_0x1e0c('0x24')]?_0x504f4d['scheduledat']:moment()[_0x1e0c('0x1e')](_0x1e0c('0x1f')),'priority':_0x504f4d['priority']?_0x504f4d['priority']:0x2,'callback':_0x504f4d[_0x1e0c('0x20')]?!![]:![],'callbackuniqueid':_0x504f4d['callbackUniqueid']?_0x504f4d[_0x1e0c('0x20')]:undefined,'callbackat':_0x504f4d[_0x1e0c('0x20')]?moment()['format'](_0x1e0c('0x1f')):undefined,'CampaignId':_0x5eb3ec['id']})[_0x1e0c('0x25')](_0x57dfb6());}}}});})[_0x1e0c('0x17')](function(){return _0x506e0a[_0x1e0c('0x33')][_0x1e0c('0x28')]({'attributes':['id'],'include':[{'model':_0x506e0a[_0x1e0c('0x2b')],'as':'BlackLists','where':{'id':_0x504f4d['ListId']}}]})[_0x1e0c('0x17')](function(_0x6f0a04){if(_0x6f0a04){var _0x3f4b2e=[];for(var _0x2de85c=0x0,_0x177fbb;_0x2de85c<_0x6f0a04[_0x1e0c('0x2d')];_0x2de85c+=0x1){_0x177fbb=_0x6f0a04[_0x2de85c][_0x1e0c('0x11')]({'plain':!![]});_0x506e0a['CmHopperBlack'][_0x1e0c('0x1b')]({'phone':_0x504f4d[_0x1e0c('0xa')],'ContactId':_0x504f4d['id'],'ListId':_0x504f4d[_0x1e0c('0x1c')],'CampaignId':_0x177fbb['id']})[_0x1e0c('0x25')](function(_0x3df41e){logger[_0x1e0c('0x12')](_0x1e0c('0x31'),'afterCreate',_0x3df41e['message']);});}}});})[_0x1e0c('0x17')](function(){_0x2bd205();})['catch'](function(_0x282b93){logger[_0x1e0c('0x12')](_0x1e0c('0x31'),_0x1e0c('0x14'),_0x282b93[_0x1e0c('0x34')]);_0x2bd205(_0x282b93);});}else{_0x2bd205(new Error(_0x1e0c('0x35')));}},'afterDestroy':function(_0x48cc46,_0x117914,_0x326c10){var _0x47699e=_0x57c88f[_0x1e0c('0x10')];var _0x421578=_0x48cc46['get']({'plain':!![]});return _0x47699e[_0x1e0c('0x16')]['findAll']({'raw':!![],'where':{'ListId':_0x421578[_0x1e0c('0x1c')],'ContactId':_0x421578['id']}})[_0x1e0c('0x17')](function(_0x184a89){if(!_[_0x1e0c('0x36')](_0x184a89)){var _0x37ad53=[];for(var _0x440059=0x0;_0x440059<_0x184a89['length'];_0x440059+=0x1){var _0x24334f=_0x47699e[_0x1e0c('0x16')][_0x1e0c('0x37')]({'where':{'ListId':_0x184a89[_0x440059][_0x1e0c('0x1c')],'ContactId':_0x184a89[_0x440059]['ContactId'],'VoiceQueueId':_0x184a89[_0x440059][_0x1e0c('0x38')],'CampaignId':_0x184a89[_0x440059][_0x1e0c('0x39')]}});_0x37ad53[_0x1e0c('0x3a')](_0x24334f);}return BPromise[_0x1e0c('0x3b')](_0x37ad53);}})[_0x1e0c('0x17')](function(_0x2584da){logger['info']('[CmContact][afterDestroy][Succesfull]',util[_0x1e0c('0x15')](_0x2584da,{'showHidden':![],'depth':null}));_0x326c10();})[_0x1e0c('0x25')](function(_0x126969){logger[_0x1e0c('0x12')]('[CmContact][afterDestroy][Error]',util[_0x1e0c('0x15')](_0x126969,{'showHidden':![],'depth':null}));_0x326c10(_0x126969);});}}});};