c77e78d2d8cfbb1ed33e6316cb35f509d511b7ad
[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 _0xe785=['mobile','fax','FULLTEXT','models','error','afterCreate','inspect','CmHopper','findOne','then','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','priority','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','catch','isNil','cmContact,\x20afterCreate\x20','\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','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','create','\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','findAll','outbound','CmList','length','always','onlyIfOpen','get','cmContact,\x20%s,\x20%s','message','dialCheckDuplicateType','Campaign','BlackLists','List\x20not\x20found','isEmpty','destroy','ContactId','CampaignId','push','all','lodash','util','api','moment','bluebird','request-promise','../../config/environment','./cmContact.attributes','exports','CmContact','cm_contacts','phone','fti_cm_contacts','lastName'];(function(_0x53c58d,_0x592b13){var _0x5e514a=function(_0x1e3e1b){while(--_0x1e3e1b){_0x53c58d['push'](_0x53c58d['shift']());}};_0x5e514a(++_0x592b13);}(_0xe785,0x128));var _0x5e78=function(_0x312dc1,_0x5b2fb4){_0x312dc1=_0x312dc1-0x0;var _0x313eb4=_0xe785[_0x312dc1];return _0x313eb4;};'use strict';var _=require(_0x5e78('0x0'));var util=require(_0x5e78('0x1'));var logger=require('../../config/logger')(_0x5e78('0x2'));var moment=require(_0x5e78('0x3'));var BPromise=require(_0x5e78('0x4'));var rp=require(_0x5e78('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x5e78('0x6'));var attributes=require(_0x5e78('0x7'));module[_0x5e78('0x8')]=function(_0x135552,_0x502114){return _0x135552['define'](_0x5e78('0x9'),attributes,{'tableName':_0x5e78('0xa'),'paranoid':!![],'indexes':[{'name':_0x5e78('0xb'),'fields':['phone']},{'name':_0x5e78('0xc'),'fields':['firstName',_0x5e78('0xd'),'phone',_0x5e78('0xe'),_0x5e78('0xf'),'email'],'type':_0x5e78('0x10')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x21daa1,_0x3146b4,_0x348bb1){var _0x1f80b2=_0x135552[_0x5e78('0x11')];var _0x6b8fb5=_0x21daa1['get']({'plain':!![]});function _0x46b082(){return function(_0x104712){logger[_0x5e78('0x12')]('cmContact',_0x5e78('0x13'),util[_0x5e78('0x14')](_0x104712,{'showHidden':![],'depth':null}));};}var _0x9e71a4=function(_0x1e49bf){return new BPromise(function(_0x51c20f,_0x4f125f){_0x1f80b2[_0x5e78('0x15')][_0x5e78('0x16')]({'where':{'phone':_0x6b8fb5[_0x5e78('0xb')],'VoiceQueueId':_0x1e49bf['id']}})[_0x5e78('0x17')](function(_0x154c7f){if(!_['isNil'](_0x154c7f)){throw new Error('cmContact,\x20afterCreate\x20'+_0x6b8fb5[_0x5e78('0xb')]+_0x5e78('0x18')+_0x1e49bf['id']);}return _0x1f80b2[_0x5e78('0x15')]['create']({'phone':_0x6b8fb5['phone'],'ContactId':_0x6b8fb5['id'],'ListId':_0x6b8fb5['ListId'],'priority':_0x6b8fb5['priority']?_0x6b8fb5[_0x5e78('0x19')]:0x2,'scheduledat':_0x6b8fb5[_0x5e78('0x1a')]?_0x6b8fb5[_0x5e78('0x1a')]:moment()[_0x5e78('0x1b')](_0x5e78('0x1c')),'callback':_0x6b8fb5[_0x5e78('0x1d')]?!![]:![],'callbackuniqueid':_0x6b8fb5['callbackUniqueid']?_0x6b8fb5[_0x5e78('0x1d')]:undefined,'callbackat':_0x6b8fb5[_0x5e78('0x1d')]?moment()[_0x5e78('0x1b')](_0x5e78('0x1c')):undefined,'VoiceQueueId':_0x1e49bf['id']});})[_0x5e78('0x1e')](function(_0x41e10b){_0x4f125f(_0x41e10b);});});};var _0xbab14d=function(_0x39e685){return new BPromise(function(_0x56a804,_0x2eb71d){_0x1f80b2[_0x5e78('0x15')]['findOne']({'where':{'phone':_0x6b8fb5[_0x5e78('0xb')],'VoiceQueueId':_0x39e685['id']}})[_0x5e78('0x17')](function(_0x3e297e){if(!_[_0x5e78('0x1f')](_0x3e297e)){throw new Error(_0x5e78('0x20')+_0x6b8fb5['phone']+_0x5e78('0x21')+_0x39e685['id']);}return _0x1f80b2[_0x5e78('0x22')][_0x5e78('0x16')]({'where':{'calleridnum':_0x6b8fb5[_0x5e78('0xb')],'VoiceQueueId':_0x39e685['id']}});})[_0x5e78('0x17')](function(_0x341b1e){if(!_[_0x5e78('0x1f')](_0x341b1e)){throw new Error(_0x5e78('0x23')+_0x6b8fb5['phone']+_0x5e78('0x24')+_0x39e685['id']);}return _0x1f80b2[_0x5e78('0x15')]['create']({'phone':_0x6b8fb5['phone'],'ContactId':_0x6b8fb5['id'],'ListId':_0x6b8fb5[_0x5e78('0x25')],'priority':_0x6b8fb5['priority']?_0x6b8fb5[_0x5e78('0x19')]:0x2,'scheduledat':_0x6b8fb5[_0x5e78('0x1a')]?_0x6b8fb5['scheduledat']:moment()[_0x5e78('0x1b')](_0x5e78('0x1c')),'callback':_0x6b8fb5['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x6b8fb5[_0x5e78('0x1d')]?_0x6b8fb5['callbackUniqueid']:undefined,'callbackat':_0x6b8fb5[_0x5e78('0x1d')]?moment()[_0x5e78('0x1b')](_0x5e78('0x1c')):undefined,'VoiceQueueId':_0x39e685['id']});})[_0x5e78('0x1e')](function(_0x527843){_0x2eb71d(_0x527843);});});};function _0x298cc3(){return function(_0x5a48b6){logger[_0x5e78('0x12')]('cmContact',_0x5e78('0x13'),util[_0x5e78('0x14')](_0x5a48b6,{'showHidden':![],'depth':null}));};}var _0x13a91a=function(_0x4cb744){return new BPromise(function(_0x120b85,_0x2c1d37){_0x1f80b2['CmHopper'][_0x5e78('0x16')]({'where':{'phone':_0x6b8fb5['phone'],'CampaignId':_0x4cb744['id']}})[_0x5e78('0x17')](function(_0x140920){if(!_['isNil'](_0x140920)){throw new Error(_0x5e78('0x20')+_0x6b8fb5[_0x5e78('0xb')]+_0x5e78('0x26')+_0x4cb744['id']);}return _0x1f80b2[_0x5e78('0x15')][_0x5e78('0x27')]({'phone':_0x6b8fb5[_0x5e78('0xb')],'ContactId':_0x6b8fb5['id'],'ListId':_0x6b8fb5[_0x5e78('0x25')],'priority':_0x6b8fb5[_0x5e78('0x19')]?_0x6b8fb5[_0x5e78('0x19')]:0x2,'scheduledat':_0x6b8fb5['scheduledat']?_0x6b8fb5[_0x5e78('0x1a')]:moment()['format'](_0x5e78('0x1c')),'callback':_0x6b8fb5['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x6b8fb5[_0x5e78('0x1d')]?_0x6b8fb5['callbackUniqueid']:undefined,'callbackat':_0x6b8fb5[_0x5e78('0x1d')]?moment()[_0x5e78('0x1b')](_0x5e78('0x1c')):undefined,'CampaignId':_0x4cb744['id']});})['catch'](function(_0x1e0184){_0x2c1d37(_0x1e0184);});});};var _0x283ac5=function(_0x530e93){return new BPromise(function(_0x4a2f0a,_0x8d252e){_0x1f80b2[_0x5e78('0x15')][_0x5e78('0x16')]({'where':{'phone':_0x6b8fb5[_0x5e78('0xb')],'CampaignId':_0x530e93['id']}})[_0x5e78('0x17')](function(_0x4fa5a3){if(!_[_0x5e78('0x1f')](_0x4fa5a3)){throw new Error(_0x5e78('0x20')+_0x6b8fb5[_0x5e78('0xb')]+_0x5e78('0x28')+_0x530e93['id']);}return _0x1f80b2[_0x5e78('0x22')]['findOne']({'where':{'calleridnum':_0x6b8fb5[_0x5e78('0xb')],'CampaignId':_0x530e93['id']}});})[_0x5e78('0x17')](function(_0xed25cf){if(!_[_0x5e78('0x1f')](_0xed25cf)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x6b8fb5[_0x5e78('0xb')]+_0x5e78('0x29')+_0x530e93['id']);}return _0x1f80b2[_0x5e78('0x15')][_0x5e78('0x27')]({'phone':_0x6b8fb5[_0x5e78('0xb')],'ContactId':_0x6b8fb5['id'],'ListId':_0x6b8fb5[_0x5e78('0x25')],'priority':_0x6b8fb5['priority']?_0x6b8fb5[_0x5e78('0x19')]:0x2,'scheduledat':_0x6b8fb5[_0x5e78('0x1a')]?_0x6b8fb5[_0x5e78('0x1a')]:moment()[_0x5e78('0x1b')](_0x5e78('0x1c')),'callback':_0x6b8fb5['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x6b8fb5[_0x5e78('0x1d')]?_0x6b8fb5['callbackUniqueid']:undefined,'callbackat':_0x6b8fb5[_0x5e78('0x1d')]?moment()[_0x5e78('0x1b')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x530e93['id']});})[_0x5e78('0x1e')](function(_0x223cde){_0x8d252e(_0x223cde);});});};if(_0x6b8fb5['ListId']){_0x1f80b2[_0x5e78('0x2a')][_0x5e78('0x2b')]({'where':{'type':_0x5e78('0x2c')},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0x1f80b2[_0x5e78('0x2d')],'as':'Lists','where':{'id':_0x6b8fb5[_0x5e78('0x25')]}}]})[_0x5e78('0x17')](function(_0x2a909f){if(_0x2a909f){var _0x1aef05=[];for(var _0x478d53=0x0,_0x1de964;_0x478d53<_0x2a909f[_0x5e78('0x2e')];_0x478d53+=0x1){_0x1de964=_0x2a909f[_0x478d53]['get']({'plain':!![]});switch(_0x1de964['dialCheckDuplicateType']){case _0x5e78('0x2f'):_0xbab14d(_0x1de964)[_0x5e78('0x1e')](_0x46b082());break;case _0x5e78('0x30'):_0x9e71a4(_0x1de964)[_0x5e78('0x1e')](_0x46b082());break;default:_0x1f80b2[_0x5e78('0x15')]['create']({'phone':_0x6b8fb5[_0x5e78('0xb')],'ContactId':_0x6b8fb5['id'],'ListId':_0x6b8fb5[_0x5e78('0x25')],'scheduledat':_0x6b8fb5[_0x5e78('0x1a')]?_0x6b8fb5[_0x5e78('0x1a')]:moment()[_0x5e78('0x1b')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x6b8fb5[_0x5e78('0x19')]?_0x6b8fb5[_0x5e78('0x19')]:0x2,'callback':_0x6b8fb5['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x6b8fb5['callbackUniqueid']?_0x6b8fb5['callbackUniqueid']:undefined,'callbackat':_0x6b8fb5[_0x5e78('0x1d')]?moment()[_0x5e78('0x1b')](_0x5e78('0x1c')):undefined,'VoiceQueueId':_0x1de964['id']})[_0x5e78('0x1e')](_0x46b082());}}}})[_0x5e78('0x17')](function(){return _0x1f80b2['VoiceQueue'][_0x5e78('0x2b')]({'where':{'type':_0x5e78('0x2c')},'attributes':['id'],'include':[{'model':_0x1f80b2[_0x5e78('0x2d')],'as':'BlackLists','where':{'id':_0x6b8fb5[_0x5e78('0x25')]}}]})[_0x5e78('0x17')](function(_0x2b21f0){if(_0x2b21f0){var _0x3d45fd=[];for(var _0x1a2fd7=0x0,_0x5ae69f;_0x1a2fd7<_0x2b21f0[_0x5e78('0x2e')];_0x1a2fd7+=0x1){_0x5ae69f=_0x2b21f0[_0x1a2fd7][_0x5e78('0x31')]({'plain':!![]});_0x1f80b2['CmHopperBlack'][_0x5e78('0x27')]({'phone':_0x6b8fb5[_0x5e78('0xb')],'ContactId':_0x6b8fb5['id'],'ListId':_0x6b8fb5[_0x5e78('0x25')],'VoiceQueueId':_0x5ae69f['id']})[_0x5e78('0x1e')](function(_0x29bd68){logger[_0x5e78('0x12')](_0x5e78('0x32'),_0x5e78('0x13'),_0x29bd68[_0x5e78('0x33')]);});}}});})[_0x5e78('0x17')](function(){return _0x1f80b2['Campaign'][_0x5e78('0x2b')]({'attributes':['id',_0x5e78('0x34')],'include':[{'model':_0x1f80b2['CmList'],'as':'Lists','where':{'id':_0x6b8fb5[_0x5e78('0x25')]}}]})[_0x5e78('0x17')](function(_0x9de7cb){if(_0x9de7cb){var _0x462d13=[];for(var _0x2b5e4c=0x0,_0x2c571d;_0x2b5e4c<_0x9de7cb[_0x5e78('0x2e')];_0x2b5e4c+=0x1){_0x2c571d=_0x9de7cb[_0x2b5e4c]['get']({'plain':!![]});switch(_0x2c571d[_0x5e78('0x34')]){case _0x5e78('0x2f'):_0x283ac5(_0x2c571d)[_0x5e78('0x1e')](_0x298cc3());break;case _0x5e78('0x30'):_0x13a91a(_0x2c571d)[_0x5e78('0x1e')](_0x298cc3());break;default:_0x1f80b2[_0x5e78('0x15')]['create']({'phone':_0x6b8fb5[_0x5e78('0xb')],'ContactId':_0x6b8fb5['id'],'ListId':_0x6b8fb5[_0x5e78('0x25')],'scheduledat':_0x6b8fb5[_0x5e78('0x1a')]?_0x6b8fb5['scheduledat']:moment()[_0x5e78('0x1b')](_0x5e78('0x1c')),'priority':_0x6b8fb5[_0x5e78('0x19')]?_0x6b8fb5[_0x5e78('0x19')]:0x2,'callback':_0x6b8fb5[_0x5e78('0x1d')]?!![]:![],'callbackuniqueid':_0x6b8fb5[_0x5e78('0x1d')]?_0x6b8fb5[_0x5e78('0x1d')]:undefined,'callbackat':_0x6b8fb5[_0x5e78('0x1d')]?moment()[_0x5e78('0x1b')](_0x5e78('0x1c')):undefined,'CampaignId':_0x2c571d['id']})[_0x5e78('0x1e')](_0x298cc3());}}}});})[_0x5e78('0x17')](function(){return _0x1f80b2[_0x5e78('0x35')][_0x5e78('0x2b')]({'attributes':['id'],'include':[{'model':_0x1f80b2[_0x5e78('0x2d')],'as':_0x5e78('0x36'),'where':{'id':_0x6b8fb5[_0x5e78('0x25')]}}]})[_0x5e78('0x17')](function(_0x5e0ea2){if(_0x5e0ea2){var _0x19a74b=[];for(var _0x2d8cef=0x0,_0x2bbd74;_0x2d8cef<_0x5e0ea2[_0x5e78('0x2e')];_0x2d8cef+=0x1){_0x2bbd74=_0x5e0ea2[_0x2d8cef][_0x5e78('0x31')]({'plain':!![]});_0x1f80b2['CmHopperBlack'][_0x5e78('0x27')]({'phone':_0x6b8fb5[_0x5e78('0xb')],'ContactId':_0x6b8fb5['id'],'ListId':_0x6b8fb5['ListId'],'CampaignId':_0x2bbd74['id']})[_0x5e78('0x1e')](function(_0x30c403){logger[_0x5e78('0x12')](_0x5e78('0x32'),_0x5e78('0x13'),_0x30c403[_0x5e78('0x33')]);});}}});})['then'](function(){_0x348bb1();})['catch'](function(_0x3f0dcf){logger[_0x5e78('0x12')](_0x5e78('0x32'),_0x5e78('0x13'),_0x3f0dcf[_0x5e78('0x33')]);_0x348bb1(_0x3f0dcf);});}else{_0x348bb1(new Error(_0x5e78('0x37')));}},'afterDestroy':function(_0x28b213,_0x21e00a,_0x35fab0){var _0x23490e=_0x135552[_0x5e78('0x11')];var _0x10b115=_0x28b213['get']({'plain':!![]});return _0x23490e['CmHopper'][_0x5e78('0x2b')]({'raw':!![],'where':{'ListId':_0x10b115[_0x5e78('0x25')],'ContactId':_0x10b115['id']}})['then'](function(_0x2225dc){if(!_[_0x5e78('0x38')](_0x2225dc)){var _0x357fb1=[];for(var _0x370917=0x0;_0x370917<_0x2225dc[_0x5e78('0x2e')];_0x370917+=0x1){var _0x8b95f1=_0x23490e['CmHopper'][_0x5e78('0x39')]({'where':{'ListId':_0x2225dc[_0x370917]['ListId'],'ContactId':_0x2225dc[_0x370917][_0x5e78('0x3a')],'VoiceQueueId':_0x2225dc[_0x370917]['VoiceQueueId'],'CampaignId':_0x2225dc[_0x370917][_0x5e78('0x3b')]}});_0x357fb1[_0x5e78('0x3c')](_0x8b95f1);}return BPromise[_0x5e78('0x3d')](_0x357fb1);}})[_0x5e78('0x17')](function(_0x24e939){logger['info']('[CmContact][afterDestroy][Succesfull]',util[_0x5e78('0x14')](_0x24e939,{'showHidden':![],'depth':null}));_0x35fab0();})[_0x5e78('0x1e')](function(_0x23b1f2){logger[_0x5e78('0x12')]('[CmContact][afterDestroy][Error]',util[_0x5e78('0x14')](_0x23b1f2,{'showHidden':![],'depth':null}));_0x35fab0(_0x23b1f2);});}}});};