Built motion from commit (unavailable).|2.5.8
[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 _0xe0dc=['cmContact,\x20%s,\x20%s','Campaign','Lists','always','onlyIfOpen','message','List\x20not\x20found','models','isEmpty','destroy','ContactId','VoiceQueueId','push','all','info','[CmContact][afterDestroy][Error]','lodash','../../config/logger','api','bluebird','request-promise','path','rimraf','./cmContact.attributes','define','CmContact','cm_contacts','phone','fti_cm_contacts','firstName','lastName','mobile','fax','email','FULLTEXT','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','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','catch','VoiceQueue','outbound','dialCheckDuplicateType','CmList','length','findAll','CmHopperBlack'];(function(_0x4676a7,_0x1972e0){var _0x55f9c1=function(_0x7c23b1){while(--_0x7c23b1){_0x4676a7['push'](_0x4676a7['shift']());}};_0x55f9c1(++_0x1972e0);}(_0xe0dc,0x190));var _0xce0d=function(_0x2c5ce4,_0x1b4766){_0x2c5ce4=_0x2c5ce4-0x0;var _0x4060a3=_0xe0dc[_0x2c5ce4];return _0x4060a3;};'use strict';var _=require(_0xce0d('0x0'));var util=require('util');var logger=require(_0xce0d('0x1'))(_0xce0d('0x2'));var moment=require('moment');var BPromise=require(_0xce0d('0x3'));var rp=require(_0xce0d('0x4'));var fs=require('fs');var path=require(_0xce0d('0x5'));var rimraf=require(_0xce0d('0x6'));var config=require('../../config/environment');var attributes=require(_0xce0d('0x7'));module['exports']=function(_0x3e7888,_0x33f430){return _0x3e7888[_0xce0d('0x8')](_0xce0d('0x9'),attributes,{'tableName':_0xce0d('0xa'),'paranoid':!![],'indexes':[{'name':_0xce0d('0xb'),'fields':[_0xce0d('0xb')]},{'name':_0xce0d('0xc'),'fields':[_0xce0d('0xd'),_0xce0d('0xe'),_0xce0d('0xb'),_0xce0d('0xf'),_0xce0d('0x10'),_0xce0d('0x11')],'type':_0xce0d('0x12')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x159b09,_0x1af9cb,_0x431271){var _0x25bdf7=_0x3e7888['models'];var _0x1764cd=_0x159b09[_0xce0d('0x13')]({'plain':!![]});function _0x2a802c(){return function(_0x29a87c){logger[_0xce0d('0x14')](_0xce0d('0x15'),_0xce0d('0x16'),util[_0xce0d('0x17')](_0x29a87c,{'showHidden':![],'depth':null}));};}var _0x18a96e=function(_0xfba354){return new BPromise(function(_0x15b11f,_0x2db05a){_0x25bdf7[_0xce0d('0x18')][_0xce0d('0x19')]({'where':{'phone':_0x1764cd[_0xce0d('0xb')],'VoiceQueueId':_0xfba354['id']}})[_0xce0d('0x1a')](function(_0x936728){if(!_[_0xce0d('0x1b')](_0x936728)){throw new Error(_0xce0d('0x1c')+_0x1764cd[_0xce0d('0xb')]+_0xce0d('0x1d')+_0xfba354['id']);}return _0x25bdf7[_0xce0d('0x18')][_0xce0d('0x1e')]({'phone':_0x1764cd[_0xce0d('0xb')],'ContactId':_0x1764cd['id'],'ListId':_0x1764cd[_0xce0d('0x1f')],'priority':_0x1764cd[_0xce0d('0x20')]?_0x1764cd[_0xce0d('0x20')]:0x2,'scheduledat':_0x1764cd[_0xce0d('0x21')]?_0x1764cd[_0xce0d('0x21')]:moment()[_0xce0d('0x22')](_0xce0d('0x23')),'callback':_0x1764cd[_0xce0d('0x24')]?!![]:![],'callbackuniqueid':_0x1764cd[_0xce0d('0x24')]?_0x1764cd[_0xce0d('0x24')]:undefined,'callbackat':_0x1764cd[_0xce0d('0x24')]?moment()[_0xce0d('0x22')](_0xce0d('0x23')):undefined,'VoiceQueueId':_0xfba354['id']});})['catch'](function(_0x48b37d){_0x2db05a(_0x48b37d);});});};var _0xa0277a=function(_0x4da3f6){return new BPromise(function(_0x2727c2,_0x302476){_0x25bdf7[_0xce0d('0x18')]['findOne']({'where':{'phone':_0x1764cd[_0xce0d('0xb')],'VoiceQueueId':_0x4da3f6['id']}})['then'](function(_0x298f3e){if(!_['isNil'](_0x298f3e)){throw new Error(_0xce0d('0x1c')+_0x1764cd[_0xce0d('0xb')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x4da3f6['id']);}return _0x25bdf7['CmHopperFinal'][_0xce0d('0x19')]({'where':{'calleridnum':_0x1764cd[_0xce0d('0xb')],'VoiceQueueId':_0x4da3f6['id']}});})[_0xce0d('0x1a')](function(_0x41b228){if(!_[_0xce0d('0x1b')](_0x41b228)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x1764cd[_0xce0d('0xb')]+_0xce0d('0x25')+_0x4da3f6['id']);}return _0x25bdf7[_0xce0d('0x18')]['create']({'phone':_0x1764cd[_0xce0d('0xb')],'ContactId':_0x1764cd['id'],'ListId':_0x1764cd['ListId'],'priority':_0x1764cd[_0xce0d('0x20')]?_0x1764cd[_0xce0d('0x20')]:0x2,'scheduledat':_0x1764cd[_0xce0d('0x21')]?_0x1764cd[_0xce0d('0x21')]:moment()[_0xce0d('0x22')](_0xce0d('0x23')),'callback':_0x1764cd[_0xce0d('0x24')]?!![]:![],'callbackuniqueid':_0x1764cd[_0xce0d('0x24')]?_0x1764cd[_0xce0d('0x24')]:undefined,'callbackat':_0x1764cd[_0xce0d('0x24')]?moment()[_0xce0d('0x22')](_0xce0d('0x23')):undefined,'VoiceQueueId':_0x4da3f6['id']});})['catch'](function(_0x4a3308){_0x302476(_0x4a3308);});});};function _0x2c3de1(){return function(_0x905986){logger[_0xce0d('0x14')](_0xce0d('0x15'),_0xce0d('0x16'),util['inspect'](_0x905986,{'showHidden':![],'depth':null}));};}var _0x52d613=function(_0xa5e680){return new BPromise(function(_0x382bc1,_0x5587f5){_0x25bdf7['CmHopper']['findOne']({'where':{'phone':_0x1764cd[_0xce0d('0xb')],'CampaignId':_0xa5e680['id']}})['then'](function(_0x531c3a){if(!_['isNil'](_0x531c3a)){throw new Error(_0xce0d('0x1c')+_0x1764cd['phone']+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0xa5e680['id']);}return _0x25bdf7['CmHopper']['create']({'phone':_0x1764cd['phone'],'ContactId':_0x1764cd['id'],'ListId':_0x1764cd['ListId'],'priority':_0x1764cd[_0xce0d('0x20')]?_0x1764cd[_0xce0d('0x20')]:0x2,'scheduledat':_0x1764cd[_0xce0d('0x21')]?_0x1764cd[_0xce0d('0x21')]:moment()[_0xce0d('0x22')](_0xce0d('0x23')),'callback':_0x1764cd[_0xce0d('0x24')]?!![]:![],'callbackuniqueid':_0x1764cd[_0xce0d('0x24')]?_0x1764cd[_0xce0d('0x24')]:undefined,'callbackat':_0x1764cd['callbackUniqueid']?moment()[_0xce0d('0x22')](_0xce0d('0x23')):undefined,'CampaignId':_0xa5e680['id']});})['catch'](function(_0x27fce2){_0x5587f5(_0x27fce2);});});};var _0x412ae0=function(_0x52b52c){return new BPromise(function(_0x5be942,_0x348e83){_0x25bdf7[_0xce0d('0x18')][_0xce0d('0x19')]({'where':{'phone':_0x1764cd[_0xce0d('0xb')],'CampaignId':_0x52b52c['id']}})[_0xce0d('0x1a')](function(_0x5914b3){if(!_['isNil'](_0x5914b3)){throw new Error(_0xce0d('0x1c')+_0x1764cd[_0xce0d('0xb')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x52b52c['id']);}return _0x25bdf7['CmHopperFinal'][_0xce0d('0x19')]({'where':{'calleridnum':_0x1764cd[_0xce0d('0xb')],'CampaignId':_0x52b52c['id']}});})[_0xce0d('0x1a')](function(_0x73023b){if(!_[_0xce0d('0x1b')](_0x73023b)){throw new Error(_0xce0d('0x26')+_0x1764cd['phone']+_0xce0d('0x27')+_0x52b52c['id']);}return _0x25bdf7[_0xce0d('0x18')][_0xce0d('0x1e')]({'phone':_0x1764cd[_0xce0d('0xb')],'ContactId':_0x1764cd['id'],'ListId':_0x1764cd[_0xce0d('0x1f')],'priority':_0x1764cd[_0xce0d('0x20')]?_0x1764cd[_0xce0d('0x20')]:0x2,'scheduledat':_0x1764cd[_0xce0d('0x21')]?_0x1764cd['scheduledat']:moment()[_0xce0d('0x22')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x1764cd[_0xce0d('0x24')]?!![]:![],'callbackuniqueid':_0x1764cd[_0xce0d('0x24')]?_0x1764cd[_0xce0d('0x24')]:undefined,'callbackat':_0x1764cd[_0xce0d('0x24')]?moment()[_0xce0d('0x22')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x52b52c['id']});})[_0xce0d('0x28')](function(_0x1d19ed){_0x348e83(_0x1d19ed);});});};if(_0x1764cd['ListId']){_0x25bdf7[_0xce0d('0x29')]['findAll']({'where':{'type':_0xce0d('0x2a')},'attributes':['id',_0xce0d('0x2b')],'include':[{'model':_0x25bdf7[_0xce0d('0x2c')],'as':'Lists','where':{'id':_0x1764cd[_0xce0d('0x1f')]}}]})[_0xce0d('0x1a')](function(_0x5b8ccf){if(_0x5b8ccf){var _0x4e5a85=[];for(var _0x296767=0x0,_0x2aadd2;_0x296767<_0x5b8ccf[_0xce0d('0x2d')];_0x296767+=0x1){_0x2aadd2=_0x5b8ccf[_0x296767][_0xce0d('0x13')]({'plain':!![]});switch(_0x2aadd2[_0xce0d('0x2b')]){case'always':_0xa0277a(_0x2aadd2)['catch'](_0x2a802c());break;case'onlyIfOpen':_0x18a96e(_0x2aadd2)[_0xce0d('0x28')](_0x2a802c());break;default:_0x25bdf7[_0xce0d('0x18')][_0xce0d('0x1e')]({'phone':_0x1764cd[_0xce0d('0xb')],'ContactId':_0x1764cd['id'],'ListId':_0x1764cd[_0xce0d('0x1f')],'scheduledat':_0x1764cd[_0xce0d('0x21')]?_0x1764cd[_0xce0d('0x21')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x1764cd[_0xce0d('0x20')]?_0x1764cd[_0xce0d('0x20')]:0x2,'callback':_0x1764cd[_0xce0d('0x24')]?!![]:![],'callbackuniqueid':_0x1764cd[_0xce0d('0x24')]?_0x1764cd[_0xce0d('0x24')]:undefined,'callbackat':_0x1764cd[_0xce0d('0x24')]?moment()[_0xce0d('0x22')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x2aadd2['id']})[_0xce0d('0x28')](_0x2a802c());}}}})['then'](function(){return _0x25bdf7['VoiceQueue'][_0xce0d('0x2e')]({'where':{'type':_0xce0d('0x2a')},'attributes':['id'],'include':[{'model':_0x25bdf7[_0xce0d('0x2c')],'as':'BlackLists','where':{'id':_0x1764cd[_0xce0d('0x1f')]}}]})[_0xce0d('0x1a')](function(_0x56559c){if(_0x56559c){var _0x47452d=[];for(var _0x4299ee=0x0,_0xf4514e;_0x4299ee<_0x56559c[_0xce0d('0x2d')];_0x4299ee+=0x1){_0xf4514e=_0x56559c[_0x4299ee][_0xce0d('0x13')]({'plain':!![]});_0x25bdf7[_0xce0d('0x2f')][_0xce0d('0x1e')]({'phone':_0x1764cd[_0xce0d('0xb')],'ContactId':_0x1764cd['id'],'ListId':_0x1764cd[_0xce0d('0x1f')],'VoiceQueueId':_0xf4514e['id']})['catch'](function(_0x327487){logger[_0xce0d('0x14')](_0xce0d('0x30'),_0xce0d('0x16'),_0x327487['message']);});}}});})[_0xce0d('0x1a')](function(){return _0x25bdf7[_0xce0d('0x31')]['findAll']({'attributes':['id',_0xce0d('0x2b')],'include':[{'model':_0x25bdf7['CmList'],'as':_0xce0d('0x32'),'where':{'id':_0x1764cd['ListId']}}]})['then'](function(_0x37c636){if(_0x37c636){var _0x4632a1=[];for(var _0x3d9c12=0x0,_0x192f5c;_0x3d9c12<_0x37c636[_0xce0d('0x2d')];_0x3d9c12+=0x1){_0x192f5c=_0x37c636[_0x3d9c12][_0xce0d('0x13')]({'plain':!![]});switch(_0x192f5c[_0xce0d('0x2b')]){case _0xce0d('0x33'):_0x412ae0(_0x192f5c)[_0xce0d('0x28')](_0x2c3de1());break;case _0xce0d('0x34'):_0x52d613(_0x192f5c)['catch'](_0x2c3de1());break;default:_0x25bdf7['CmHopper'][_0xce0d('0x1e')]({'phone':_0x1764cd[_0xce0d('0xb')],'ContactId':_0x1764cd['id'],'ListId':_0x1764cd[_0xce0d('0x1f')],'scheduledat':_0x1764cd[_0xce0d('0x21')]?_0x1764cd[_0xce0d('0x21')]:moment()[_0xce0d('0x22')](_0xce0d('0x23')),'priority':_0x1764cd[_0xce0d('0x20')]?_0x1764cd['priority']:0x2,'callback':_0x1764cd[_0xce0d('0x24')]?!![]:![],'callbackuniqueid':_0x1764cd[_0xce0d('0x24')]?_0x1764cd[_0xce0d('0x24')]:undefined,'callbackat':_0x1764cd[_0xce0d('0x24')]?moment()[_0xce0d('0x22')](_0xce0d('0x23')):undefined,'CampaignId':_0x192f5c['id']})['catch'](_0x2c3de1());}}}});})['then'](function(){return _0x25bdf7['Campaign']['findAll']({'attributes':['id'],'include':[{'model':_0x25bdf7[_0xce0d('0x2c')],'as':'BlackLists','where':{'id':_0x1764cd[_0xce0d('0x1f')]}}]})[_0xce0d('0x1a')](function(_0x1065b2){if(_0x1065b2){var _0x5e3878=[];for(var _0x4afcec=0x0,_0x2ee7c9;_0x4afcec<_0x1065b2[_0xce0d('0x2d')];_0x4afcec+=0x1){_0x2ee7c9=_0x1065b2[_0x4afcec][_0xce0d('0x13')]({'plain':!![]});_0x25bdf7['CmHopperBlack'][_0xce0d('0x1e')]({'phone':_0x1764cd['phone'],'ContactId':_0x1764cd['id'],'ListId':_0x1764cd[_0xce0d('0x1f')],'CampaignId':_0x2ee7c9['id']})['catch'](function(_0x3c5e4e){logger[_0xce0d('0x14')](_0xce0d('0x30'),_0xce0d('0x16'),_0x3c5e4e['message']);});}}});})[_0xce0d('0x1a')](function(){_0x431271();})[_0xce0d('0x28')](function(_0xeb6cbc){logger['error'](_0xce0d('0x30'),_0xce0d('0x16'),_0xeb6cbc[_0xce0d('0x35')]);_0x431271(_0xeb6cbc);});}else{_0x431271(new Error(_0xce0d('0x36')));}},'afterDestroy':function(_0x57acd8,_0x5ef88a,_0x5d09e0){var _0x76d67a=_0x3e7888[_0xce0d('0x37')];var _0x3f034c=_0x57acd8['get']({'plain':!![]});return _0x76d67a[_0xce0d('0x18')][_0xce0d('0x2e')]({'raw':!![],'where':{'ListId':_0x3f034c['ListId'],'ContactId':_0x3f034c['id']}})[_0xce0d('0x1a')](function(_0x18f240){if(!_[_0xce0d('0x38')](_0x18f240)){var _0x3b780f=[];for(var _0x485aa2=0x0;_0x485aa2<_0x18f240[_0xce0d('0x2d')];_0x485aa2+=0x1){var _0x52abba=_0x76d67a['CmHopper'][_0xce0d('0x39')]({'where':{'ListId':_0x18f240[_0x485aa2][_0xce0d('0x1f')],'ContactId':_0x18f240[_0x485aa2][_0xce0d('0x3a')],'VoiceQueueId':_0x18f240[_0x485aa2][_0xce0d('0x3b')],'CampaignId':_0x18f240[_0x485aa2]['CampaignId']}});_0x3b780f[_0xce0d('0x3c')](_0x52abba);}return BPromise[_0xce0d('0x3d')](_0x3b780f);}})[_0xce0d('0x1a')](function(_0x3064fb){logger[_0xce0d('0x3e')]('[CmContact][afterDestroy][Succesfull]',util[_0xce0d('0x17')](_0x3064fb,{'showHidden':![],'depth':null}));_0x5d09e0();})['catch'](function(_0x1d7d8f){logger['error'](_0xce0d('0x3f'),util[_0xce0d('0x17')](_0x1d7d8f,{'showHidden':![],'depth':null}));_0x5d09e0(_0x1d7d8f);});}}});};