Built motion from commit 19a84241.|2.5.34
[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 _0xd552=['isEmpty','VoiceQueueId','CampaignId','all','[CmContact][afterDestroy][Succesfull]','lodash','util','../../config/logger','api','moment','bluebird','rimraf','../../config/environment','./cmContact.attributes','define','CmContact','cm_contacts','phone','fti_cm_contacts','firstName','fax','email','utf8mb4','models','get','error','afterCreate','inspect','findOne','isNil','cmContact,\x20afterCreate\x20','CmHopper','create','priority','scheduledat','format','callbackUniqueid','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','ListId','YYYY-MM-DD\x20HH:mm:ss','catch','cmContact','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','VoiceQueue','outbound','dialCheckDuplicateType','CmList','Lists','always','onlyIfOpen','BlackLists','length','CmHopperBlack','cmContact,\x20%s,\x20%s','message','Campaign','findAll','List\x20not\x20found'];(function(_0x1f736e,_0x23a84d){var _0x5760f1=function(_0xe2d2d1){while(--_0xe2d2d1){_0x1f736e['push'](_0x1f736e['shift']());}};_0x5760f1(++_0x23a84d);}(_0xd552,0x185));var _0x2d55=function(_0x45fb8a,_0x3c8d6d){_0x45fb8a=_0x45fb8a-0x0;var _0x476b25=_0xd552[_0x45fb8a];return _0x476b25;};'use strict';var _=require(_0x2d55('0x0'));var util=require(_0x2d55('0x1'));var logger=require(_0x2d55('0x2'))(_0x2d55('0x3'));var moment=require(_0x2d55('0x4'));var BPromise=require(_0x2d55('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x2d55('0x6'));var config=require(_0x2d55('0x7'));var attributes=require(_0x2d55('0x8'));module['exports']=function(_0x1d585,_0x5950f9){return _0x1d585[_0x2d55('0x9')](_0x2d55('0xa'),attributes,{'tableName':_0x2d55('0xb'),'paranoid':!![],'indexes':[{'name':_0x2d55('0xc'),'fields':[_0x2d55('0xc')]},{'name':_0x2d55('0xd'),'fields':[_0x2d55('0xe'),'lastName',_0x2d55('0xc'),'mobile',_0x2d55('0xf'),_0x2d55('0x10')],'type':'FULLTEXT'}],'timestamps':!![],'charset':_0x2d55('0x11'),'collate':'utf8mb4_unicode_ci','hooks':{'afterCreate':function(_0x45a802,_0x594cdf,_0x2ec3f5){var _0x5366e5=_0x1d585[_0x2d55('0x12')];var _0xb2a4ae=_0x45a802[_0x2d55('0x13')]({'plain':!![]});function _0x2b3e82(){return function(_0x4aa07c){logger[_0x2d55('0x14')]('cmContact',_0x2d55('0x15'),util[_0x2d55('0x16')](_0x4aa07c,{'showHidden':![],'depth':null}));};}var _0x258d13=function(_0x1b1db2){return new BPromise(function(_0x41402f,_0x45659c){_0x5366e5['CmHopper'][_0x2d55('0x17')]({'where':{'phone':_0xb2a4ae[_0x2d55('0xc')],'VoiceQueueId':_0x1b1db2['id']}})['then'](function(_0x37d2c){if(!_[_0x2d55('0x18')](_0x37d2c)){throw new Error(_0x2d55('0x19')+_0xb2a4ae[_0x2d55('0xc')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x1b1db2['id']);}return _0x5366e5[_0x2d55('0x1a')][_0x2d55('0x1b')]({'phone':_0xb2a4ae[_0x2d55('0xc')],'ContactId':_0xb2a4ae['id'],'ListId':_0xb2a4ae['ListId'],'priority':_0xb2a4ae['priority']?_0xb2a4ae[_0x2d55('0x1c')]:0x2,'scheduledat':_0xb2a4ae[_0x2d55('0x1d')]?_0xb2a4ae[_0x2d55('0x1d')]:moment()[_0x2d55('0x1e')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0xb2a4ae[_0x2d55('0x1f')]?!![]:![],'callbackuniqueid':_0xb2a4ae[_0x2d55('0x1f')]?_0xb2a4ae[_0x2d55('0x1f')]:undefined,'callbackat':_0xb2a4ae[_0x2d55('0x1f')]?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x1b1db2['id']});})['catch'](function(_0x2bee64){_0x45659c(_0x2bee64);});});};var _0x2f6811=function(_0x1a9dd6){return new BPromise(function(_0x36410f,_0x512f22){_0x5366e5[_0x2d55('0x1a')][_0x2d55('0x17')]({'where':{'phone':_0xb2a4ae[_0x2d55('0xc')],'VoiceQueueId':_0x1a9dd6['id']}})[_0x2d55('0x20')](function(_0x1dccad){if(!_[_0x2d55('0x18')](_0x1dccad)){throw new Error(_0x2d55('0x19')+_0xb2a4ae[_0x2d55('0xc')]+_0x2d55('0x21')+_0x1a9dd6['id']);}return _0x5366e5[_0x2d55('0x22')]['findOne']({'where':{'calleridnum':_0xb2a4ae[_0x2d55('0xc')],'VoiceQueueId':_0x1a9dd6['id']}});})[_0x2d55('0x20')](function(_0x1bcc48){if(!_[_0x2d55('0x18')](_0x1bcc48)){throw new Error(_0x2d55('0x23')+_0xb2a4ae[_0x2d55('0xc')]+_0x2d55('0x24')+_0x1a9dd6['id']);}return _0x5366e5[_0x2d55('0x1a')][_0x2d55('0x1b')]({'phone':_0xb2a4ae['phone'],'ContactId':_0xb2a4ae['id'],'ListId':_0xb2a4ae[_0x2d55('0x25')],'priority':_0xb2a4ae[_0x2d55('0x1c')]?_0xb2a4ae[_0x2d55('0x1c')]:0x2,'scheduledat':_0xb2a4ae[_0x2d55('0x1d')]?_0xb2a4ae['scheduledat']:moment()[_0x2d55('0x1e')](_0x2d55('0x26')),'callback':_0xb2a4ae[_0x2d55('0x1f')]?!![]:![],'callbackuniqueid':_0xb2a4ae['callbackUniqueid']?_0xb2a4ae[_0x2d55('0x1f')]:undefined,'callbackat':_0xb2a4ae[_0x2d55('0x1f')]?moment()[_0x2d55('0x1e')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x1a9dd6['id']});})[_0x2d55('0x27')](function(_0x1010cc){_0x512f22(_0x1010cc);});});};function _0x3a9dce(){return function(_0x2755a4){logger['error'](_0x2d55('0x28'),_0x2d55('0x15'),util['inspect'](_0x2755a4,{'showHidden':![],'depth':null}));};}var _0x588508=function(_0x520173){return new BPromise(function(_0x2bb124,_0xe69745){_0x5366e5[_0x2d55('0x1a')][_0x2d55('0x17')]({'where':{'phone':_0xb2a4ae['phone'],'CampaignId':_0x520173['id']}})[_0x2d55('0x20')](function(_0x322623){if(!_[_0x2d55('0x18')](_0x322623)){throw new Error(_0x2d55('0x19')+_0xb2a4ae[_0x2d55('0xc')]+_0x2d55('0x29')+_0x520173['id']);}return _0x5366e5[_0x2d55('0x1a')][_0x2d55('0x1b')]({'phone':_0xb2a4ae['phone'],'ContactId':_0xb2a4ae['id'],'ListId':_0xb2a4ae['ListId'],'priority':_0xb2a4ae[_0x2d55('0x1c')]?_0xb2a4ae[_0x2d55('0x1c')]:0x2,'scheduledat':_0xb2a4ae['scheduledat']?_0xb2a4ae['scheduledat']:moment()[_0x2d55('0x1e')](_0x2d55('0x26')),'callback':_0xb2a4ae[_0x2d55('0x1f')]?!![]:![],'callbackuniqueid':_0xb2a4ae[_0x2d55('0x1f')]?_0xb2a4ae[_0x2d55('0x1f')]:undefined,'callbackat':_0xb2a4ae[_0x2d55('0x1f')]?moment()[_0x2d55('0x1e')](_0x2d55('0x26')):undefined,'CampaignId':_0x520173['id']});})['catch'](function(_0x38f509){_0xe69745(_0x38f509);});});};var _0x29d9f6=function(_0xa315bb){return new BPromise(function(_0x5c7bde,_0x9e4ce){_0x5366e5['CmHopper'][_0x2d55('0x17')]({'where':{'phone':_0xb2a4ae[_0x2d55('0xc')],'CampaignId':_0xa315bb['id']}})[_0x2d55('0x20')](function(_0x3d281e){if(!_[_0x2d55('0x18')](_0x3d281e)){throw new Error(_0x2d55('0x19')+_0xb2a4ae[_0x2d55('0xc')]+_0x2d55('0x2a')+_0xa315bb['id']);}return _0x5366e5[_0x2d55('0x22')]['findOne']({'where':{'calleridnum':_0xb2a4ae[_0x2d55('0xc')],'CampaignId':_0xa315bb['id']}});})[_0x2d55('0x20')](function(_0x25066c){if(!_[_0x2d55('0x18')](_0x25066c)){throw new Error(_0x2d55('0x23')+_0xb2a4ae[_0x2d55('0xc')]+_0x2d55('0x2b')+_0xa315bb['id']);}return _0x5366e5[_0x2d55('0x1a')][_0x2d55('0x1b')]({'phone':_0xb2a4ae['phone'],'ContactId':_0xb2a4ae['id'],'ListId':_0xb2a4ae[_0x2d55('0x25')],'priority':_0xb2a4ae[_0x2d55('0x1c')]?_0xb2a4ae[_0x2d55('0x1c')]:0x2,'scheduledat':_0xb2a4ae[_0x2d55('0x1d')]?_0xb2a4ae['scheduledat']:moment()[_0x2d55('0x1e')](_0x2d55('0x26')),'callback':_0xb2a4ae['callbackUniqueid']?!![]:![],'callbackuniqueid':_0xb2a4ae[_0x2d55('0x1f')]?_0xb2a4ae['callbackUniqueid']:undefined,'callbackat':_0xb2a4ae['callbackUniqueid']?moment()[_0x2d55('0x1e')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0xa315bb['id']});})[_0x2d55('0x27')](function(_0x3a3dbf){_0x9e4ce(_0x3a3dbf);});});};if(_0xb2a4ae[_0x2d55('0x25')]){_0x5366e5[_0x2d55('0x2c')]['findAll']({'where':{'type':_0x2d55('0x2d')},'attributes':['id',_0x2d55('0x2e')],'include':[{'model':_0x5366e5[_0x2d55('0x2f')],'as':_0x2d55('0x30'),'where':{'id':_0xb2a4ae[_0x2d55('0x25')]}}]})['then'](function(_0x164b67){if(_0x164b67){var _0x395fcc=[];for(var _0x3bf190=0x0,_0x52170c;_0x3bf190<_0x164b67['length'];_0x3bf190+=0x1){_0x52170c=_0x164b67[_0x3bf190]['get']({'plain':!![]});switch(_0x52170c[_0x2d55('0x2e')]){case _0x2d55('0x31'):_0x2f6811(_0x52170c)[_0x2d55('0x27')](_0x2b3e82());break;case _0x2d55('0x32'):_0x258d13(_0x52170c)[_0x2d55('0x27')](_0x2b3e82());break;default:_0x5366e5[_0x2d55('0x1a')][_0x2d55('0x1b')]({'phone':_0xb2a4ae[_0x2d55('0xc')],'ContactId':_0xb2a4ae['id'],'ListId':_0xb2a4ae[_0x2d55('0x25')],'scheduledat':_0xb2a4ae[_0x2d55('0x1d')]?_0xb2a4ae['scheduledat']:moment()[_0x2d55('0x1e')](_0x2d55('0x26')),'priority':_0xb2a4ae['priority']?_0xb2a4ae[_0x2d55('0x1c')]:0x2,'callback':_0xb2a4ae[_0x2d55('0x1f')]?!![]:![],'callbackuniqueid':_0xb2a4ae[_0x2d55('0x1f')]?_0xb2a4ae['callbackUniqueid']:undefined,'callbackat':_0xb2a4ae[_0x2d55('0x1f')]?moment()[_0x2d55('0x1e')](_0x2d55('0x26')):undefined,'VoiceQueueId':_0x52170c['id']})[_0x2d55('0x27')](_0x2b3e82());}}}})['then'](function(){return _0x5366e5[_0x2d55('0x2c')]['findAll']({'where':{'type':_0x2d55('0x2d')},'attributes':['id'],'include':[{'model':_0x5366e5[_0x2d55('0x2f')],'as':_0x2d55('0x33'),'where':{'id':_0xb2a4ae[_0x2d55('0x25')]}}]})['then'](function(_0x1a8880){if(_0x1a8880){var _0x2f4712=[];for(var _0x230ec1=0x0,_0x50c546;_0x230ec1<_0x1a8880[_0x2d55('0x34')];_0x230ec1+=0x1){_0x50c546=_0x1a8880[_0x230ec1]['get']({'plain':!![]});_0x5366e5[_0x2d55('0x35')][_0x2d55('0x1b')]({'phone':_0xb2a4ae[_0x2d55('0xc')],'ContactId':_0xb2a4ae['id'],'ListId':_0xb2a4ae[_0x2d55('0x25')],'VoiceQueueId':_0x50c546['id']})[_0x2d55('0x27')](function(_0x115739){logger[_0x2d55('0x14')](_0x2d55('0x36'),_0x2d55('0x15'),_0x115739[_0x2d55('0x37')]);});}}});})[_0x2d55('0x20')](function(){return _0x5366e5[_0x2d55('0x38')][_0x2d55('0x39')]({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0x5366e5[_0x2d55('0x2f')],'as':'Lists','where':{'id':_0xb2a4ae[_0x2d55('0x25')]}}]})[_0x2d55('0x20')](function(_0x437df4){if(_0x437df4){var _0x3c2ed4=[];for(var _0x284e2e=0x0,_0x516592;_0x284e2e<_0x437df4[_0x2d55('0x34')];_0x284e2e+=0x1){_0x516592=_0x437df4[_0x284e2e]['get']({'plain':!![]});switch(_0x516592[_0x2d55('0x2e')]){case _0x2d55('0x31'):_0x29d9f6(_0x516592)['catch'](_0x3a9dce());break;case'onlyIfOpen':_0x588508(_0x516592)[_0x2d55('0x27')](_0x3a9dce());break;default:_0x5366e5[_0x2d55('0x1a')][_0x2d55('0x1b')]({'phone':_0xb2a4ae['phone'],'ContactId':_0xb2a4ae['id'],'ListId':_0xb2a4ae[_0x2d55('0x25')],'scheduledat':_0xb2a4ae[_0x2d55('0x1d')]?_0xb2a4ae[_0x2d55('0x1d')]:moment()[_0x2d55('0x1e')](_0x2d55('0x26')),'priority':_0xb2a4ae[_0x2d55('0x1c')]?_0xb2a4ae['priority']:0x2,'callback':_0xb2a4ae[_0x2d55('0x1f')]?!![]:![],'callbackuniqueid':_0xb2a4ae[_0x2d55('0x1f')]?_0xb2a4ae['callbackUniqueid']:undefined,'callbackat':_0xb2a4ae[_0x2d55('0x1f')]?moment()[_0x2d55('0x1e')](_0x2d55('0x26')):undefined,'CampaignId':_0x516592['id']})[_0x2d55('0x27')](_0x3a9dce());}}}});})[_0x2d55('0x20')](function(){return _0x5366e5[_0x2d55('0x38')]['findAll']({'attributes':['id'],'include':[{'model':_0x5366e5[_0x2d55('0x2f')],'as':_0x2d55('0x33'),'where':{'id':_0xb2a4ae[_0x2d55('0x25')]}}]})[_0x2d55('0x20')](function(_0x5b0b99){if(_0x5b0b99){var _0x43bfbc=[];for(var _0x1fc6ca=0x0,_0x43edb8;_0x1fc6ca<_0x5b0b99[_0x2d55('0x34')];_0x1fc6ca+=0x1){_0x43edb8=_0x5b0b99[_0x1fc6ca]['get']({'plain':!![]});_0x5366e5[_0x2d55('0x35')][_0x2d55('0x1b')]({'phone':_0xb2a4ae[_0x2d55('0xc')],'ContactId':_0xb2a4ae['id'],'ListId':_0xb2a4ae[_0x2d55('0x25')],'CampaignId':_0x43edb8['id']})['catch'](function(_0x37be31){logger[_0x2d55('0x14')](_0x2d55('0x36'),_0x2d55('0x15'),_0x37be31[_0x2d55('0x37')]);});}}});})[_0x2d55('0x20')](function(){_0x2ec3f5();})['catch'](function(_0x1ef748){logger['error']('cmContact,\x20%s,\x20%s',_0x2d55('0x15'),_0x1ef748['message']);_0x2ec3f5(_0x1ef748);});}else{_0x2ec3f5(new Error(_0x2d55('0x3a')));}},'afterDestroy':function(_0x59aaf9,_0x2b34d7,_0x360276){var _0x9ca702=_0x1d585[_0x2d55('0x12')];var _0x126f4a=_0x59aaf9[_0x2d55('0x13')]({'plain':!![]});return _0x9ca702['CmHopper'][_0x2d55('0x39')]({'raw':!![],'where':{'ListId':_0x126f4a[_0x2d55('0x25')],'ContactId':_0x126f4a['id']}})[_0x2d55('0x20')](function(_0x3b0e21){if(!_[_0x2d55('0x3b')](_0x3b0e21)){var _0x344837=[];for(var _0x355ee7=0x0;_0x355ee7<_0x3b0e21[_0x2d55('0x34')];_0x355ee7+=0x1){var _0x2649d3=_0x9ca702['CmHopper']['destroy']({'where':{'ListId':_0x3b0e21[_0x355ee7][_0x2d55('0x25')],'ContactId':_0x3b0e21[_0x355ee7]['ContactId'],'VoiceQueueId':_0x3b0e21[_0x355ee7][_0x2d55('0x3c')],'CampaignId':_0x3b0e21[_0x355ee7][_0x2d55('0x3d')]}});_0x344837['push'](_0x2649d3);}return BPromise[_0x2d55('0x3e')](_0x344837);}})[_0x2d55('0x20')](function(_0x294b75){logger['info'](_0x2d55('0x3f'),util['inspect'](_0x294b75,{'showHidden':![],'depth':null}));_0x360276();})[_0x2d55('0x27')](function(_0x33f344){logger[_0x2d55('0x14')]('[CmContact][afterDestroy][Error]',util[_0x2d55('0x16')](_0x33f344,{'showHidden':![],'depth':null}));_0x360276(_0x33f344);});}}});};