Built motion from commit (unavailable).|2.5.17
[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 _0x0eeb=['[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','api','moment','bluebird','rimraf','../../config/environment','./cmContact.attributes','exports','define','cm_contacts','phone','fti_cm_contacts','firstName','lastName','mobile','FULLTEXT','models','get','inspect','CmHopper','findOne','then','isNil','\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','cmContact,\x20afterCreate\x20','\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','cmContact','afterCreate','ListId','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20','CmHopperFinal','findAll','dialCheckDuplicateType','Lists','length','always','onlyIfOpen','VoiceQueue','outbound','CmList','CmHopperBlack','cmContact,\x20%s,\x20%s','message','Campaign','BlackLists','error','List\x20not\x20found','destroy','ContactId','VoiceQueueId','CampaignId','push','info'];(function(_0x9f54a1,_0x398ca6){var _0x3c54fa=function(_0x323c74){while(--_0x323c74){_0x9f54a1['push'](_0x9f54a1['shift']());}};_0x3c54fa(++_0x398ca6);}(_0x0eeb,0xc5));var _0xb0ee=function(_0x57b54c,_0x54ce0d){_0x57b54c=_0x57b54c-0x0;var _0x59cc19=_0x0eeb[_0x57b54c];return _0x59cc19;};'use strict';var _=require(_0xb0ee('0x0'));var util=require(_0xb0ee('0x1'));var logger=require(_0xb0ee('0x2'))(_0xb0ee('0x3'));var moment=require(_0xb0ee('0x4'));var BPromise=require(_0xb0ee('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xb0ee('0x6'));var config=require(_0xb0ee('0x7'));var attributes=require(_0xb0ee('0x8'));module[_0xb0ee('0x9')]=function(_0x209dda,_0x453fa4){return _0x209dda[_0xb0ee('0xa')]('CmContact',attributes,{'tableName':_0xb0ee('0xb'),'paranoid':!![],'indexes':[{'name':'phone','fields':[_0xb0ee('0xc')]},{'name':_0xb0ee('0xd'),'fields':[_0xb0ee('0xe'),_0xb0ee('0xf'),_0xb0ee('0xc'),_0xb0ee('0x10'),'fax','email'],'type':_0xb0ee('0x11')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x99f91b,_0x4fd69b,_0x5b449c){var _0x27dc02=_0x209dda[_0xb0ee('0x12')];var _0x3024bc=_0x99f91b[_0xb0ee('0x13')]({'plain':!![]});function _0x486422(){return function(_0x1675b3){logger['error']('cmContact','afterCreate',util[_0xb0ee('0x14')](_0x1675b3,{'showHidden':![],'depth':null}));};}var _0x1877ff=function(_0x5386b0){return new BPromise(function(_0x3f206f,_0x5fb11b){_0x27dc02[_0xb0ee('0x15')][_0xb0ee('0x16')]({'where':{'phone':_0x3024bc[_0xb0ee('0xc')],'VoiceQueueId':_0x5386b0['id']}})[_0xb0ee('0x17')](function(_0xca0c6f){if(!_[_0xb0ee('0x18')](_0xca0c6f)){throw new Error('cmContact,\x20afterCreate\x20'+_0x3024bc['phone']+_0xb0ee('0x19')+_0x5386b0['id']);}return _0x27dc02['CmHopper'][_0xb0ee('0x1a')]({'phone':_0x3024bc[_0xb0ee('0xc')],'ContactId':_0x3024bc['id'],'ListId':_0x3024bc['ListId'],'priority':_0x3024bc['priority']?_0x3024bc[_0xb0ee('0x1b')]:0x2,'scheduledat':_0x3024bc[_0xb0ee('0x1c')]?_0x3024bc[_0xb0ee('0x1c')]:moment()['format'](_0xb0ee('0x1d')),'callback':_0x3024bc[_0xb0ee('0x1e')]?!![]:![],'callbackuniqueid':_0x3024bc[_0xb0ee('0x1e')]?_0x3024bc[_0xb0ee('0x1e')]:undefined,'callbackat':_0x3024bc['callbackUniqueid']?moment()[_0xb0ee('0x1f')](_0xb0ee('0x1d')):undefined,'VoiceQueueId':_0x5386b0['id']});})[_0xb0ee('0x20')](function(_0x2c8ef3){_0x5fb11b(_0x2c8ef3);});});};var _0x45c90e=function(_0x2073ef){return new BPromise(function(_0x320956,_0x2b19f2){_0x27dc02[_0xb0ee('0x15')][_0xb0ee('0x16')]({'where':{'phone':_0x3024bc[_0xb0ee('0xc')],'VoiceQueueId':_0x2073ef['id']}})[_0xb0ee('0x17')](function(_0x140c8f){if(!_[_0xb0ee('0x18')](_0x140c8f)){throw new Error(_0xb0ee('0x21')+_0x3024bc['phone']+_0xb0ee('0x22')+_0x2073ef['id']);}return _0x27dc02['CmHopperFinal']['findOne']({'where':{'calleridnum':_0x3024bc[_0xb0ee('0xc')],'VoiceQueueId':_0x2073ef['id']}});})[_0xb0ee('0x17')](function(_0x18935b){if(!_[_0xb0ee('0x18')](_0x18935b)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x3024bc[_0xb0ee('0xc')]+_0xb0ee('0x23')+_0x2073ef['id']);}return _0x27dc02[_0xb0ee('0x15')][_0xb0ee('0x1a')]({'phone':_0x3024bc['phone'],'ContactId':_0x3024bc['id'],'ListId':_0x3024bc['ListId'],'priority':_0x3024bc[_0xb0ee('0x1b')]?_0x3024bc[_0xb0ee('0x1b')]:0x2,'scheduledat':_0x3024bc[_0xb0ee('0x1c')]?_0x3024bc[_0xb0ee('0x1c')]:moment()[_0xb0ee('0x1f')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x3024bc['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x3024bc[_0xb0ee('0x1e')]?_0x3024bc[_0xb0ee('0x1e')]:undefined,'callbackat':_0x3024bc[_0xb0ee('0x1e')]?moment()[_0xb0ee('0x1f')](_0xb0ee('0x1d')):undefined,'VoiceQueueId':_0x2073ef['id']});})[_0xb0ee('0x20')](function(_0x111c57){_0x2b19f2(_0x111c57);});});};function _0x45b626(){return function(_0x21d3ae){logger['error'](_0xb0ee('0x24'),_0xb0ee('0x25'),util[_0xb0ee('0x14')](_0x21d3ae,{'showHidden':![],'depth':null}));};}var _0x5aa0d4=function(_0x43c9aa){return new BPromise(function(_0x43a8d8,_0x1c02dc){_0x27dc02[_0xb0ee('0x15')]['findOne']({'where':{'phone':_0x3024bc[_0xb0ee('0xc')],'CampaignId':_0x43c9aa['id']}})['then'](function(_0x3157d5){if(!_[_0xb0ee('0x18')](_0x3157d5)){throw new Error(_0xb0ee('0x21')+_0x3024bc['phone']+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x43c9aa['id']);}return _0x27dc02['CmHopper']['create']({'phone':_0x3024bc[_0xb0ee('0xc')],'ContactId':_0x3024bc['id'],'ListId':_0x3024bc[_0xb0ee('0x26')],'priority':_0x3024bc['priority']?_0x3024bc[_0xb0ee('0x1b')]:0x2,'scheduledat':_0x3024bc['scheduledat']?_0x3024bc['scheduledat']:moment()[_0xb0ee('0x1f')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x3024bc['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x3024bc['callbackUniqueid']?_0x3024bc[_0xb0ee('0x1e')]:undefined,'callbackat':_0x3024bc[_0xb0ee('0x1e')]?moment()['format'](_0xb0ee('0x1d')):undefined,'CampaignId':_0x43c9aa['id']});})[_0xb0ee('0x20')](function(_0x22efd6){_0x1c02dc(_0x22efd6);});});};var _0x44fda2=function(_0x60b065){return new BPromise(function(_0x12be86,_0x208b7e){_0x27dc02[_0xb0ee('0x15')][_0xb0ee('0x16')]({'where':{'phone':_0x3024bc[_0xb0ee('0xc')],'CampaignId':_0x60b065['id']}})[_0xb0ee('0x17')](function(_0x32e65a){if(!_[_0xb0ee('0x18')](_0x32e65a)){throw new Error(_0xb0ee('0x21')+_0x3024bc[_0xb0ee('0xc')]+_0xb0ee('0x27')+_0x60b065['id']);}return _0x27dc02[_0xb0ee('0x28')][_0xb0ee('0x16')]({'where':{'calleridnum':_0x3024bc[_0xb0ee('0xc')],'CampaignId':_0x60b065['id']}});})[_0xb0ee('0x17')](function(_0x192b0c){if(!_['isNil'](_0x192b0c)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x3024bc[_0xb0ee('0xc')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20'+_0x60b065['id']);}return _0x27dc02[_0xb0ee('0x15')][_0xb0ee('0x1a')]({'phone':_0x3024bc[_0xb0ee('0xc')],'ContactId':_0x3024bc['id'],'ListId':_0x3024bc[_0xb0ee('0x26')],'priority':_0x3024bc[_0xb0ee('0x1b')]?_0x3024bc['priority']:0x2,'scheduledat':_0x3024bc[_0xb0ee('0x1c')]?_0x3024bc[_0xb0ee('0x1c')]:moment()['format'](_0xb0ee('0x1d')),'callback':_0x3024bc[_0xb0ee('0x1e')]?!![]:![],'callbackuniqueid':_0x3024bc[_0xb0ee('0x1e')]?_0x3024bc[_0xb0ee('0x1e')]:undefined,'callbackat':_0x3024bc[_0xb0ee('0x1e')]?moment()[_0xb0ee('0x1f')](_0xb0ee('0x1d')):undefined,'CampaignId':_0x60b065['id']});})['catch'](function(_0x583a31){_0x208b7e(_0x583a31);});});};if(_0x3024bc[_0xb0ee('0x26')]){_0x27dc02['VoiceQueue'][_0xb0ee('0x29')]({'where':{'type':'outbound'},'attributes':['id',_0xb0ee('0x2a')],'include':[{'model':_0x27dc02['CmList'],'as':_0xb0ee('0x2b'),'where':{'id':_0x3024bc['ListId']}}]})[_0xb0ee('0x17')](function(_0x3c0be7){if(_0x3c0be7){var _0x246f76=[];for(var _0x1bcce1=0x0,_0x402189;_0x1bcce1<_0x3c0be7[_0xb0ee('0x2c')];_0x1bcce1+=0x1){_0x402189=_0x3c0be7[_0x1bcce1][_0xb0ee('0x13')]({'plain':!![]});switch(_0x402189[_0xb0ee('0x2a')]){case _0xb0ee('0x2d'):_0x45c90e(_0x402189)[_0xb0ee('0x20')](_0x486422());break;case _0xb0ee('0x2e'):_0x1877ff(_0x402189)[_0xb0ee('0x20')](_0x486422());break;default:_0x27dc02[_0xb0ee('0x15')][_0xb0ee('0x1a')]({'phone':_0x3024bc[_0xb0ee('0xc')],'ContactId':_0x3024bc['id'],'ListId':_0x3024bc[_0xb0ee('0x26')],'scheduledat':_0x3024bc['scheduledat']?_0x3024bc['scheduledat']:moment()[_0xb0ee('0x1f')](_0xb0ee('0x1d')),'priority':_0x3024bc['priority']?_0x3024bc[_0xb0ee('0x1b')]:0x2,'callback':_0x3024bc['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x3024bc[_0xb0ee('0x1e')]?_0x3024bc[_0xb0ee('0x1e')]:undefined,'callbackat':_0x3024bc[_0xb0ee('0x1e')]?moment()[_0xb0ee('0x1f')](_0xb0ee('0x1d')):undefined,'VoiceQueueId':_0x402189['id']})[_0xb0ee('0x20')](_0x486422());}}}})[_0xb0ee('0x17')](function(){return _0x27dc02[_0xb0ee('0x2f')][_0xb0ee('0x29')]({'where':{'type':_0xb0ee('0x30')},'attributes':['id'],'include':[{'model':_0x27dc02[_0xb0ee('0x31')],'as':'BlackLists','where':{'id':_0x3024bc['ListId']}}]})['then'](function(_0x1d16cb){if(_0x1d16cb){var _0x371ab8=[];for(var _0x5a37d5=0x0,_0x2a729a;_0x5a37d5<_0x1d16cb[_0xb0ee('0x2c')];_0x5a37d5+=0x1){_0x2a729a=_0x1d16cb[_0x5a37d5][_0xb0ee('0x13')]({'plain':!![]});_0x27dc02[_0xb0ee('0x32')][_0xb0ee('0x1a')]({'phone':_0x3024bc[_0xb0ee('0xc')],'ContactId':_0x3024bc['id'],'ListId':_0x3024bc['ListId'],'VoiceQueueId':_0x2a729a['id']})[_0xb0ee('0x20')](function(_0x40eed0){logger['error'](_0xb0ee('0x33'),'afterCreate',_0x40eed0[_0xb0ee('0x34')]);});}}});})[_0xb0ee('0x17')](function(){return _0x27dc02[_0xb0ee('0x35')]['findAll']({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0x27dc02[_0xb0ee('0x31')],'as':'Lists','where':{'id':_0x3024bc[_0xb0ee('0x26')]}}]})[_0xb0ee('0x17')](function(_0x53474a){if(_0x53474a){var _0x204c70=[];for(var _0x8e55dc=0x0,_0x215e64;_0x8e55dc<_0x53474a['length'];_0x8e55dc+=0x1){_0x215e64=_0x53474a[_0x8e55dc][_0xb0ee('0x13')]({'plain':!![]});switch(_0x215e64[_0xb0ee('0x2a')]){case'always':_0x44fda2(_0x215e64)[_0xb0ee('0x20')](_0x45b626());break;case _0xb0ee('0x2e'):_0x5aa0d4(_0x215e64)[_0xb0ee('0x20')](_0x45b626());break;default:_0x27dc02[_0xb0ee('0x15')][_0xb0ee('0x1a')]({'phone':_0x3024bc[_0xb0ee('0xc')],'ContactId':_0x3024bc['id'],'ListId':_0x3024bc[_0xb0ee('0x26')],'scheduledat':_0x3024bc['scheduledat']?_0x3024bc[_0xb0ee('0x1c')]:moment()[_0xb0ee('0x1f')](_0xb0ee('0x1d')),'priority':_0x3024bc['priority']?_0x3024bc[_0xb0ee('0x1b')]:0x2,'callback':_0x3024bc[_0xb0ee('0x1e')]?!![]:![],'callbackuniqueid':_0x3024bc[_0xb0ee('0x1e')]?_0x3024bc[_0xb0ee('0x1e')]:undefined,'callbackat':_0x3024bc['callbackUniqueid']?moment()[_0xb0ee('0x1f')](_0xb0ee('0x1d')):undefined,'CampaignId':_0x215e64['id']})[_0xb0ee('0x20')](_0x45b626());}}}});})['then'](function(){return _0x27dc02[_0xb0ee('0x35')][_0xb0ee('0x29')]({'attributes':['id'],'include':[{'model':_0x27dc02[_0xb0ee('0x31')],'as':_0xb0ee('0x36'),'where':{'id':_0x3024bc[_0xb0ee('0x26')]}}]})[_0xb0ee('0x17')](function(_0x372b3b){if(_0x372b3b){var _0x19aa85=[];for(var _0x5056de=0x0,_0x4d9f85;_0x5056de<_0x372b3b[_0xb0ee('0x2c')];_0x5056de+=0x1){_0x4d9f85=_0x372b3b[_0x5056de][_0xb0ee('0x13')]({'plain':!![]});_0x27dc02[_0xb0ee('0x32')][_0xb0ee('0x1a')]({'phone':_0x3024bc[_0xb0ee('0xc')],'ContactId':_0x3024bc['id'],'ListId':_0x3024bc['ListId'],'CampaignId':_0x4d9f85['id']})[_0xb0ee('0x20')](function(_0x5d1361){logger[_0xb0ee('0x37')]('cmContact,\x20%s,\x20%s','afterCreate',_0x5d1361[_0xb0ee('0x34')]);});}}});})[_0xb0ee('0x17')](function(){_0x5b449c();})[_0xb0ee('0x20')](function(_0x451cfc){logger[_0xb0ee('0x37')](_0xb0ee('0x33'),_0xb0ee('0x25'),_0x451cfc[_0xb0ee('0x34')]);_0x5b449c(_0x451cfc);});}else{_0x5b449c(new Error(_0xb0ee('0x38')));}},'afterDestroy':function(_0x42645d,_0x22870d,_0x5af70b){var _0x499bfe=_0x209dda['models'];var _0x19457d=_0x42645d['get']({'plain':!![]});return _0x499bfe[_0xb0ee('0x15')]['findAll']({'raw':!![],'where':{'ListId':_0x19457d['ListId'],'ContactId':_0x19457d['id']}})[_0xb0ee('0x17')](function(_0x1b42aa){if(!_['isEmpty'](_0x1b42aa)){var _0x3a957e=[];for(var _0x37dc12=0x0;_0x37dc12<_0x1b42aa[_0xb0ee('0x2c')];_0x37dc12+=0x1){var _0x57cfed=_0x499bfe[_0xb0ee('0x15')][_0xb0ee('0x39')]({'where':{'ListId':_0x1b42aa[_0x37dc12][_0xb0ee('0x26')],'ContactId':_0x1b42aa[_0x37dc12][_0xb0ee('0x3a')],'VoiceQueueId':_0x1b42aa[_0x37dc12][_0xb0ee('0x3b')],'CampaignId':_0x1b42aa[_0x37dc12][_0xb0ee('0x3c')]}});_0x3a957e[_0xb0ee('0x3d')](_0x57cfed);}return BPromise['all'](_0x3a957e);}})['then'](function(_0x10a542){logger[_0xb0ee('0x3e')](_0xb0ee('0x3f'),util[_0xb0ee('0x14')](_0x10a542,{'showHidden':![],'depth':null}));_0x5af70b();})[_0xb0ee('0x20')](function(_0x34ad21){logger['error'](_0xb0ee('0x40'),util['inspect'](_0x34ad21,{'showHidden':![],'depth':null}));_0x5af70b(_0x34ad21);});}}});};