f0ea587fa445ca0e4e01be89cbda42418c8b3e98
[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 _0xed3c=['onlyIfOpen','CmHopperBlack','cmContact,\x20%s,\x20%s','message','always','Campaign','BlackLists','List\x20not\x20found','isEmpty','destroy','VoiceQueueId','CampaignId','push','all','info','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','api','bluebird','request-promise','path','./cmContact.attributes','exports','phone','models','get','error','cmContact','inspect','CmHopper','findOne','then','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create','priority','scheduledat','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','format','catch','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','ListId','afterCreate','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','CmHopperFinal','cmContact,\x20afterCreate,\x20','VoiceQueue','findAll','outbound','CmList','Lists','length','dialCheckDuplicateType'];(function(_0x5d7227,_0x12aebe){var _0x15ac55=function(_0x58d13e){while(--_0x58d13e){_0x5d7227['push'](_0x5d7227['shift']());}};_0x15ac55(++_0x12aebe);}(_0xed3c,0x1a6));var _0xced3=function(_0x58e8eb,_0x2ac0c7){_0x58e8eb=_0x58e8eb-0x0;var _0x168540=_0xed3c[_0x58e8eb];return _0x168540;};'use strict';var _=require(_0xced3('0x0'));var util=require(_0xced3('0x1'));var logger=require(_0xced3('0x2'))(_0xced3('0x3'));var moment=require('moment');var BPromise=require(_0xced3('0x4'));var rp=require(_0xced3('0x5'));var fs=require('fs');var path=require(_0xced3('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xced3('0x7'));module[_0xced3('0x8')]=function(_0x2f92f8,_0x1cd694){return _0x2f92f8['define']('CmContact',attributes,{'tableName':'cm_contacts','paranoid':!![],'indexes':[{'name':_0xced3('0x9'),'fields':['phone']}],'timestamps':!![],'hooks':{'afterCreate':function(_0x5bc7a7,_0x4be020,_0x19a727){var _0x321c42=_0x2f92f8[_0xced3('0xa')];var _0x12612f=_0x5bc7a7[_0xced3('0xb')]({'plain':!![]});function _0x5934b2(){return function(_0x36ea7f){logger[_0xced3('0xc')](_0xced3('0xd'),'afterCreate',util[_0xced3('0xe')](_0x36ea7f,{'showHidden':![],'depth':null}));};}var _0x19b8c2=function(_0x42d879){return new BPromise(function(_0x3b2ac4,_0x457caf){_0x321c42[_0xced3('0xf')][_0xced3('0x10')]({'where':{'phone':_0x12612f['phone'],'VoiceQueueId':_0x42d879['id']}})[_0xced3('0x11')](function(_0x5e186e){if(!_[_0xced3('0x12')](_0x5e186e)){throw new Error(_0xced3('0x13')+_0x12612f[_0xced3('0x9')]+_0xced3('0x14')+_0x42d879['id']);}return _0x321c42['CmHopper'][_0xced3('0x15')]({'phone':_0x12612f[_0xced3('0x9')],'ContactId':_0x12612f['id'],'ListId':_0x12612f['ListId'],'priority':_0x12612f[_0xced3('0x16')]?_0x12612f[_0xced3('0x16')]:0x2,'scheduledat':_0x12612f[_0xced3('0x17')]?_0x12612f[_0xced3('0x17')]:moment()['format'](_0xced3('0x18')),'callback':_0x12612f['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x12612f[_0xced3('0x19')]?_0x12612f[_0xced3('0x19')]:undefined,'callbackat':_0x12612f[_0xced3('0x19')]?moment()[_0xced3('0x1a')](_0xced3('0x18')):undefined,'VoiceQueueId':_0x42d879['id']});})[_0xced3('0x1b')](function(_0xe0cf2e){_0x457caf(_0xe0cf2e);});});};var _0x16d30d=function(_0x3f688c){return new BPromise(function(_0x17c011,_0x2008f2){_0x321c42['CmHopper']['findOne']({'where':{'phone':_0x12612f['phone'],'VoiceQueueId':_0x3f688c['id']}})[_0xced3('0x11')](function(_0x342b9e){if(!_[_0xced3('0x12')](_0x342b9e)){throw new Error('cmContact,\x20afterCreate\x20'+_0x12612f[_0xced3('0x9')]+_0xced3('0x1c')+_0x3f688c['id']);}return _0x321c42['CmHopperFinal']['findOne']({'where':{'calleridnum':_0x12612f[_0xced3('0x9')],'VoiceQueueId':_0x3f688c['id']}});})[_0xced3('0x11')](function(_0x219fa8){if(!_[_0xced3('0x12')](_0x219fa8)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x12612f[_0xced3('0x9')]+_0xced3('0x1d')+_0x3f688c['id']);}return _0x321c42['CmHopper'][_0xced3('0x15')]({'phone':_0x12612f['phone'],'ContactId':_0x12612f['id'],'ListId':_0x12612f[_0xced3('0x1e')],'priority':_0x12612f[_0xced3('0x16')]?_0x12612f[_0xced3('0x16')]:0x2,'scheduledat':_0x12612f[_0xced3('0x17')]?_0x12612f[_0xced3('0x17')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x12612f[_0xced3('0x19')]?!![]:![],'callbackuniqueid':_0x12612f['callbackUniqueid']?_0x12612f[_0xced3('0x19')]:undefined,'callbackat':_0x12612f[_0xced3('0x19')]?moment()['format'](_0xced3('0x18')):undefined,'VoiceQueueId':_0x3f688c['id']});})[_0xced3('0x1b')](function(_0x196956){_0x2008f2(_0x196956);});});};function _0x1032d6(){return function(_0x4389f8){logger[_0xced3('0xc')](_0xced3('0xd'),_0xced3('0x1f'),util[_0xced3('0xe')](_0x4389f8,{'showHidden':![],'depth':null}));};}var _0x559b8e=function(_0xa78899){return new BPromise(function(_0x1b8baa,_0x101769){_0x321c42[_0xced3('0xf')][_0xced3('0x10')]({'where':{'phone':_0x12612f[_0xced3('0x9')],'CampaignId':_0xa78899['id']}})[_0xced3('0x11')](function(_0x4f2439){if(!_[_0xced3('0x12')](_0x4f2439)){throw new Error(_0xced3('0x13')+_0x12612f[_0xced3('0x9')]+_0xced3('0x20')+_0xa78899['id']);}return _0x321c42[_0xced3('0xf')][_0xced3('0x15')]({'phone':_0x12612f[_0xced3('0x9')],'ContactId':_0x12612f['id'],'ListId':_0x12612f[_0xced3('0x1e')],'priority':_0x12612f[_0xced3('0x16')]?_0x12612f[_0xced3('0x16')]:0x2,'scheduledat':_0x12612f[_0xced3('0x17')]?_0x12612f[_0xced3('0x17')]:moment()[_0xced3('0x1a')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x12612f[_0xced3('0x19')]?!![]:![],'callbackuniqueid':_0x12612f['callbackUniqueid']?_0x12612f[_0xced3('0x19')]:undefined,'callbackat':_0x12612f[_0xced3('0x19')]?moment()[_0xced3('0x1a')](_0xced3('0x18')):undefined,'CampaignId':_0xa78899['id']});})[_0xced3('0x1b')](function(_0xefac3d){_0x101769(_0xefac3d);});});};var _0x296554=function(_0x340be1){return new BPromise(function(_0x464c5f,_0x310e10){_0x321c42['CmHopper'][_0xced3('0x10')]({'where':{'phone':_0x12612f[_0xced3('0x9')],'CampaignId':_0x340be1['id']}})['then'](function(_0x468c21){if(!_[_0xced3('0x12')](_0x468c21)){throw new Error(_0xced3('0x13')+_0x12612f['phone']+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x340be1['id']);}return _0x321c42[_0xced3('0x21')]['findOne']({'where':{'calleridnum':_0x12612f[_0xced3('0x9')],'CampaignId':_0x340be1['id']}});})[_0xced3('0x11')](function(_0x5f0ab8){if(!_[_0xced3('0x12')](_0x5f0ab8)){throw new Error(_0xced3('0x22')+_0x12612f[_0xced3('0x9')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20'+_0x340be1['id']);}return _0x321c42[_0xced3('0xf')]['create']({'phone':_0x12612f['phone'],'ContactId':_0x12612f['id'],'ListId':_0x12612f[_0xced3('0x1e')],'priority':_0x12612f[_0xced3('0x16')]?_0x12612f[_0xced3('0x16')]:0x2,'scheduledat':_0x12612f['scheduledat']?_0x12612f[_0xced3('0x17')]:moment()[_0xced3('0x1a')](_0xced3('0x18')),'callback':_0x12612f[_0xced3('0x19')]?!![]:![],'callbackuniqueid':_0x12612f[_0xced3('0x19')]?_0x12612f[_0xced3('0x19')]:undefined,'callbackat':_0x12612f[_0xced3('0x19')]?moment()[_0xced3('0x1a')](_0xced3('0x18')):undefined,'CampaignId':_0x340be1['id']});})[_0xced3('0x1b')](function(_0x2b4a18){_0x310e10(_0x2b4a18);});});};if(_0x12612f[_0xced3('0x1e')]){_0x321c42[_0xced3('0x23')][_0xced3('0x24')]({'where':{'type':_0xced3('0x25')},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0x321c42[_0xced3('0x26')],'as':_0xced3('0x27'),'where':{'id':_0x12612f[_0xced3('0x1e')]}}]})[_0xced3('0x11')](function(_0x1de086){if(_0x1de086){var _0x446f34=[];for(var _0x145157=0x0,_0x413422;_0x145157<_0x1de086[_0xced3('0x28')];_0x145157+=0x1){_0x413422=_0x1de086[_0x145157]['get']({'plain':!![]});switch(_0x413422[_0xced3('0x29')]){case'always':_0x16d30d(_0x413422)[_0xced3('0x1b')](_0x5934b2());break;case _0xced3('0x2a'):_0x19b8c2(_0x413422)[_0xced3('0x1b')](_0x5934b2());break;default:_0x321c42['CmHopper'][_0xced3('0x15')]({'phone':_0x12612f[_0xced3('0x9')],'ContactId':_0x12612f['id'],'ListId':_0x12612f[_0xced3('0x1e')],'scheduledat':_0x12612f[_0xced3('0x17')]?_0x12612f['scheduledat']:moment()[_0xced3('0x1a')](_0xced3('0x18')),'priority':_0x12612f[_0xced3('0x16')]?_0x12612f[_0xced3('0x16')]:0x2,'callback':_0x12612f[_0xced3('0x19')]?!![]:![],'callbackuniqueid':_0x12612f['callbackUniqueid']?_0x12612f[_0xced3('0x19')]:undefined,'callbackat':_0x12612f[_0xced3('0x19')]?moment()[_0xced3('0x1a')](_0xced3('0x18')):undefined,'VoiceQueueId':_0x413422['id']})[_0xced3('0x1b')](_0x5934b2());}}}})[_0xced3('0x11')](function(){return _0x321c42[_0xced3('0x23')]['findAll']({'where':{'type':_0xced3('0x25')},'attributes':['id'],'include':[{'model':_0x321c42[_0xced3('0x26')],'as':'BlackLists','where':{'id':_0x12612f['ListId']}}]})[_0xced3('0x11')](function(_0x59b586){if(_0x59b586){var _0x2b4679=[];for(var _0x1a53c7=0x0,_0x33441c;_0x1a53c7<_0x59b586[_0xced3('0x28')];_0x1a53c7+=0x1){_0x33441c=_0x59b586[_0x1a53c7][_0xced3('0xb')]({'plain':!![]});_0x321c42[_0xced3('0x2b')][_0xced3('0x15')]({'phone':_0x12612f[_0xced3('0x9')],'ContactId':_0x12612f['id'],'ListId':_0x12612f[_0xced3('0x1e')],'VoiceQueueId':_0x33441c['id']})['catch'](function(_0x43d867){logger[_0xced3('0xc')](_0xced3('0x2c'),_0xced3('0x1f'),_0x43d867[_0xced3('0x2d')]);});}}});})[_0xced3('0x11')](function(){return _0x321c42['Campaign'][_0xced3('0x24')]({'attributes':['id',_0xced3('0x29')],'include':[{'model':_0x321c42[_0xced3('0x26')],'as':_0xced3('0x27'),'where':{'id':_0x12612f[_0xced3('0x1e')]}}]})[_0xced3('0x11')](function(_0x1543b0){if(_0x1543b0){var _0x120439=[];for(var _0x103dc1=0x0,_0x44d779;_0x103dc1<_0x1543b0[_0xced3('0x28')];_0x103dc1+=0x1){_0x44d779=_0x1543b0[_0x103dc1][_0xced3('0xb')]({'plain':!![]});switch(_0x44d779['dialCheckDuplicateType']){case _0xced3('0x2e'):_0x296554(_0x44d779)['catch'](_0x1032d6());break;case _0xced3('0x2a'):_0x559b8e(_0x44d779)[_0xced3('0x1b')](_0x1032d6());break;default:_0x321c42[_0xced3('0xf')]['create']({'phone':_0x12612f['phone'],'ContactId':_0x12612f['id'],'ListId':_0x12612f[_0xced3('0x1e')],'scheduledat':_0x12612f[_0xced3('0x17')]?_0x12612f['scheduledat']:moment()[_0xced3('0x1a')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x12612f[_0xced3('0x16')]?_0x12612f[_0xced3('0x16')]:0x2,'callback':_0x12612f['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x12612f[_0xced3('0x19')]?_0x12612f[_0xced3('0x19')]:undefined,'callbackat':_0x12612f[_0xced3('0x19')]?moment()['format'](_0xced3('0x18')):undefined,'CampaignId':_0x44d779['id']})['catch'](_0x1032d6());}}}});})[_0xced3('0x11')](function(){return _0x321c42[_0xced3('0x2f')][_0xced3('0x24')]({'attributes':['id'],'include':[{'model':_0x321c42[_0xced3('0x26')],'as':_0xced3('0x30'),'where':{'id':_0x12612f[_0xced3('0x1e')]}}]})[_0xced3('0x11')](function(_0x29e225){if(_0x29e225){var _0x1b2592=[];for(var _0x24ca7d=0x0,_0x329af8;_0x24ca7d<_0x29e225['length'];_0x24ca7d+=0x1){_0x329af8=_0x29e225[_0x24ca7d][_0xced3('0xb')]({'plain':!![]});_0x321c42[_0xced3('0x2b')][_0xced3('0x15')]({'phone':_0x12612f[_0xced3('0x9')],'ContactId':_0x12612f['id'],'ListId':_0x12612f[_0xced3('0x1e')],'CampaignId':_0x329af8['id']})[_0xced3('0x1b')](function(_0x4d0916){logger[_0xced3('0xc')](_0xced3('0x2c'),_0xced3('0x1f'),_0x4d0916[_0xced3('0x2d')]);});}}});})[_0xced3('0x11')](function(){_0x19a727();})[_0xced3('0x1b')](function(_0x56b18e){logger[_0xced3('0xc')]('cmContact,\x20%s,\x20%s',_0xced3('0x1f'),_0x56b18e['message']);_0x19a727(_0x56b18e);});}else{_0x19a727(new Error(_0xced3('0x31')));}},'afterDestroy':function(_0x12a961,_0x48f1b3,_0x31bf5f){var _0xce41d9=_0x2f92f8[_0xced3('0xa')];var _0x3bb7d5=_0x12a961[_0xced3('0xb')]({'plain':!![]});return _0xce41d9[_0xced3('0xf')][_0xced3('0x24')]({'raw':!![],'where':{'ListId':_0x3bb7d5[_0xced3('0x1e')],'ContactId':_0x3bb7d5['id']}})[_0xced3('0x11')](function(_0x1830db){if(!_[_0xced3('0x32')](_0x1830db)){var _0xc512f8=[];for(var _0x38033f=0x0;_0x38033f<_0x1830db['length'];_0x38033f+=0x1){var _0x996530=_0xce41d9[_0xced3('0xf')][_0xced3('0x33')]({'where':{'ListId':_0x1830db[_0x38033f][_0xced3('0x1e')],'ContactId':_0x1830db[_0x38033f]['ContactId'],'VoiceQueueId':_0x1830db[_0x38033f][_0xced3('0x34')],'CampaignId':_0x1830db[_0x38033f][_0xced3('0x35')]}});_0xc512f8[_0xced3('0x36')](_0x996530);}return BPromise[_0xced3('0x37')](_0xc512f8);}})[_0xced3('0x11')](function(_0x13643c){logger[_0xced3('0x38')]('[CmContact][afterDestroy][Succesfull]',util[_0xced3('0xe')](_0x13643c,{'showHidden':![],'depth':null}));_0x31bf5f();})[_0xced3('0x1b')](function(_0x5db4eb){logger[_0xced3('0xc')](_0xced3('0x39'),util[_0xced3('0xe')](_0x5db4eb,{'showHidden':![],'depth':null}));_0x31bf5f(_0x5db4eb);});}}});};