Built motion from commit (unavailable).|2.5.28
[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 _0xc051=['get','error','cmContact','afterCreate','inspect','CmHopper','findOne','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','then','isNil','\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','catch','\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','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','VoiceQueue','findAll','dialCheckDuplicateType','length','always','onlyIfOpen','outbound','CmList','BlackLists','cmContact,\x20%s,\x20%s','message','Campaign','Lists','CmHopperBlack','List\x20not\x20found','isEmpty','ContactId','VoiceQueueId','push','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','util','moment','bluebird','request-promise','path','../../config/environment','./cmContact.attributes','exports','define','CmContact','cm_contacts','phone','fti_cm_contacts','firstName','lastName','fax','email','FULLTEXT','models'];(function(_0x13a6fb,_0x606843){var _0x5205e3=function(_0x3bb376){while(--_0x3bb376){_0x13a6fb['push'](_0x13a6fb['shift']());}};_0x5205e3(++_0x606843);}(_0xc051,0xb5));var _0x1c05=function(_0xcfe198,_0x29fe1a){_0xcfe198=_0xcfe198-0x0;var _0x44fe93=_0xc051[_0xcfe198];return _0x44fe93;};'use strict';var _=require(_0x1c05('0x0'));var util=require(_0x1c05('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x1c05('0x2'));var BPromise=require(_0x1c05('0x3'));var rp=require(_0x1c05('0x4'));var fs=require('fs');var path=require(_0x1c05('0x5'));var rimraf=require('rimraf');var config=require(_0x1c05('0x6'));var attributes=require(_0x1c05('0x7'));module[_0x1c05('0x8')]=function(_0x294fcb,_0x14284f){return _0x294fcb[_0x1c05('0x9')](_0x1c05('0xa'),attributes,{'tableName':_0x1c05('0xb'),'paranoid':!![],'indexes':[{'name':_0x1c05('0xc'),'fields':['phone']},{'name':_0x1c05('0xd'),'fields':[_0x1c05('0xe'),_0x1c05('0xf'),_0x1c05('0xc'),'mobile',_0x1c05('0x10'),_0x1c05('0x11')],'type':_0x1c05('0x12')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x233217,_0x489ad3,_0x3c7d13){var _0x553323=_0x294fcb[_0x1c05('0x13')];var _0x23464b=_0x233217[_0x1c05('0x14')]({'plain':!![]});function _0x32cbf0(){return function(_0x4474ef){logger[_0x1c05('0x15')](_0x1c05('0x16'),_0x1c05('0x17'),util[_0x1c05('0x18')](_0x4474ef,{'showHidden':![],'depth':null}));};}var _0x2ba5a2=function(_0x2bffb8){return new BPromise(function(_0x3b36a0,_0x4b05ef){_0x553323[_0x1c05('0x19')][_0x1c05('0x1a')]({'where':{'phone':_0x23464b[_0x1c05('0xc')],'VoiceQueueId':_0x2bffb8['id']}})['then'](function(_0x1e713f){if(!_['isNil'](_0x1e713f)){throw new Error(_0x1c05('0x1b')+_0x23464b[_0x1c05('0xc')]+_0x1c05('0x1c')+_0x2bffb8['id']);}return _0x553323[_0x1c05('0x19')][_0x1c05('0x1d')]({'phone':_0x23464b['phone'],'ContactId':_0x23464b['id'],'ListId':_0x23464b[_0x1c05('0x1e')],'priority':_0x23464b[_0x1c05('0x1f')]?_0x23464b[_0x1c05('0x1f')]:0x2,'scheduledat':_0x23464b['scheduledat']?_0x23464b[_0x1c05('0x20')]:moment()[_0x1c05('0x21')](_0x1c05('0x22')),'callback':_0x23464b['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x23464b[_0x1c05('0x23')]?_0x23464b[_0x1c05('0x23')]:undefined,'callbackat':_0x23464b['callbackUniqueid']?moment()['format'](_0x1c05('0x22')):undefined,'VoiceQueueId':_0x2bffb8['id']});})['catch'](function(_0x48400c){_0x4b05ef(_0x48400c);});});};var _0x549b51=function(_0x31beae){return new BPromise(function(_0xcce64e,_0x4a655f){_0x553323[_0x1c05('0x19')][_0x1c05('0x1a')]({'where':{'phone':_0x23464b[_0x1c05('0xc')],'VoiceQueueId':_0x31beae['id']}})[_0x1c05('0x24')](function(_0x5f4a4c){if(!_[_0x1c05('0x25')](_0x5f4a4c)){throw new Error(_0x1c05('0x1b')+_0x23464b[_0x1c05('0xc')]+_0x1c05('0x26')+_0x31beae['id']);}return _0x553323[_0x1c05('0x27')][_0x1c05('0x1a')]({'where':{'calleridnum':_0x23464b['phone'],'VoiceQueueId':_0x31beae['id']}});})[_0x1c05('0x24')](function(_0x1dd767){if(!_[_0x1c05('0x25')](_0x1dd767)){throw new Error(_0x1c05('0x28')+_0x23464b[_0x1c05('0xc')]+_0x1c05('0x29')+_0x31beae['id']);}return _0x553323[_0x1c05('0x19')]['create']({'phone':_0x23464b[_0x1c05('0xc')],'ContactId':_0x23464b['id'],'ListId':_0x23464b[_0x1c05('0x1e')],'priority':_0x23464b[_0x1c05('0x1f')]?_0x23464b['priority']:0x2,'scheduledat':_0x23464b['scheduledat']?_0x23464b[_0x1c05('0x20')]:moment()[_0x1c05('0x21')](_0x1c05('0x22')),'callback':_0x23464b[_0x1c05('0x23')]?!![]:![],'callbackuniqueid':_0x23464b[_0x1c05('0x23')]?_0x23464b[_0x1c05('0x23')]:undefined,'callbackat':_0x23464b[_0x1c05('0x23')]?moment()[_0x1c05('0x21')](_0x1c05('0x22')):undefined,'VoiceQueueId':_0x31beae['id']});})[_0x1c05('0x2a')](function(_0x24b53f){_0x4a655f(_0x24b53f);});});};function _0x25878e(){return function(_0x384cb6){logger[_0x1c05('0x15')]('cmContact',_0x1c05('0x17'),util['inspect'](_0x384cb6,{'showHidden':![],'depth':null}));};}var _0x5165d1=function(_0x5f2179){return new BPromise(function(_0x19323d,_0xdd7dae){_0x553323[_0x1c05('0x19')]['findOne']({'where':{'phone':_0x23464b[_0x1c05('0xc')],'CampaignId':_0x5f2179['id']}})['then'](function(_0x1513d4){if(!_['isNil'](_0x1513d4)){throw new Error(_0x1c05('0x1b')+_0x23464b[_0x1c05('0xc')]+_0x1c05('0x2b')+_0x5f2179['id']);}return _0x553323[_0x1c05('0x19')][_0x1c05('0x1d')]({'phone':_0x23464b[_0x1c05('0xc')],'ContactId':_0x23464b['id'],'ListId':_0x23464b[_0x1c05('0x1e')],'priority':_0x23464b[_0x1c05('0x1f')]?_0x23464b[_0x1c05('0x1f')]:0x2,'scheduledat':_0x23464b[_0x1c05('0x20')]?_0x23464b[_0x1c05('0x20')]:moment()[_0x1c05('0x21')](_0x1c05('0x22')),'callback':_0x23464b[_0x1c05('0x23')]?!![]:![],'callbackuniqueid':_0x23464b[_0x1c05('0x23')]?_0x23464b[_0x1c05('0x23')]:undefined,'callbackat':_0x23464b[_0x1c05('0x23')]?moment()[_0x1c05('0x21')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x5f2179['id']});})[_0x1c05('0x2a')](function(_0x1da52a){_0xdd7dae(_0x1da52a);});});};var _0x47e12b=function(_0x492d09){return new BPromise(function(_0xe34695,_0x175599){_0x553323[_0x1c05('0x19')]['findOne']({'where':{'phone':_0x23464b[_0x1c05('0xc')],'CampaignId':_0x492d09['id']}})[_0x1c05('0x24')](function(_0xc1d675){if(!_['isNil'](_0xc1d675)){throw new Error(_0x1c05('0x1b')+_0x23464b[_0x1c05('0xc')]+_0x1c05('0x2c')+_0x492d09['id']);}return _0x553323['CmHopperFinal']['findOne']({'where':{'calleridnum':_0x23464b['phone'],'CampaignId':_0x492d09['id']}});})['then'](function(_0x1a37c2){if(!_['isNil'](_0x1a37c2)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x23464b[_0x1c05('0xc')]+_0x1c05('0x2d')+_0x492d09['id']);}return _0x553323[_0x1c05('0x19')]['create']({'phone':_0x23464b[_0x1c05('0xc')],'ContactId':_0x23464b['id'],'ListId':_0x23464b[_0x1c05('0x1e')],'priority':_0x23464b[_0x1c05('0x1f')]?_0x23464b[_0x1c05('0x1f')]:0x2,'scheduledat':_0x23464b[_0x1c05('0x20')]?_0x23464b[_0x1c05('0x20')]:moment()[_0x1c05('0x21')](_0x1c05('0x22')),'callback':_0x23464b['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x23464b[_0x1c05('0x23')]?_0x23464b[_0x1c05('0x23')]:undefined,'callbackat':_0x23464b['callbackUniqueid']?moment()[_0x1c05('0x21')](_0x1c05('0x22')):undefined,'CampaignId':_0x492d09['id']});})['catch'](function(_0x28ae69){_0x175599(_0x28ae69);});});};if(_0x23464b[_0x1c05('0x1e')]){_0x553323[_0x1c05('0x2e')][_0x1c05('0x2f')]({'where':{'type':'outbound'},'attributes':['id',_0x1c05('0x30')],'include':[{'model':_0x553323['CmList'],'as':'Lists','where':{'id':_0x23464b[_0x1c05('0x1e')]}}]})[_0x1c05('0x24')](function(_0x23eb1f){if(_0x23eb1f){var _0x54e32a=[];for(var _0x1478b2=0x0,_0x5646c4;_0x1478b2<_0x23eb1f[_0x1c05('0x31')];_0x1478b2+=0x1){_0x5646c4=_0x23eb1f[_0x1478b2]['get']({'plain':!![]});switch(_0x5646c4[_0x1c05('0x30')]){case _0x1c05('0x32'):_0x549b51(_0x5646c4)['catch'](_0x32cbf0());break;case _0x1c05('0x33'):_0x2ba5a2(_0x5646c4)[_0x1c05('0x2a')](_0x32cbf0());break;default:_0x553323[_0x1c05('0x19')][_0x1c05('0x1d')]({'phone':_0x23464b[_0x1c05('0xc')],'ContactId':_0x23464b['id'],'ListId':_0x23464b[_0x1c05('0x1e')],'scheduledat':_0x23464b[_0x1c05('0x20')]?_0x23464b[_0x1c05('0x20')]:moment()[_0x1c05('0x21')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x23464b[_0x1c05('0x1f')]?_0x23464b[_0x1c05('0x1f')]:0x2,'callback':_0x23464b[_0x1c05('0x23')]?!![]:![],'callbackuniqueid':_0x23464b['callbackUniqueid']?_0x23464b[_0x1c05('0x23')]:undefined,'callbackat':_0x23464b[_0x1c05('0x23')]?moment()[_0x1c05('0x21')](_0x1c05('0x22')):undefined,'VoiceQueueId':_0x5646c4['id']})[_0x1c05('0x2a')](_0x32cbf0());}}}})[_0x1c05('0x24')](function(){return _0x553323[_0x1c05('0x2e')][_0x1c05('0x2f')]({'where':{'type':_0x1c05('0x34')},'attributes':['id'],'include':[{'model':_0x553323[_0x1c05('0x35')],'as':_0x1c05('0x36'),'where':{'id':_0x23464b['ListId']}}]})[_0x1c05('0x24')](function(_0x47bf36){if(_0x47bf36){var _0x744b57=[];for(var _0x2c28b1=0x0,_0x3b6c3;_0x2c28b1<_0x47bf36['length'];_0x2c28b1+=0x1){_0x3b6c3=_0x47bf36[_0x2c28b1][_0x1c05('0x14')]({'plain':!![]});_0x553323['CmHopperBlack'][_0x1c05('0x1d')]({'phone':_0x23464b[_0x1c05('0xc')],'ContactId':_0x23464b['id'],'ListId':_0x23464b[_0x1c05('0x1e')],'VoiceQueueId':_0x3b6c3['id']})[_0x1c05('0x2a')](function(_0x3fddb1){logger[_0x1c05('0x15')](_0x1c05('0x37'),_0x1c05('0x17'),_0x3fddb1[_0x1c05('0x38')]);});}}});})['then'](function(){return _0x553323[_0x1c05('0x39')][_0x1c05('0x2f')]({'attributes':['id',_0x1c05('0x30')],'include':[{'model':_0x553323[_0x1c05('0x35')],'as':_0x1c05('0x3a'),'where':{'id':_0x23464b[_0x1c05('0x1e')]}}]})[_0x1c05('0x24')](function(_0x463cee){if(_0x463cee){var _0x3dd229=[];for(var _0x6e3241=0x0,_0x204d09;_0x6e3241<_0x463cee[_0x1c05('0x31')];_0x6e3241+=0x1){_0x204d09=_0x463cee[_0x6e3241][_0x1c05('0x14')]({'plain':!![]});switch(_0x204d09[_0x1c05('0x30')]){case _0x1c05('0x32'):_0x47e12b(_0x204d09)[_0x1c05('0x2a')](_0x25878e());break;case _0x1c05('0x33'):_0x5165d1(_0x204d09)['catch'](_0x25878e());break;default:_0x553323[_0x1c05('0x19')]['create']({'phone':_0x23464b[_0x1c05('0xc')],'ContactId':_0x23464b['id'],'ListId':_0x23464b[_0x1c05('0x1e')],'scheduledat':_0x23464b['scheduledat']?_0x23464b[_0x1c05('0x20')]:moment()[_0x1c05('0x21')](_0x1c05('0x22')),'priority':_0x23464b[_0x1c05('0x1f')]?_0x23464b[_0x1c05('0x1f')]:0x2,'callback':_0x23464b['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x23464b[_0x1c05('0x23')]?_0x23464b['callbackUniqueid']:undefined,'callbackat':_0x23464b[_0x1c05('0x23')]?moment()['format'](_0x1c05('0x22')):undefined,'CampaignId':_0x204d09['id']})['catch'](_0x25878e());}}}});})[_0x1c05('0x24')](function(){return _0x553323[_0x1c05('0x39')]['findAll']({'attributes':['id'],'include':[{'model':_0x553323[_0x1c05('0x35')],'as':_0x1c05('0x36'),'where':{'id':_0x23464b['ListId']}}]})['then'](function(_0x2b095b){if(_0x2b095b){var _0x331e2c=[];for(var _0x3774af=0x0,_0x527df0;_0x3774af<_0x2b095b[_0x1c05('0x31')];_0x3774af+=0x1){_0x527df0=_0x2b095b[_0x3774af]['get']({'plain':!![]});_0x553323[_0x1c05('0x3b')][_0x1c05('0x1d')]({'phone':_0x23464b[_0x1c05('0xc')],'ContactId':_0x23464b['id'],'ListId':_0x23464b['ListId'],'CampaignId':_0x527df0['id']})[_0x1c05('0x2a')](function(_0x240e39){logger[_0x1c05('0x15')]('cmContact,\x20%s,\x20%s',_0x1c05('0x17'),_0x240e39['message']);});}}});})[_0x1c05('0x24')](function(){_0x3c7d13();})[_0x1c05('0x2a')](function(_0x4edefc){logger['error'](_0x1c05('0x37'),_0x1c05('0x17'),_0x4edefc[_0x1c05('0x38')]);_0x3c7d13(_0x4edefc);});}else{_0x3c7d13(new Error(_0x1c05('0x3c')));}},'afterDestroy':function(_0x2a3fbf,_0x523476,_0x3bbfa0){var _0x1e39fa=_0x294fcb[_0x1c05('0x13')];var _0x4fe548=_0x2a3fbf['get']({'plain':!![]});return _0x1e39fa[_0x1c05('0x19')][_0x1c05('0x2f')]({'raw':!![],'where':{'ListId':_0x4fe548['ListId'],'ContactId':_0x4fe548['id']}})[_0x1c05('0x24')](function(_0x5eccb2){if(!_[_0x1c05('0x3d')](_0x5eccb2)){var _0x2b080b=[];for(var _0x40b8c6=0x0;_0x40b8c6<_0x5eccb2[_0x1c05('0x31')];_0x40b8c6+=0x1){var _0x2ea9ce=_0x1e39fa[_0x1c05('0x19')]['destroy']({'where':{'ListId':_0x5eccb2[_0x40b8c6]['ListId'],'ContactId':_0x5eccb2[_0x40b8c6][_0x1c05('0x3e')],'VoiceQueueId':_0x5eccb2[_0x40b8c6][_0x1c05('0x3f')],'CampaignId':_0x5eccb2[_0x40b8c6]['CampaignId']}});_0x2b080b[_0x1c05('0x40')](_0x2ea9ce);}return BPromise['all'](_0x2b080b);}})['then'](function(_0x1d98f7){logger['info'](_0x1c05('0x41'),util[_0x1c05('0x18')](_0x1d98f7,{'showHidden':![],'depth':null}));_0x3bbfa0();})['catch'](function(_0x3c9960){logger[_0x1c05('0x15')](_0x1c05('0x42'),util[_0x1c05('0x18')](_0x3c9960,{'showHidden':![],'depth':null}));_0x3bbfa0(_0x3c9960);});}}});};