390fbd8c8d10596604fca3fae42bb0a23d3cc75d
[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 _0xe605=['outbound','dialCheckDuplicateType','CmList','Lists','length','always','onlyIfOpen','VoiceQueue','CmHopperBlack','cmContact,\x20%s,\x20%s','message','BlackLists','isEmpty','destroy','ContactId','VoiceQueueId','CampaignId','push','all','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./cmContact.attributes','exports','define','cm_contacts','models','get','cmContact','afterCreate','inspect','CmHopper','findOne','phone','isNil','cmContact,\x20afterCreate\x20','ListId','priority','scheduledat','format','callbackUniqueid','YYYY-MM-DD\x20HH:mm:ss','catch','then','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopperFinal','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','create','error','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','findAll'];(function(_0x8067b0,_0x14f855){var _0x53851a=function(_0x5cf9c5){while(--_0x5cf9c5){_0x8067b0['push'](_0x8067b0['shift']());}};_0x53851a(++_0x14f855);}(_0xe605,0x92));var _0x5e60=function(_0x1225ad,_0x249b74){_0x1225ad=_0x1225ad-0x0;var _0x5b75d1=_0xe605[_0x1225ad];return _0x5b75d1;};'use strict';var _=require(_0x5e60('0x0'));var util=require(_0x5e60('0x1'));var logger=require('../../config/logger')(_0x5e60('0x2'));var moment=require(_0x5e60('0x3'));var BPromise=require(_0x5e60('0x4'));var rp=require(_0x5e60('0x5'));var fs=require('fs');var path=require(_0x5e60('0x6'));var rimraf=require(_0x5e60('0x7'));var config=require(_0x5e60('0x8'));var attributes=require(_0x5e60('0x9'));module[_0x5e60('0xa')]=function(_0xc41535,_0x1d4a08){return _0xc41535[_0x5e60('0xb')]('CmContact',attributes,{'tableName':_0x5e60('0xc'),'paranoid':!![],'indexes':[{'name':'phone','fields':['phone']}],'timestamps':!![],'hooks':{'afterCreate':function(_0x53dccb,_0x43f7eb,_0xe93f9c){var _0x150a51=_0xc41535[_0x5e60('0xd')];var _0x331b3e=_0x53dccb[_0x5e60('0xe')]({'plain':!![]});function _0x56f05a(){return function(_0x6ab0ce){logger['error'](_0x5e60('0xf'),_0x5e60('0x10'),util[_0x5e60('0x11')](_0x6ab0ce,{'showHidden':![],'depth':null}));};}var _0x51e7f6=function(_0x371df7){return new BPromise(function(_0x178782,_0x1f4e14){_0x150a51[_0x5e60('0x12')][_0x5e60('0x13')]({'where':{'phone':_0x331b3e[_0x5e60('0x14')],'VoiceQueueId':_0x371df7['id']}})['then'](function(_0x209adb){if(!_[_0x5e60('0x15')](_0x209adb)){throw new Error(_0x5e60('0x16')+_0x331b3e[_0x5e60('0x14')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x371df7['id']);}return _0x150a51[_0x5e60('0x12')]['create']({'phone':_0x331b3e[_0x5e60('0x14')],'ContactId':_0x331b3e['id'],'ListId':_0x331b3e[_0x5e60('0x17')],'priority':_0x331b3e['priority']?_0x331b3e[_0x5e60('0x18')]:0x2,'scheduledat':_0x331b3e[_0x5e60('0x19')]?_0x331b3e[_0x5e60('0x19')]:moment()[_0x5e60('0x1a')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x331b3e[_0x5e60('0x1b')]?!![]:![],'callbackuniqueid':_0x331b3e[_0x5e60('0x1b')]?_0x331b3e['callbackUniqueid']:undefined,'callbackat':_0x331b3e[_0x5e60('0x1b')]?moment()[_0x5e60('0x1a')](_0x5e60('0x1c')):undefined,'VoiceQueueId':_0x371df7['id']});})[_0x5e60('0x1d')](function(_0x20db03){_0x1f4e14(_0x20db03);});});};var _0x3c8e47=function(_0x41294f){return new BPromise(function(_0x524c93,_0x3282e4){_0x150a51[_0x5e60('0x12')][_0x5e60('0x13')]({'where':{'phone':_0x331b3e['phone'],'VoiceQueueId':_0x41294f['id']}})[_0x5e60('0x1e')](function(_0x5d77dd){if(!_[_0x5e60('0x15')](_0x5d77dd)){throw new Error(_0x5e60('0x16')+_0x331b3e[_0x5e60('0x14')]+_0x5e60('0x1f')+_0x41294f['id']);}return _0x150a51[_0x5e60('0x20')][_0x5e60('0x13')]({'where':{'calleridnum':_0x331b3e[_0x5e60('0x14')],'VoiceQueueId':_0x41294f['id']}});})['then'](function(_0x18d527){if(!_[_0x5e60('0x15')](_0x18d527)){throw new Error(_0x5e60('0x21')+_0x331b3e['phone']+_0x5e60('0x22')+_0x41294f['id']);}return _0x150a51[_0x5e60('0x12')][_0x5e60('0x23')]({'phone':_0x331b3e[_0x5e60('0x14')],'ContactId':_0x331b3e['id'],'ListId':_0x331b3e['ListId'],'priority':_0x331b3e[_0x5e60('0x18')]?_0x331b3e['priority']:0x2,'scheduledat':_0x331b3e[_0x5e60('0x19')]?_0x331b3e[_0x5e60('0x19')]:moment()['format'](_0x5e60('0x1c')),'callback':_0x331b3e[_0x5e60('0x1b')]?!![]:![],'callbackuniqueid':_0x331b3e['callbackUniqueid']?_0x331b3e[_0x5e60('0x1b')]:undefined,'callbackat':_0x331b3e[_0x5e60('0x1b')]?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x41294f['id']});})['catch'](function(_0xf25956){_0x3282e4(_0xf25956);});});};function _0x235cc7(){return function(_0x2e8e9e){logger[_0x5e60('0x24')](_0x5e60('0xf'),'afterCreate',util[_0x5e60('0x11')](_0x2e8e9e,{'showHidden':![],'depth':null}));};}var _0x405461=function(_0x4d4b55){return new BPromise(function(_0x11fc87,_0x48369c){_0x150a51['CmHopper'][_0x5e60('0x13')]({'where':{'phone':_0x331b3e[_0x5e60('0x14')],'CampaignId':_0x4d4b55['id']}})[_0x5e60('0x1e')](function(_0x385c77){if(!_[_0x5e60('0x15')](_0x385c77)){throw new Error(_0x5e60('0x16')+_0x331b3e[_0x5e60('0x14')]+_0x5e60('0x25')+_0x4d4b55['id']);}return _0x150a51[_0x5e60('0x12')][_0x5e60('0x23')]({'phone':_0x331b3e['phone'],'ContactId':_0x331b3e['id'],'ListId':_0x331b3e[_0x5e60('0x17')],'priority':_0x331b3e['priority']?_0x331b3e['priority']:0x2,'scheduledat':_0x331b3e[_0x5e60('0x19')]?_0x331b3e[_0x5e60('0x19')]:moment()['format'](_0x5e60('0x1c')),'callback':_0x331b3e['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x331b3e[_0x5e60('0x1b')]?_0x331b3e[_0x5e60('0x1b')]:undefined,'callbackat':_0x331b3e[_0x5e60('0x1b')]?moment()[_0x5e60('0x1a')](_0x5e60('0x1c')):undefined,'CampaignId':_0x4d4b55['id']});})[_0x5e60('0x1d')](function(_0x2eaaef){_0x48369c(_0x2eaaef);});});};var _0x3c5200=function(_0x5b3aa5){return new BPromise(function(_0x18922f,_0x3f744d){_0x150a51[_0x5e60('0x12')][_0x5e60('0x13')]({'where':{'phone':_0x331b3e[_0x5e60('0x14')],'CampaignId':_0x5b3aa5['id']}})[_0x5e60('0x1e')](function(_0x261245){if(!_['isNil'](_0x261245)){throw new Error(_0x5e60('0x16')+_0x331b3e[_0x5e60('0x14')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x5b3aa5['id']);}return _0x150a51['CmHopperFinal'][_0x5e60('0x13')]({'where':{'calleridnum':_0x331b3e[_0x5e60('0x14')],'CampaignId':_0x5b3aa5['id']}});})[_0x5e60('0x1e')](function(_0xa75379){if(!_[_0x5e60('0x15')](_0xa75379)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x331b3e[_0x5e60('0x14')]+_0x5e60('0x26')+_0x5b3aa5['id']);}return _0x150a51[_0x5e60('0x12')][_0x5e60('0x23')]({'phone':_0x331b3e[_0x5e60('0x14')],'ContactId':_0x331b3e['id'],'ListId':_0x331b3e[_0x5e60('0x17')],'priority':_0x331b3e[_0x5e60('0x18')]?_0x331b3e['priority']:0x2,'scheduledat':_0x331b3e[_0x5e60('0x19')]?_0x331b3e[_0x5e60('0x19')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x331b3e['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x331b3e[_0x5e60('0x1b')]?_0x331b3e[_0x5e60('0x1b')]:undefined,'callbackat':_0x331b3e[_0x5e60('0x1b')]?moment()[_0x5e60('0x1a')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x5b3aa5['id']});})[_0x5e60('0x1d')](function(_0x24e893){_0x3f744d(_0x24e893);});});};if(_0x331b3e['ListId']){_0x150a51['VoiceQueue'][_0x5e60('0x27')]({'where':{'type':_0x5e60('0x28')},'attributes':['id',_0x5e60('0x29')],'include':[{'model':_0x150a51[_0x5e60('0x2a')],'as':_0x5e60('0x2b'),'where':{'id':_0x331b3e[_0x5e60('0x17')]}}]})[_0x5e60('0x1e')](function(_0x2812e1){if(_0x2812e1){var _0x1db0ce=[];for(var _0x5ed4fc=0x0,_0x284e66;_0x5ed4fc<_0x2812e1[_0x5e60('0x2c')];_0x5ed4fc+=0x1){_0x284e66=_0x2812e1[_0x5ed4fc]['get']({'plain':!![]});switch(_0x284e66[_0x5e60('0x29')]){case _0x5e60('0x2d'):_0x3c8e47(_0x284e66)[_0x5e60('0x1d')](_0x56f05a());break;case _0x5e60('0x2e'):_0x51e7f6(_0x284e66)[_0x5e60('0x1d')](_0x56f05a());break;default:_0x150a51['CmHopper'][_0x5e60('0x23')]({'phone':_0x331b3e[_0x5e60('0x14')],'ContactId':_0x331b3e['id'],'ListId':_0x331b3e[_0x5e60('0x17')],'scheduledat':_0x331b3e[_0x5e60('0x19')]?_0x331b3e['scheduledat']:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x331b3e[_0x5e60('0x18')]?_0x331b3e[_0x5e60('0x18')]:0x2,'callback':_0x331b3e[_0x5e60('0x1b')]?!![]:![],'callbackuniqueid':_0x331b3e[_0x5e60('0x1b')]?_0x331b3e[_0x5e60('0x1b')]:undefined,'callbackat':_0x331b3e[_0x5e60('0x1b')]?moment()['format'](_0x5e60('0x1c')):undefined,'VoiceQueueId':_0x284e66['id']})[_0x5e60('0x1d')](_0x56f05a());}}}})[_0x5e60('0x1e')](function(){return _0x150a51[_0x5e60('0x2f')][_0x5e60('0x27')]({'where':{'type':_0x5e60('0x28')},'attributes':['id'],'include':[{'model':_0x150a51[_0x5e60('0x2a')],'as':'BlackLists','where':{'id':_0x331b3e[_0x5e60('0x17')]}}]})[_0x5e60('0x1e')](function(_0x21a116){if(_0x21a116){var _0x1b3add=[];for(var _0x4721c8=0x0,_0x2d4ced;_0x4721c8<_0x21a116[_0x5e60('0x2c')];_0x4721c8+=0x1){_0x2d4ced=_0x21a116[_0x4721c8][_0x5e60('0xe')]({'plain':!![]});_0x150a51[_0x5e60('0x30')][_0x5e60('0x23')]({'phone':_0x331b3e[_0x5e60('0x14')],'ContactId':_0x331b3e['id'],'ListId':_0x331b3e[_0x5e60('0x17')],'VoiceQueueId':_0x2d4ced['id']})[_0x5e60('0x1d')](function(_0x969287){logger[_0x5e60('0x24')](_0x5e60('0x31'),_0x5e60('0x10'),_0x969287[_0x5e60('0x32')]);});}}});})['then'](function(){return _0x150a51['Campaign'][_0x5e60('0x27')]({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0x150a51[_0x5e60('0x2a')],'as':_0x5e60('0x2b'),'where':{'id':_0x331b3e[_0x5e60('0x17')]}}]})[_0x5e60('0x1e')](function(_0x431fe3){if(_0x431fe3){var _0x1f5288=[];for(var _0x4b72a4=0x0,_0x48bea6;_0x4b72a4<_0x431fe3[_0x5e60('0x2c')];_0x4b72a4+=0x1){_0x48bea6=_0x431fe3[_0x4b72a4][_0x5e60('0xe')]({'plain':!![]});switch(_0x48bea6[_0x5e60('0x29')]){case'always':_0x3c5200(_0x48bea6)['catch'](_0x235cc7());break;case _0x5e60('0x2e'):_0x405461(_0x48bea6)[_0x5e60('0x1d')](_0x235cc7());break;default:_0x150a51[_0x5e60('0x12')]['create']({'phone':_0x331b3e[_0x5e60('0x14')],'ContactId':_0x331b3e['id'],'ListId':_0x331b3e[_0x5e60('0x17')],'scheduledat':_0x331b3e[_0x5e60('0x19')]?_0x331b3e[_0x5e60('0x19')]:moment()[_0x5e60('0x1a')](_0x5e60('0x1c')),'priority':_0x331b3e['priority']?_0x331b3e[_0x5e60('0x18')]:0x2,'callback':_0x331b3e[_0x5e60('0x1b')]?!![]:![],'callbackuniqueid':_0x331b3e['callbackUniqueid']?_0x331b3e[_0x5e60('0x1b')]:undefined,'callbackat':_0x331b3e[_0x5e60('0x1b')]?moment()[_0x5e60('0x1a')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x48bea6['id']})[_0x5e60('0x1d')](_0x235cc7());}}}});})[_0x5e60('0x1e')](function(){return _0x150a51['Campaign'][_0x5e60('0x27')]({'attributes':['id'],'include':[{'model':_0x150a51[_0x5e60('0x2a')],'as':_0x5e60('0x33'),'where':{'id':_0x331b3e[_0x5e60('0x17')]}}]})['then'](function(_0xeed911){if(_0xeed911){var _0x1abc43=[];for(var _0x4ded96=0x0,_0x3cff0e;_0x4ded96<_0xeed911['length'];_0x4ded96+=0x1){_0x3cff0e=_0xeed911[_0x4ded96][_0x5e60('0xe')]({'plain':!![]});_0x150a51['CmHopperBlack'][_0x5e60('0x23')]({'phone':_0x331b3e[_0x5e60('0x14')],'ContactId':_0x331b3e['id'],'ListId':_0x331b3e['ListId'],'CampaignId':_0x3cff0e['id']})[_0x5e60('0x1d')](function(_0x4b52d1){logger[_0x5e60('0x24')]('cmContact,\x20%s,\x20%s',_0x5e60('0x10'),_0x4b52d1['message']);});}}});})[_0x5e60('0x1e')](function(){_0xe93f9c();})[_0x5e60('0x1d')](function(_0xb1ef22){logger[_0x5e60('0x24')](_0x5e60('0x31'),_0x5e60('0x10'),_0xb1ef22[_0x5e60('0x32')]);_0xe93f9c(_0xb1ef22);});}else{_0xe93f9c(new Error('List\x20not\x20found'));}},'afterDestroy':function(_0x4473a7,_0x2beb34,_0x442dbf){var _0x1f96ef=_0xc41535[_0x5e60('0xd')];var _0x35aad7=_0x4473a7['get']({'plain':!![]});return _0x1f96ef['CmHopper']['findAll']({'raw':!![],'where':{'ListId':_0x35aad7[_0x5e60('0x17')],'ContactId':_0x35aad7['id']}})[_0x5e60('0x1e')](function(_0x5a2cb4){if(!_[_0x5e60('0x34')](_0x5a2cb4)){var _0x369659=[];for(var _0x557f74=0x0;_0x557f74<_0x5a2cb4[_0x5e60('0x2c')];_0x557f74+=0x1){var _0xb228a1=_0x1f96ef[_0x5e60('0x12')][_0x5e60('0x35')]({'where':{'ListId':_0x5a2cb4[_0x557f74][_0x5e60('0x17')],'ContactId':_0x5a2cb4[_0x557f74][_0x5e60('0x36')],'VoiceQueueId':_0x5a2cb4[_0x557f74][_0x5e60('0x37')],'CampaignId':_0x5a2cb4[_0x557f74][_0x5e60('0x38')]}});_0x369659[_0x5e60('0x39')](_0xb228a1);}return BPromise[_0x5e60('0x3a')](_0x369659);}})[_0x5e60('0x1e')](function(_0x15921d){logger[_0x5e60('0x3b')](_0x5e60('0x3c'),util[_0x5e60('0x11')](_0x15921d,{'showHidden':![],'depth':null}));_0x442dbf();})[_0x5e60('0x1d')](function(_0xda4b15){logger['error'](_0x5e60('0x3d'),util[_0x5e60('0x11')](_0xda4b15,{'showHidden':![],'depth':null}));_0x442dbf(_0xda4b15);});}}});};