3fc25a4e885c5b8c34ec04b0eed2ce97aba559b3
[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 _0x9348=['CmList','Lists','length','always','onlyIfOpen','VoiceQueue','outbound','BlackLists','CmHopperBlack','message','Campaign','cmContact,\x20%s,\x20%s','List\x20not\x20found','isEmpty','ContactId','VoiceQueueId','CampaignId','push','all','info','[CmContact][afterDestroy][Succesfull]','lodash','util','../../config/logger','api','moment','request-promise','path','../../config/environment','./cmContact.attributes','exports','define','cm_contacts','phone','models','get','error','cmContact','afterCreate','inspect','CmHopper','findOne','then','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create','ListId','priority','scheduledat','callbackUniqueid','format','YYYY-MM-DD\x20HH:mm:ss','catch','\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','\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','findAll','dialCheckDuplicateType'];(function(_0x5e134f,_0x4e5309){var _0x464132=function(_0x22a8d0){while(--_0x22a8d0){_0x5e134f['push'](_0x5e134f['shift']());}};_0x464132(++_0x4e5309);}(_0x9348,0x10d));var _0x8934=function(_0x3348f4,_0x1ddf61){_0x3348f4=_0x3348f4-0x0;var _0x27b3a9=_0x9348[_0x3348f4];return _0x27b3a9;};'use strict';var _=require(_0x8934('0x0'));var util=require(_0x8934('0x1'));var logger=require(_0x8934('0x2'))(_0x8934('0x3'));var moment=require(_0x8934('0x4'));var BPromise=require('bluebird');var rp=require(_0x8934('0x5'));var fs=require('fs');var path=require(_0x8934('0x6'));var rimraf=require('rimraf');var config=require(_0x8934('0x7'));var attributes=require(_0x8934('0x8'));module[_0x8934('0x9')]=function(_0x2bce03,_0x4c70d7){return _0x2bce03[_0x8934('0xa')]('CmContact',attributes,{'tableName':_0x8934('0xb'),'paranoid':!![],'indexes':[{'name':_0x8934('0xc'),'fields':[_0x8934('0xc')]}],'timestamps':!![],'hooks':{'afterCreate':function(_0x53cbdf,_0x4b470d,_0x5ec16d){var _0x5336f0=_0x2bce03[_0x8934('0xd')];var _0x554432=_0x53cbdf[_0x8934('0xe')]({'plain':!![]});function _0x8a88c0(){return function(_0x1a7e91){logger[_0x8934('0xf')](_0x8934('0x10'),_0x8934('0x11'),util[_0x8934('0x12')](_0x1a7e91,{'showHidden':![],'depth':null}));};}var _0xbb421b=function(_0x4a999c){return new BPromise(function(_0x68427d,_0x108eab){_0x5336f0[_0x8934('0x13')][_0x8934('0x14')]({'where':{'phone':_0x554432[_0x8934('0xc')],'VoiceQueueId':_0x4a999c['id']}})[_0x8934('0x15')](function(_0x5b560f){if(!_[_0x8934('0x16')](_0x5b560f)){throw new Error(_0x8934('0x17')+_0x554432[_0x8934('0xc')]+_0x8934('0x18')+_0x4a999c['id']);}return _0x5336f0[_0x8934('0x13')][_0x8934('0x19')]({'phone':_0x554432[_0x8934('0xc')],'ContactId':_0x554432['id'],'ListId':_0x554432[_0x8934('0x1a')],'priority':_0x554432['priority']?_0x554432[_0x8934('0x1b')]:0x2,'scheduledat':_0x554432[_0x8934('0x1c')]?_0x554432[_0x8934('0x1c')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x554432['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x554432[_0x8934('0x1d')]?_0x554432['callbackUniqueid']:undefined,'callbackat':_0x554432[_0x8934('0x1d')]?moment()[_0x8934('0x1e')](_0x8934('0x1f')):undefined,'VoiceQueueId':_0x4a999c['id']});})[_0x8934('0x20')](function(_0x1b25ae){_0x108eab(_0x1b25ae);});});};var _0x5024e9=function(_0xf3998){return new BPromise(function(_0x5ae49f,_0x476c6c){_0x5336f0[_0x8934('0x13')][_0x8934('0x14')]({'where':{'phone':_0x554432[_0x8934('0xc')],'VoiceQueueId':_0xf3998['id']}})[_0x8934('0x15')](function(_0x331e18){if(!_[_0x8934('0x16')](_0x331e18)){throw new Error('cmContact,\x20afterCreate\x20'+_0x554432[_0x8934('0xc')]+_0x8934('0x21')+_0xf3998['id']);}return _0x5336f0[_0x8934('0x22')][_0x8934('0x14')]({'where':{'calleridnum':_0x554432[_0x8934('0xc')],'VoiceQueueId':_0xf3998['id']}});})['then'](function(_0x3cf295){if(!_[_0x8934('0x16')](_0x3cf295)){throw new Error(_0x8934('0x23')+_0x554432['phone']+_0x8934('0x24')+_0xf3998['id']);}return _0x5336f0['CmHopper'][_0x8934('0x19')]({'phone':_0x554432[_0x8934('0xc')],'ContactId':_0x554432['id'],'ListId':_0x554432[_0x8934('0x1a')],'priority':_0x554432['priority']?_0x554432[_0x8934('0x1b')]:0x2,'scheduledat':_0x554432[_0x8934('0x1c')]?_0x554432[_0x8934('0x1c')]:moment()[_0x8934('0x1e')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x554432[_0x8934('0x1d')]?!![]:![],'callbackuniqueid':_0x554432[_0x8934('0x1d')]?_0x554432[_0x8934('0x1d')]:undefined,'callbackat':_0x554432[_0x8934('0x1d')]?moment()[_0x8934('0x1e')](_0x8934('0x1f')):undefined,'VoiceQueueId':_0xf3998['id']});})[_0x8934('0x20')](function(_0x457634){_0x476c6c(_0x457634);});});};function _0x9c6a71(){return function(_0x18938a){logger['error'](_0x8934('0x10'),_0x8934('0x11'),util['inspect'](_0x18938a,{'showHidden':![],'depth':null}));};}var _0x2aa18e=function(_0x3d60f9){return new BPromise(function(_0x1a17b5,_0x13aeeb){_0x5336f0['CmHopper'][_0x8934('0x14')]({'where':{'phone':_0x554432[_0x8934('0xc')],'CampaignId':_0x3d60f9['id']}})[_0x8934('0x15')](function(_0x1af54b){if(!_[_0x8934('0x16')](_0x1af54b)){throw new Error('cmContact,\x20afterCreate\x20'+_0x554432[_0x8934('0xc')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x3d60f9['id']);}return _0x5336f0['CmHopper'][_0x8934('0x19')]({'phone':_0x554432[_0x8934('0xc')],'ContactId':_0x554432['id'],'ListId':_0x554432[_0x8934('0x1a')],'priority':_0x554432[_0x8934('0x1b')]?_0x554432['priority']:0x2,'scheduledat':_0x554432[_0x8934('0x1c')]?_0x554432[_0x8934('0x1c')]:moment()[_0x8934('0x1e')](_0x8934('0x1f')),'callback':_0x554432[_0x8934('0x1d')]?!![]:![],'callbackuniqueid':_0x554432['callbackUniqueid']?_0x554432[_0x8934('0x1d')]:undefined,'callbackat':_0x554432[_0x8934('0x1d')]?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x3d60f9['id']});})[_0x8934('0x20')](function(_0x2a790f){_0x13aeeb(_0x2a790f);});});};var _0x4a4a50=function(_0x519273){return new BPromise(function(_0x1a30c1,_0x177a57){_0x5336f0[_0x8934('0x13')][_0x8934('0x14')]({'where':{'phone':_0x554432[_0x8934('0xc')],'CampaignId':_0x519273['id']}})[_0x8934('0x15')](function(_0x30f8c6){if(!_[_0x8934('0x16')](_0x30f8c6)){throw new Error(_0x8934('0x17')+_0x554432[_0x8934('0xc')]+_0x8934('0x25')+_0x519273['id']);}return _0x5336f0['CmHopperFinal'][_0x8934('0x14')]({'where':{'calleridnum':_0x554432[_0x8934('0xc')],'CampaignId':_0x519273['id']}});})['then'](function(_0x405b71){if(!_[_0x8934('0x16')](_0x405b71)){throw new Error(_0x8934('0x23')+_0x554432[_0x8934('0xc')]+_0x8934('0x26')+_0x519273['id']);}return _0x5336f0['CmHopper']['create']({'phone':_0x554432['phone'],'ContactId':_0x554432['id'],'ListId':_0x554432[_0x8934('0x1a')],'priority':_0x554432[_0x8934('0x1b')]?_0x554432[_0x8934('0x1b')]:0x2,'scheduledat':_0x554432['scheduledat']?_0x554432[_0x8934('0x1c')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x554432[_0x8934('0x1d')]?!![]:![],'callbackuniqueid':_0x554432[_0x8934('0x1d')]?_0x554432['callbackUniqueid']:undefined,'callbackat':_0x554432['callbackUniqueid']?moment()[_0x8934('0x1e')](_0x8934('0x1f')):undefined,'CampaignId':_0x519273['id']});})[_0x8934('0x20')](function(_0x4b94b0){_0x177a57(_0x4b94b0);});});};if(_0x554432[_0x8934('0x1a')]){_0x5336f0['VoiceQueue'][_0x8934('0x27')]({'where':{'type':'outbound'},'attributes':['id',_0x8934('0x28')],'include':[{'model':_0x5336f0[_0x8934('0x29')],'as':_0x8934('0x2a'),'where':{'id':_0x554432['ListId']}}]})[_0x8934('0x15')](function(_0x350d04){if(_0x350d04){var _0x2d291e=[];for(var _0x1e339a=0x0,_0x5e1b67;_0x1e339a<_0x350d04[_0x8934('0x2b')];_0x1e339a+=0x1){_0x5e1b67=_0x350d04[_0x1e339a][_0x8934('0xe')]({'plain':!![]});switch(_0x5e1b67[_0x8934('0x28')]){case _0x8934('0x2c'):_0x5024e9(_0x5e1b67)[_0x8934('0x20')](_0x8a88c0());break;case _0x8934('0x2d'):_0xbb421b(_0x5e1b67)[_0x8934('0x20')](_0x8a88c0());break;default:_0x5336f0[_0x8934('0x13')]['create']({'phone':_0x554432['phone'],'ContactId':_0x554432['id'],'ListId':_0x554432['ListId'],'scheduledat':_0x554432[_0x8934('0x1c')]?_0x554432[_0x8934('0x1c')]:moment()['format'](_0x8934('0x1f')),'priority':_0x554432['priority']?_0x554432[_0x8934('0x1b')]:0x2,'callback':_0x554432[_0x8934('0x1d')]?!![]:![],'callbackuniqueid':_0x554432['callbackUniqueid']?_0x554432[_0x8934('0x1d')]:undefined,'callbackat':_0x554432[_0x8934('0x1d')]?moment()[_0x8934('0x1e')](_0x8934('0x1f')):undefined,'VoiceQueueId':_0x5e1b67['id']})['catch'](_0x8a88c0());}}}})[_0x8934('0x15')](function(){return _0x5336f0[_0x8934('0x2e')]['findAll']({'where':{'type':_0x8934('0x2f')},'attributes':['id'],'include':[{'model':_0x5336f0[_0x8934('0x29')],'as':_0x8934('0x30'),'where':{'id':_0x554432[_0x8934('0x1a')]}}]})[_0x8934('0x15')](function(_0x419e30){if(_0x419e30){var _0xa45543=[];for(var _0x2a1ce9=0x0,_0x76684;_0x2a1ce9<_0x419e30[_0x8934('0x2b')];_0x2a1ce9+=0x1){_0x76684=_0x419e30[_0x2a1ce9][_0x8934('0xe')]({'plain':!![]});_0x5336f0[_0x8934('0x31')][_0x8934('0x19')]({'phone':_0x554432[_0x8934('0xc')],'ContactId':_0x554432['id'],'ListId':_0x554432[_0x8934('0x1a')],'VoiceQueueId':_0x76684['id']})[_0x8934('0x20')](function(_0x311d76){logger[_0x8934('0xf')]('cmContact,\x20%s,\x20%s',_0x8934('0x11'),_0x311d76[_0x8934('0x32')]);});}}});})['then'](function(){return _0x5336f0['Campaign']['findAll']({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0x5336f0[_0x8934('0x29')],'as':_0x8934('0x2a'),'where':{'id':_0x554432[_0x8934('0x1a')]}}]})['then'](function(_0x4dd410){if(_0x4dd410){var _0x16eb4d=[];for(var _0x5aa035=0x0,_0x4d9a43;_0x5aa035<_0x4dd410[_0x8934('0x2b')];_0x5aa035+=0x1){_0x4d9a43=_0x4dd410[_0x5aa035][_0x8934('0xe')]({'plain':!![]});switch(_0x4d9a43[_0x8934('0x28')]){case _0x8934('0x2c'):_0x4a4a50(_0x4d9a43)[_0x8934('0x20')](_0x9c6a71());break;case _0x8934('0x2d'):_0x2aa18e(_0x4d9a43)[_0x8934('0x20')](_0x9c6a71());break;default:_0x5336f0['CmHopper'][_0x8934('0x19')]({'phone':_0x554432['phone'],'ContactId':_0x554432['id'],'ListId':_0x554432[_0x8934('0x1a')],'scheduledat':_0x554432[_0x8934('0x1c')]?_0x554432[_0x8934('0x1c')]:moment()[_0x8934('0x1e')](_0x8934('0x1f')),'priority':_0x554432[_0x8934('0x1b')]?_0x554432[_0x8934('0x1b')]:0x2,'callback':_0x554432[_0x8934('0x1d')]?!![]:![],'callbackuniqueid':_0x554432['callbackUniqueid']?_0x554432[_0x8934('0x1d')]:undefined,'callbackat':_0x554432[_0x8934('0x1d')]?moment()[_0x8934('0x1e')](_0x8934('0x1f')):undefined,'CampaignId':_0x4d9a43['id']})[_0x8934('0x20')](_0x9c6a71());}}}});})['then'](function(){return _0x5336f0[_0x8934('0x33')][_0x8934('0x27')]({'attributes':['id'],'include':[{'model':_0x5336f0[_0x8934('0x29')],'as':'BlackLists','where':{'id':_0x554432[_0x8934('0x1a')]}}]})[_0x8934('0x15')](function(_0x1e61cc){if(_0x1e61cc){var _0x5577f0=[];for(var _0x564b65=0x0,_0x582a54;_0x564b65<_0x1e61cc[_0x8934('0x2b')];_0x564b65+=0x1){_0x582a54=_0x1e61cc[_0x564b65][_0x8934('0xe')]({'plain':!![]});_0x5336f0[_0x8934('0x31')]['create']({'phone':_0x554432[_0x8934('0xc')],'ContactId':_0x554432['id'],'ListId':_0x554432[_0x8934('0x1a')],'CampaignId':_0x582a54['id']})['catch'](function(_0x5157d7){logger[_0x8934('0xf')](_0x8934('0x34'),_0x8934('0x11'),_0x5157d7[_0x8934('0x32')]);});}}});})['then'](function(){_0x5ec16d();})['catch'](function(_0x4ea19e){logger['error'](_0x8934('0x34'),_0x8934('0x11'),_0x4ea19e[_0x8934('0x32')]);_0x5ec16d(_0x4ea19e);});}else{_0x5ec16d(new Error(_0x8934('0x35')));}},'afterDestroy':function(_0x44cc23,_0x4382be,_0x5a487e){var _0x1d80a0=_0x2bce03[_0x8934('0xd')];var _0x4991bd=_0x44cc23[_0x8934('0xe')]({'plain':!![]});return _0x1d80a0['CmHopper'][_0x8934('0x27')]({'raw':!![],'where':{'ListId':_0x4991bd['ListId'],'ContactId':_0x4991bd['id']}})[_0x8934('0x15')](function(_0x24d17a){if(!_[_0x8934('0x36')](_0x24d17a)){var _0x31b672=[];for(var _0x458895=0x0;_0x458895<_0x24d17a[_0x8934('0x2b')];_0x458895+=0x1){var _0x17206f=_0x1d80a0['CmHopper']['destroy']({'where':{'ListId':_0x24d17a[_0x458895][_0x8934('0x1a')],'ContactId':_0x24d17a[_0x458895][_0x8934('0x37')],'VoiceQueueId':_0x24d17a[_0x458895][_0x8934('0x38')],'CampaignId':_0x24d17a[_0x458895][_0x8934('0x39')]}});_0x31b672[_0x8934('0x3a')](_0x17206f);}return BPromise[_0x8934('0x3b')](_0x31b672);}})[_0x8934('0x15')](function(_0x112957){logger[_0x8934('0x3c')](_0x8934('0x3d'),util[_0x8934('0x12')](_0x112957,{'showHidden':![],'depth':null}));_0x5a487e();})[_0x8934('0x20')](function(_0x5bcb09){logger[_0x8934('0xf')]('[CmContact][afterDestroy][Error]',util['inspect'](_0x5bcb09,{'showHidden':![],'depth':null}));_0x5a487e(_0x5bcb09);});}}});};