Built motion from commit (unavailable).|2.4.20
[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 _0x4483=['./cmContact.attributes','exports','define','CmContact','cm_contacts','phone','models','get','error','cmContact','afterCreate','CmHopper','findOne','isNil','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','ListId','priority','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','catch','cmContact,\x20afterCreate\x20','then','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','create','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20','CmHopperFinal','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','findAll','outbound','dialCheckDuplicateType','Lists','always','onlyIfOpen','VoiceQueue','BlackLists','length','CmHopperBlack','cmContact,\x20%s,\x20%s','message','Campaign','CmList','List\x20not\x20found','isEmpty','destroy','ContactId','VoiceQueueId','push','all','info','inspect','lodash','util','../../config/logger','moment','bluebird','request-promise','path','rimraf'];(function(_0xf3c843,_0x8ff24e){var _0x3191c6=function(_0x2f1ef7){while(--_0x2f1ef7){_0xf3c843['push'](_0xf3c843['shift']());}};_0x3191c6(++_0x8ff24e);}(_0x4483,0x1a3));var _0x3448=function(_0x1f1b3b,_0x4ddc5d){_0x1f1b3b=_0x1f1b3b-0x0;var _0x2c1dec=_0x4483[_0x1f1b3b];return _0x2c1dec;};'use strict';var _=require(_0x3448('0x0'));var util=require(_0x3448('0x1'));var logger=require(_0x3448('0x2'))('api');var moment=require(_0x3448('0x3'));var BPromise=require(_0x3448('0x4'));var rp=require(_0x3448('0x5'));var fs=require('fs');var path=require(_0x3448('0x6'));var rimraf=require(_0x3448('0x7'));var config=require('../../config/environment');var attributes=require(_0x3448('0x8'));module[_0x3448('0x9')]=function(_0x1b05db,_0xd3606d){return _0x1b05db[_0x3448('0xa')](_0x3448('0xb'),attributes,{'tableName':_0x3448('0xc'),'paranoid':!![],'indexes':[{'name':_0x3448('0xd'),'fields':['phone']}],'timestamps':!![],'hooks':{'afterCreate':function(_0x5c82c6,_0x46b1ee,_0x25c152){var _0xc36409=_0x1b05db[_0x3448('0xe')];var _0x3f4364=_0x5c82c6[_0x3448('0xf')]({'plain':!![]});function _0x2bdf02(){return function(_0x32cd61){logger[_0x3448('0x10')](_0x3448('0x11'),_0x3448('0x12'),util['inspect'](_0x32cd61,{'showHidden':![],'depth':null}));};}var _0x5bf09e=function(_0x298ae6){return new BPromise(function(_0x38fbb1,_0x5f52bd){_0xc36409[_0x3448('0x13')][_0x3448('0x14')]({'where':{'phone':_0x3f4364[_0x3448('0xd')],'VoiceQueueId':_0x298ae6['id']}})['then'](function(_0x14104c){if(!_[_0x3448('0x15')](_0x14104c)){throw new Error('cmContact,\x20afterCreate\x20'+_0x3f4364[_0x3448('0xd')]+_0x3448('0x16')+_0x298ae6['id']);}return _0xc36409[_0x3448('0x13')]['create']({'phone':_0x3f4364[_0x3448('0xd')],'ContactId':_0x3f4364['id'],'ListId':_0x3f4364[_0x3448('0x17')],'priority':_0x3f4364[_0x3448('0x18')]?_0x3f4364[_0x3448('0x18')]:0x2,'scheduledat':_0x3f4364[_0x3448('0x19')]?_0x3f4364[_0x3448('0x19')]:moment()[_0x3448('0x1a')](_0x3448('0x1b')),'callback':_0x3f4364['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x3f4364[_0x3448('0x1c')]?_0x3f4364['callbackUniqueid']:undefined,'callbackat':_0x3f4364['callbackUniqueid']?moment()['format'](_0x3448('0x1b')):undefined,'VoiceQueueId':_0x298ae6['id']});})[_0x3448('0x1d')](function(_0xda4040){_0x5f52bd(_0xda4040);});});};var _0x5b5e26=function(_0x3df082){return new BPromise(function(_0x392c8d,_0x317de6){_0xc36409[_0x3448('0x13')][_0x3448('0x14')]({'where':{'phone':_0x3f4364[_0x3448('0xd')],'VoiceQueueId':_0x3df082['id']}})['then'](function(_0x54c7ee){if(!_['isNil'](_0x54c7ee)){throw new Error(_0x3448('0x1e')+_0x3f4364[_0x3448('0xd')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x3df082['id']);}return _0xc36409['CmHopperFinal'][_0x3448('0x14')]({'where':{'calleridnum':_0x3f4364[_0x3448('0xd')],'VoiceQueueId':_0x3df082['id']}});})[_0x3448('0x1f')](function(_0x4368c7){if(!_[_0x3448('0x15')](_0x4368c7)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x3f4364[_0x3448('0xd')]+_0x3448('0x20')+_0x3df082['id']);}return _0xc36409[_0x3448('0x13')][_0x3448('0x21')]({'phone':_0x3f4364[_0x3448('0xd')],'ContactId':_0x3f4364['id'],'ListId':_0x3f4364['ListId'],'priority':_0x3f4364[_0x3448('0x18')]?_0x3f4364[_0x3448('0x18')]:0x2,'scheduledat':_0x3f4364['scheduledat']?_0x3f4364[_0x3448('0x19')]:moment()[_0x3448('0x1a')](_0x3448('0x1b')),'callback':_0x3f4364[_0x3448('0x1c')]?!![]:![],'callbackuniqueid':_0x3f4364[_0x3448('0x1c')]?_0x3f4364[_0x3448('0x1c')]:undefined,'callbackat':_0x3f4364[_0x3448('0x1c')]?moment()[_0x3448('0x1a')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x3df082['id']});})[_0x3448('0x1d')](function(_0x450704){_0x317de6(_0x450704);});});};function _0xcfdc5(){return function(_0x52c09d){logger[_0x3448('0x10')]('cmContact','afterCreate',util['inspect'](_0x52c09d,{'showHidden':![],'depth':null}));};}var _0x52fb48=function(_0xff6513){return new BPromise(function(_0x5e96f0,_0x49ad42){_0xc36409[_0x3448('0x13')][_0x3448('0x14')]({'where':{'phone':_0x3f4364[_0x3448('0xd')],'CampaignId':_0xff6513['id']}})[_0x3448('0x1f')](function(_0x4f4f32){if(!_[_0x3448('0x15')](_0x4f4f32)){throw new Error(_0x3448('0x1e')+_0x3f4364[_0x3448('0xd')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0xff6513['id']);}return _0xc36409[_0x3448('0x13')][_0x3448('0x21')]({'phone':_0x3f4364['phone'],'ContactId':_0x3f4364['id'],'ListId':_0x3f4364['ListId'],'priority':_0x3f4364[_0x3448('0x18')]?_0x3f4364[_0x3448('0x18')]:0x2,'scheduledat':_0x3f4364[_0x3448('0x19')]?_0x3f4364[_0x3448('0x19')]:moment()['format'](_0x3448('0x1b')),'callback':_0x3f4364[_0x3448('0x1c')]?!![]:![],'callbackuniqueid':_0x3f4364[_0x3448('0x1c')]?_0x3f4364[_0x3448('0x1c')]:undefined,'callbackat':_0x3f4364['callbackUniqueid']?moment()[_0x3448('0x1a')](_0x3448('0x1b')):undefined,'CampaignId':_0xff6513['id']});})['catch'](function(_0x167266){_0x49ad42(_0x167266);});});};var _0x25d3df=function(_0x89d6ae){return new BPromise(function(_0x25e629,_0x14a830){_0xc36409[_0x3448('0x13')][_0x3448('0x14')]({'where':{'phone':_0x3f4364[_0x3448('0xd')],'CampaignId':_0x89d6ae['id']}})[_0x3448('0x1f')](function(_0x49c469){if(!_['isNil'](_0x49c469)){throw new Error(_0x3448('0x1e')+_0x3f4364['phone']+_0x3448('0x22')+_0x89d6ae['id']);}return _0xc36409[_0x3448('0x23')][_0x3448('0x14')]({'where':{'calleridnum':_0x3f4364[_0x3448('0xd')],'CampaignId':_0x89d6ae['id']}});})['then'](function(_0x1ec854){if(!_[_0x3448('0x15')](_0x1ec854)){throw new Error(_0x3448('0x24')+_0x3f4364[_0x3448('0xd')]+_0x3448('0x25')+_0x89d6ae['id']);}return _0xc36409[_0x3448('0x13')][_0x3448('0x21')]({'phone':_0x3f4364[_0x3448('0xd')],'ContactId':_0x3f4364['id'],'ListId':_0x3f4364[_0x3448('0x17')],'priority':_0x3f4364['priority']?_0x3f4364[_0x3448('0x18')]:0x2,'scheduledat':_0x3f4364[_0x3448('0x19')]?_0x3f4364[_0x3448('0x19')]:moment()[_0x3448('0x1a')](_0x3448('0x1b')),'callback':_0x3f4364['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x3f4364[_0x3448('0x1c')]?_0x3f4364[_0x3448('0x1c')]:undefined,'callbackat':_0x3f4364[_0x3448('0x1c')]?moment()[_0x3448('0x1a')](_0x3448('0x1b')):undefined,'CampaignId':_0x89d6ae['id']});})[_0x3448('0x1d')](function(_0x415985){_0x14a830(_0x415985);});});};if(_0x3f4364[_0x3448('0x17')]){_0xc36409['VoiceQueue'][_0x3448('0x26')]({'where':{'type':_0x3448('0x27')},'attributes':['id',_0x3448('0x28')],'include':[{'model':_0xc36409['CmList'],'as':_0x3448('0x29'),'where':{'id':_0x3f4364[_0x3448('0x17')]}}]})[_0x3448('0x1f')](function(_0x26d6b8){if(_0x26d6b8){var _0x3bcaf6=[];for(var _0x24877d=0x0,_0x213065;_0x24877d<_0x26d6b8['length'];_0x24877d+=0x1){_0x213065=_0x26d6b8[_0x24877d][_0x3448('0xf')]({'plain':!![]});switch(_0x213065[_0x3448('0x28')]){case _0x3448('0x2a'):_0x5b5e26(_0x213065)[_0x3448('0x1d')](_0x2bdf02());break;case _0x3448('0x2b'):_0x5bf09e(_0x213065)[_0x3448('0x1d')](_0x2bdf02());break;default:_0xc36409['CmHopper'][_0x3448('0x21')]({'phone':_0x3f4364['phone'],'ContactId':_0x3f4364['id'],'ListId':_0x3f4364['ListId'],'scheduledat':_0x3f4364[_0x3448('0x19')]?_0x3f4364[_0x3448('0x19')]:moment()['format'](_0x3448('0x1b')),'priority':_0x3f4364[_0x3448('0x18')]?_0x3f4364['priority']:0x2,'callback':_0x3f4364[_0x3448('0x1c')]?!![]:![],'callbackuniqueid':_0x3f4364[_0x3448('0x1c')]?_0x3f4364['callbackUniqueid']:undefined,'callbackat':_0x3f4364[_0x3448('0x1c')]?moment()[_0x3448('0x1a')](_0x3448('0x1b')):undefined,'VoiceQueueId':_0x213065['id']})[_0x3448('0x1d')](_0x2bdf02());}}}})[_0x3448('0x1f')](function(){return _0xc36409[_0x3448('0x2c')][_0x3448('0x26')]({'where':{'type':'outbound'},'attributes':['id'],'include':[{'model':_0xc36409['CmList'],'as':_0x3448('0x2d'),'where':{'id':_0x3f4364[_0x3448('0x17')]}}]})[_0x3448('0x1f')](function(_0x3f48e3){if(_0x3f48e3){var _0x527259=[];for(var _0x23227f=0x0,_0x198e30;_0x23227f<_0x3f48e3[_0x3448('0x2e')];_0x23227f+=0x1){_0x198e30=_0x3f48e3[_0x23227f][_0x3448('0xf')]({'plain':!![]});_0xc36409[_0x3448('0x2f')]['create']({'phone':_0x3f4364[_0x3448('0xd')],'ContactId':_0x3f4364['id'],'ListId':_0x3f4364['ListId'],'VoiceQueueId':_0x198e30['id']})[_0x3448('0x1d')](function(_0x31787c){logger['error'](_0x3448('0x30'),_0x3448('0x12'),_0x31787c[_0x3448('0x31')]);});}}});})[_0x3448('0x1f')](function(){return _0xc36409[_0x3448('0x32')][_0x3448('0x26')]({'attributes':['id',_0x3448('0x28')],'include':[{'model':_0xc36409['CmList'],'as':_0x3448('0x29'),'where':{'id':_0x3f4364[_0x3448('0x17')]}}]})['then'](function(_0x5a81dd){if(_0x5a81dd){var _0xf0355d=[];for(var _0x3d6598=0x0,_0x4d20ba;_0x3d6598<_0x5a81dd['length'];_0x3d6598+=0x1){_0x4d20ba=_0x5a81dd[_0x3d6598][_0x3448('0xf')]({'plain':!![]});switch(_0x4d20ba[_0x3448('0x28')]){case _0x3448('0x2a'):_0x25d3df(_0x4d20ba)[_0x3448('0x1d')](_0xcfdc5());break;case _0x3448('0x2b'):_0x52fb48(_0x4d20ba)[_0x3448('0x1d')](_0xcfdc5());break;default:_0xc36409[_0x3448('0x13')]['create']({'phone':_0x3f4364['phone'],'ContactId':_0x3f4364['id'],'ListId':_0x3f4364['ListId'],'scheduledat':_0x3f4364[_0x3448('0x19')]?_0x3f4364[_0x3448('0x19')]:moment()['format'](_0x3448('0x1b')),'priority':_0x3f4364[_0x3448('0x18')]?_0x3f4364['priority']:0x2,'callback':_0x3f4364[_0x3448('0x1c')]?!![]:![],'callbackuniqueid':_0x3f4364[_0x3448('0x1c')]?_0x3f4364['callbackUniqueid']:undefined,'callbackat':_0x3f4364[_0x3448('0x1c')]?moment()[_0x3448('0x1a')](_0x3448('0x1b')):undefined,'CampaignId':_0x4d20ba['id']})[_0x3448('0x1d')](_0xcfdc5());}}}});})[_0x3448('0x1f')](function(){return _0xc36409[_0x3448('0x32')][_0x3448('0x26')]({'attributes':['id'],'include':[{'model':_0xc36409[_0x3448('0x33')],'as':_0x3448('0x2d'),'where':{'id':_0x3f4364['ListId']}}]})[_0x3448('0x1f')](function(_0x5f358e){if(_0x5f358e){var _0x2991e8=[];for(var _0x108b99=0x0,_0x3c2cdc;_0x108b99<_0x5f358e[_0x3448('0x2e')];_0x108b99+=0x1){_0x3c2cdc=_0x5f358e[_0x108b99][_0x3448('0xf')]({'plain':!![]});_0xc36409[_0x3448('0x2f')]['create']({'phone':_0x3f4364[_0x3448('0xd')],'ContactId':_0x3f4364['id'],'ListId':_0x3f4364['ListId'],'CampaignId':_0x3c2cdc['id']})[_0x3448('0x1d')](function(_0xceff06){logger[_0x3448('0x10')](_0x3448('0x30'),_0x3448('0x12'),_0xceff06['message']);});}}});})['then'](function(){_0x25c152();})[_0x3448('0x1d')](function(_0x38c3f6){logger[_0x3448('0x10')]('cmContact,\x20%s,\x20%s',_0x3448('0x12'),_0x38c3f6[_0x3448('0x31')]);_0x25c152(_0x38c3f6);});}else{_0x25c152(new Error(_0x3448('0x34')));}},'afterDestroy':function(_0x3128eb,_0x1eb376,_0x28205e){var _0x35211e=_0x1b05db[_0x3448('0xe')];var _0x36a151=_0x3128eb[_0x3448('0xf')]({'plain':!![]});return _0x35211e[_0x3448('0x13')][_0x3448('0x26')]({'raw':!![],'where':{'ListId':_0x36a151[_0x3448('0x17')],'ContactId':_0x36a151['id']}})[_0x3448('0x1f')](function(_0x3d1fd6){if(!_[_0x3448('0x35')](_0x3d1fd6)){var _0x255cac=[];for(var _0x2934c7=0x0;_0x2934c7<_0x3d1fd6['length'];_0x2934c7+=0x1){var _0x1ce901=_0x35211e['CmHopper'][_0x3448('0x36')]({'where':{'ListId':_0x3d1fd6[_0x2934c7]['ListId'],'ContactId':_0x3d1fd6[_0x2934c7][_0x3448('0x37')],'VoiceQueueId':_0x3d1fd6[_0x2934c7][_0x3448('0x38')],'CampaignId':_0x3d1fd6[_0x2934c7]['CampaignId']}});_0x255cac[_0x3448('0x39')](_0x1ce901);}return BPromise[_0x3448('0x3a')](_0x255cac);}})['then'](function(_0x4f6902){logger[_0x3448('0x3b')]('[CmContact][afterDestroy][Succesfull]',util['inspect'](_0x4f6902,{'showHidden':![],'depth':null}));_0x28205e();})[_0x3448('0x1d')](function(_0xb64f29){logger['error']('[CmContact][afterDestroy][Error]',util[_0x3448('0x3c')](_0xb64f29,{'showHidden':![],'depth':null}));_0x28205e(_0xb64f29);});}}});};