Built motion from commit (unavailable).|2.4.18
[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 _0xea28=['request-promise','path','../../config/environment','./cmContact.attributes','exports','define','CmContact','cm_contacts','phone','models','error','cmContact','inspect','findOne','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopper','create','ListId','priority','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','catch','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopperFinal','then','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','afterCreate','\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','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','outbound','length','get','dialCheckDuplicateType','always','onlyIfOpen','VoiceQueue','findAll','CmList','BlackLists','CmHopperBlack','cmContact,\x20%s,\x20%s','Campaign','Lists','message','isEmpty','ContactId','CampaignId','push','all','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x2856c4,_0x362926){var _0x37a0b3=function(_0x3128d0){while(--_0x3128d0){_0x2856c4['push'](_0x2856c4['shift']());}};_0x37a0b3(++_0x362926);}(_0xea28,0x13a));var _0x8ea2=function(_0x18d535,_0x53ed9c){_0x18d535=_0x18d535-0x0;var _0x38f35e=_0xea28[_0x18d535];return _0x38f35e;};'use strict';var _=require(_0x8ea2('0x0'));var util=require(_0x8ea2('0x1'));var logger=require(_0x8ea2('0x2'))(_0x8ea2('0x3'));var moment=require(_0x8ea2('0x4'));var BPromise=require(_0x8ea2('0x5'));var rp=require(_0x8ea2('0x6'));var fs=require('fs');var path=require(_0x8ea2('0x7'));var rimraf=require('rimraf');var config=require(_0x8ea2('0x8'));var attributes=require(_0x8ea2('0x9'));module[_0x8ea2('0xa')]=function(_0x513a0d,_0x29b82b){return _0x513a0d[_0x8ea2('0xb')](_0x8ea2('0xc'),attributes,{'tableName':_0x8ea2('0xd'),'paranoid':!![],'indexes':[{'name':_0x8ea2('0xe'),'fields':[_0x8ea2('0xe')]}],'timestamps':!![],'hooks':{'afterCreate':function(_0x19bd6c,_0x320750,_0x3de4a1){var _0x3000f9=_0x513a0d[_0x8ea2('0xf')];var _0x21ae3d=_0x19bd6c['get']({'plain':!![]});function _0x4da3b1(){return function(_0x4722f3){logger[_0x8ea2('0x10')](_0x8ea2('0x11'),'afterCreate',util[_0x8ea2('0x12')](_0x4722f3,{'showHidden':![],'depth':null}));};}var _0x101a15=function(_0x1dfb6e){return new BPromise(function(_0x10aead,_0xe47c0e){_0x3000f9['CmHopper'][_0x8ea2('0x13')]({'where':{'phone':_0x21ae3d['phone'],'VoiceQueueId':_0x1dfb6e['id']}})['then'](function(_0x772bad){if(!_[_0x8ea2('0x14')](_0x772bad)){throw new Error(_0x8ea2('0x15')+_0x21ae3d[_0x8ea2('0xe')]+_0x8ea2('0x16')+_0x1dfb6e['id']);}return _0x3000f9[_0x8ea2('0x17')][_0x8ea2('0x18')]({'phone':_0x21ae3d[_0x8ea2('0xe')],'ContactId':_0x21ae3d['id'],'ListId':_0x21ae3d[_0x8ea2('0x19')],'priority':_0x21ae3d[_0x8ea2('0x1a')]?_0x21ae3d[_0x8ea2('0x1a')]:0x2,'scheduledat':_0x21ae3d[_0x8ea2('0x1b')]?_0x21ae3d[_0x8ea2('0x1b')]:moment()[_0x8ea2('0x1c')](_0x8ea2('0x1d')),'callback':_0x21ae3d[_0x8ea2('0x1e')]?!![]:![],'callbackuniqueid':_0x21ae3d[_0x8ea2('0x1e')]?_0x21ae3d[_0x8ea2('0x1e')]:undefined,'callbackat':_0x21ae3d[_0x8ea2('0x1e')]?moment()[_0x8ea2('0x1c')](_0x8ea2('0x1d')):undefined,'VoiceQueueId':_0x1dfb6e['id']});})[_0x8ea2('0x1f')](function(_0x52b58c){_0xe47c0e(_0x52b58c);});});};var _0x4be7c9=function(_0x3790e9){return new BPromise(function(_0x248c18,_0x29151a){_0x3000f9['CmHopper'][_0x8ea2('0x13')]({'where':{'phone':_0x21ae3d[_0x8ea2('0xe')],'VoiceQueueId':_0x3790e9['id']}})['then'](function(_0x3d593b){if(!_[_0x8ea2('0x14')](_0x3d593b)){throw new Error(_0x8ea2('0x15')+_0x21ae3d[_0x8ea2('0xe')]+_0x8ea2('0x20')+_0x3790e9['id']);}return _0x3000f9[_0x8ea2('0x21')][_0x8ea2('0x13')]({'where':{'calleridnum':_0x21ae3d[_0x8ea2('0xe')],'VoiceQueueId':_0x3790e9['id']}});})[_0x8ea2('0x22')](function(_0x4d5030){if(!_[_0x8ea2('0x14')](_0x4d5030)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x21ae3d[_0x8ea2('0xe')]+_0x8ea2('0x23')+_0x3790e9['id']);}return _0x3000f9[_0x8ea2('0x17')]['create']({'phone':_0x21ae3d['phone'],'ContactId':_0x21ae3d['id'],'ListId':_0x21ae3d[_0x8ea2('0x19')],'priority':_0x21ae3d['priority']?_0x21ae3d[_0x8ea2('0x1a')]:0x2,'scheduledat':_0x21ae3d['scheduledat']?_0x21ae3d[_0x8ea2('0x1b')]:moment()[_0x8ea2('0x1c')](_0x8ea2('0x1d')),'callback':_0x21ae3d[_0x8ea2('0x1e')]?!![]:![],'callbackuniqueid':_0x21ae3d['callbackUniqueid']?_0x21ae3d['callbackUniqueid']:undefined,'callbackat':_0x21ae3d[_0x8ea2('0x1e')]?moment()['format'](_0x8ea2('0x1d')):undefined,'VoiceQueueId':_0x3790e9['id']});})[_0x8ea2('0x1f')](function(_0x24f187){_0x29151a(_0x24f187);});});};function _0x41f482(){return function(_0x307c74){logger[_0x8ea2('0x10')](_0x8ea2('0x11'),_0x8ea2('0x24'),util[_0x8ea2('0x12')](_0x307c74,{'showHidden':![],'depth':null}));};}var _0x9c5fac=function(_0x56d914){return new BPromise(function(_0x5b7ff9,_0x3ed03e){_0x3000f9[_0x8ea2('0x17')]['findOne']({'where':{'phone':_0x21ae3d['phone'],'CampaignId':_0x56d914['id']}})[_0x8ea2('0x22')](function(_0x4e273e){if(!_[_0x8ea2('0x14')](_0x4e273e)){throw new Error(_0x8ea2('0x15')+_0x21ae3d['phone']+_0x8ea2('0x25')+_0x56d914['id']);}return _0x3000f9[_0x8ea2('0x17')][_0x8ea2('0x18')]({'phone':_0x21ae3d['phone'],'ContactId':_0x21ae3d['id'],'ListId':_0x21ae3d['ListId'],'priority':_0x21ae3d['priority']?_0x21ae3d[_0x8ea2('0x1a')]:0x2,'scheduledat':_0x21ae3d[_0x8ea2('0x1b')]?_0x21ae3d[_0x8ea2('0x1b')]:moment()['format'](_0x8ea2('0x1d')),'callback':_0x21ae3d[_0x8ea2('0x1e')]?!![]:![],'callbackuniqueid':_0x21ae3d[_0x8ea2('0x1e')]?_0x21ae3d[_0x8ea2('0x1e')]:undefined,'callbackat':_0x21ae3d[_0x8ea2('0x1e')]?moment()[_0x8ea2('0x1c')](_0x8ea2('0x1d')):undefined,'CampaignId':_0x56d914['id']});})[_0x8ea2('0x1f')](function(_0x5e9b1f){_0x3ed03e(_0x5e9b1f);});});};var _0x955ef3=function(_0x29e3f5){return new BPromise(function(_0x28798c,_0x467d97){_0x3000f9['CmHopper'][_0x8ea2('0x13')]({'where':{'phone':_0x21ae3d['phone'],'CampaignId':_0x29e3f5['id']}})[_0x8ea2('0x22')](function(_0x103d5a){if(!_[_0x8ea2('0x14')](_0x103d5a)){throw new Error(_0x8ea2('0x15')+_0x21ae3d['phone']+_0x8ea2('0x26')+_0x29e3f5['id']);}return _0x3000f9['CmHopperFinal']['findOne']({'where':{'calleridnum':_0x21ae3d[_0x8ea2('0xe')],'CampaignId':_0x29e3f5['id']}});})['then'](function(_0x61fb42){if(!_[_0x8ea2('0x14')](_0x61fb42)){throw new Error(_0x8ea2('0x27')+_0x21ae3d[_0x8ea2('0xe')]+_0x8ea2('0x28')+_0x29e3f5['id']);}return _0x3000f9['CmHopper'][_0x8ea2('0x18')]({'phone':_0x21ae3d['phone'],'ContactId':_0x21ae3d['id'],'ListId':_0x21ae3d[_0x8ea2('0x19')],'priority':_0x21ae3d[_0x8ea2('0x1a')]?_0x21ae3d[_0x8ea2('0x1a')]:0x2,'scheduledat':_0x21ae3d[_0x8ea2('0x1b')]?_0x21ae3d['scheduledat']:moment()[_0x8ea2('0x1c')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x21ae3d[_0x8ea2('0x1e')]?!![]:![],'callbackuniqueid':_0x21ae3d['callbackUniqueid']?_0x21ae3d[_0x8ea2('0x1e')]:undefined,'callbackat':_0x21ae3d[_0x8ea2('0x1e')]?moment()[_0x8ea2('0x1c')](_0x8ea2('0x1d')):undefined,'CampaignId':_0x29e3f5['id']});})[_0x8ea2('0x1f')](function(_0x251a10){_0x467d97(_0x251a10);});});};if(_0x21ae3d[_0x8ea2('0x19')]){_0x3000f9['VoiceQueue']['findAll']({'where':{'type':_0x8ea2('0x29')},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0x3000f9['CmList'],'as':'Lists','where':{'id':_0x21ae3d[_0x8ea2('0x19')]}}]})['then'](function(_0x40a532){if(_0x40a532){var _0x1b8028=[];for(var _0x39c944=0x0,_0x129079;_0x39c944<_0x40a532[_0x8ea2('0x2a')];_0x39c944+=0x1){_0x129079=_0x40a532[_0x39c944][_0x8ea2('0x2b')]({'plain':!![]});switch(_0x129079[_0x8ea2('0x2c')]){case _0x8ea2('0x2d'):_0x4be7c9(_0x129079)['catch'](_0x4da3b1());break;case _0x8ea2('0x2e'):_0x101a15(_0x129079)[_0x8ea2('0x1f')](_0x4da3b1());break;default:_0x3000f9[_0x8ea2('0x17')]['create']({'phone':_0x21ae3d[_0x8ea2('0xe')],'ContactId':_0x21ae3d['id'],'ListId':_0x21ae3d[_0x8ea2('0x19')],'scheduledat':_0x21ae3d[_0x8ea2('0x1b')]?_0x21ae3d[_0x8ea2('0x1b')]:moment()[_0x8ea2('0x1c')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x21ae3d[_0x8ea2('0x1a')]?_0x21ae3d[_0x8ea2('0x1a')]:0x2,'callback':_0x21ae3d[_0x8ea2('0x1e')]?!![]:![],'callbackuniqueid':_0x21ae3d['callbackUniqueid']?_0x21ae3d[_0x8ea2('0x1e')]:undefined,'callbackat':_0x21ae3d[_0x8ea2('0x1e')]?moment()[_0x8ea2('0x1c')](_0x8ea2('0x1d')):undefined,'VoiceQueueId':_0x129079['id']})[_0x8ea2('0x1f')](_0x4da3b1());}}}})[_0x8ea2('0x22')](function(){return _0x3000f9[_0x8ea2('0x2f')][_0x8ea2('0x30')]({'where':{'type':_0x8ea2('0x29')},'attributes':['id'],'include':[{'model':_0x3000f9[_0x8ea2('0x31')],'as':_0x8ea2('0x32'),'where':{'id':_0x21ae3d[_0x8ea2('0x19')]}}]})[_0x8ea2('0x22')](function(_0x12e81f){if(_0x12e81f){var _0x5c1212=[];for(var _0x2016a1=0x0,_0x256748;_0x2016a1<_0x12e81f[_0x8ea2('0x2a')];_0x2016a1+=0x1){_0x256748=_0x12e81f[_0x2016a1][_0x8ea2('0x2b')]({'plain':!![]});_0x3000f9[_0x8ea2('0x33')][_0x8ea2('0x18')]({'phone':_0x21ae3d[_0x8ea2('0xe')],'ContactId':_0x21ae3d['id'],'ListId':_0x21ae3d[_0x8ea2('0x19')],'VoiceQueueId':_0x256748['id']})['catch'](function(_0x12688a){logger[_0x8ea2('0x10')](_0x8ea2('0x34'),'afterCreate',_0x12688a['message']);});}}});})[_0x8ea2('0x22')](function(){return _0x3000f9[_0x8ea2('0x35')][_0x8ea2('0x30')]({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0x3000f9[_0x8ea2('0x31')],'as':_0x8ea2('0x36'),'where':{'id':_0x21ae3d[_0x8ea2('0x19')]}}]})[_0x8ea2('0x22')](function(_0xd40312){if(_0xd40312){var _0x51b33e=[];for(var _0x4afd85=0x0,_0x24a22a;_0x4afd85<_0xd40312[_0x8ea2('0x2a')];_0x4afd85+=0x1){_0x24a22a=_0xd40312[_0x4afd85][_0x8ea2('0x2b')]({'plain':!![]});switch(_0x24a22a['dialCheckDuplicateType']){case _0x8ea2('0x2d'):_0x955ef3(_0x24a22a)[_0x8ea2('0x1f')](_0x41f482());break;case _0x8ea2('0x2e'):_0x9c5fac(_0x24a22a)['catch'](_0x41f482());break;default:_0x3000f9['CmHopper']['create']({'phone':_0x21ae3d['phone'],'ContactId':_0x21ae3d['id'],'ListId':_0x21ae3d['ListId'],'scheduledat':_0x21ae3d[_0x8ea2('0x1b')]?_0x21ae3d[_0x8ea2('0x1b')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x21ae3d[_0x8ea2('0x1a')]?_0x21ae3d[_0x8ea2('0x1a')]:0x2,'callback':_0x21ae3d[_0x8ea2('0x1e')]?!![]:![],'callbackuniqueid':_0x21ae3d['callbackUniqueid']?_0x21ae3d[_0x8ea2('0x1e')]:undefined,'callbackat':_0x21ae3d[_0x8ea2('0x1e')]?moment()['format'](_0x8ea2('0x1d')):undefined,'CampaignId':_0x24a22a['id']})[_0x8ea2('0x1f')](_0x41f482());}}}});})[_0x8ea2('0x22')](function(){return _0x3000f9[_0x8ea2('0x35')][_0x8ea2('0x30')]({'attributes':['id'],'include':[{'model':_0x3000f9['CmList'],'as':'BlackLists','where':{'id':_0x21ae3d['ListId']}}]})[_0x8ea2('0x22')](function(_0x3c9fed){if(_0x3c9fed){var _0x2b95b0=[];for(var _0x74520e=0x0,_0x1d6a60;_0x74520e<_0x3c9fed[_0x8ea2('0x2a')];_0x74520e+=0x1){_0x1d6a60=_0x3c9fed[_0x74520e][_0x8ea2('0x2b')]({'plain':!![]});_0x3000f9['CmHopperBlack']['create']({'phone':_0x21ae3d['phone'],'ContactId':_0x21ae3d['id'],'ListId':_0x21ae3d[_0x8ea2('0x19')],'CampaignId':_0x1d6a60['id']})[_0x8ea2('0x1f')](function(_0x26b238){logger[_0x8ea2('0x10')]('cmContact,\x20%s,\x20%s',_0x8ea2('0x24'),_0x26b238[_0x8ea2('0x37')]);});}}});})['then'](function(){_0x3de4a1();})[_0x8ea2('0x1f')](function(_0x193c32){logger[_0x8ea2('0x10')](_0x8ea2('0x34'),_0x8ea2('0x24'),_0x193c32['message']);_0x3de4a1(_0x193c32);});}else{_0x3de4a1(new Error('List\x20not\x20found'));}},'afterDestroy':function(_0x4e87fe,_0x53a62c,_0x1e2066){var _0x2fd365=_0x513a0d[_0x8ea2('0xf')];var _0x3c44ef=_0x4e87fe['get']({'plain':!![]});return _0x2fd365[_0x8ea2('0x17')][_0x8ea2('0x30')]({'raw':!![],'where':{'ListId':_0x3c44ef[_0x8ea2('0x19')],'ContactId':_0x3c44ef['id']}})[_0x8ea2('0x22')](function(_0x537832){if(!_[_0x8ea2('0x38')](_0x537832)){var _0x4846f4=[];for(var _0x38d972=0x0;_0x38d972<_0x537832['length'];_0x38d972+=0x1){var _0x361bb3=_0x2fd365[_0x8ea2('0x17')]['destroy']({'where':{'ListId':_0x537832[_0x38d972]['ListId'],'ContactId':_0x537832[_0x38d972][_0x8ea2('0x39')],'VoiceQueueId':_0x537832[_0x38d972]['VoiceQueueId'],'CampaignId':_0x537832[_0x38d972][_0x8ea2('0x3a')]}});_0x4846f4[_0x8ea2('0x3b')](_0x361bb3);}return BPromise[_0x8ea2('0x3c')](_0x4846f4);}})[_0x8ea2('0x22')](function(_0x4dab8f){logger[_0x8ea2('0x3d')](_0x8ea2('0x3e'),util[_0x8ea2('0x12')](_0x4dab8f,{'showHidden':![],'depth':null}));_0x1e2066();})[_0x8ea2('0x1f')](function(_0xdde79){logger[_0x8ea2('0x10')](_0x8ea2('0x3f'),util[_0x8ea2('0x12')](_0xdde79,{'showHidden':![],'depth':null}));_0x1e2066(_0xdde79);});}}});};