Built motion from commit 3e059bc2.|2.5.32
[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 _0xea6d=['phone','fti_cm_contacts','firstName','lastName','mobile','fax','email','FULLTEXT','models','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','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','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','ListId','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','VoiceQueue','findAll','dialCheckDuplicateType','CmList','length','always','outbound','BlackLists','CmHopperBlack','cmContact,\x20%s,\x20%s','message','Lists','List\x20not\x20found','isEmpty','ContactId','VoiceQueueId','CampaignId','push','all','info','[CmContact][afterDestroy][Succesfull]','lodash','util','../../config/logger','api','moment','request-promise','path','exports','define','CmContact','cm_contacts'];(function(_0x27af45,_0x1b57aa){var _0x18df21=function(_0x4b7679){while(--_0x4b7679){_0x27af45['push'](_0x27af45['shift']());}};_0x18df21(++_0x1b57aa);}(_0xea6d,0x13a));var _0xdea6=function(_0x40004c,_0x58bcbe){_0x40004c=_0x40004c-0x0;var _0x1d8f15=_0xea6d[_0x40004c];return _0x1d8f15;};'use strict';var _=require(_0xdea6('0x0'));var util=require(_0xdea6('0x1'));var logger=require(_0xdea6('0x2'))(_0xdea6('0x3'));var moment=require(_0xdea6('0x4'));var BPromise=require('bluebird');var rp=require(_0xdea6('0x5'));var fs=require('fs');var path=require(_0xdea6('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./cmContact.attributes');module[_0xdea6('0x7')]=function(_0x22da1f,_0x477bd0){return _0x22da1f[_0xdea6('0x8')](_0xdea6('0x9'),attributes,{'tableName':_0xdea6('0xa'),'paranoid':!![],'indexes':[{'name':_0xdea6('0xb'),'fields':['phone']},{'name':_0xdea6('0xc'),'fields':[_0xdea6('0xd'),_0xdea6('0xe'),_0xdea6('0xb'),_0xdea6('0xf'),_0xdea6('0x10'),_0xdea6('0x11')],'type':_0xdea6('0x12')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x4f918c,_0x2b63c6,_0x5d195a){var _0x1157b8=_0x22da1f[_0xdea6('0x13')];var _0x1a71fe=_0x4f918c[_0xdea6('0x14')]({'plain':!![]});function _0xd3fc4d(){return function(_0x2d03ab){logger[_0xdea6('0x15')](_0xdea6('0x16'),_0xdea6('0x17'),util[_0xdea6('0x18')](_0x2d03ab,{'showHidden':![],'depth':null}));};}var _0x2d2873=function(_0x960a4){return new BPromise(function(_0x22a290,_0x38a48d){_0x1157b8[_0xdea6('0x19')][_0xdea6('0x1a')]({'where':{'phone':_0x1a71fe[_0xdea6('0xb')],'VoiceQueueId':_0x960a4['id']}})[_0xdea6('0x1b')](function(_0x128cd5){if(!_[_0xdea6('0x1c')](_0x128cd5)){throw new Error(_0xdea6('0x1d')+_0x1a71fe['phone']+_0xdea6('0x1e')+_0x960a4['id']);}return _0x1157b8[_0xdea6('0x19')][_0xdea6('0x1f')]({'phone':_0x1a71fe[_0xdea6('0xb')],'ContactId':_0x1a71fe['id'],'ListId':_0x1a71fe['ListId'],'priority':_0x1a71fe[_0xdea6('0x20')]?_0x1a71fe['priority']:0x2,'scheduledat':_0x1a71fe[_0xdea6('0x21')]?_0x1a71fe[_0xdea6('0x21')]:moment()[_0xdea6('0x22')](_0xdea6('0x23')),'callback':_0x1a71fe[_0xdea6('0x24')]?!![]:![],'callbackuniqueid':_0x1a71fe['callbackUniqueid']?_0x1a71fe[_0xdea6('0x24')]:undefined,'callbackat':_0x1a71fe['callbackUniqueid']?moment()[_0xdea6('0x22')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x960a4['id']});})[_0xdea6('0x25')](function(_0x5c05e7){_0x38a48d(_0x5c05e7);});});};var _0xc7d747=function(_0x22fd4a){return new BPromise(function(_0x26564e,_0x416b85){_0x1157b8[_0xdea6('0x19')][_0xdea6('0x1a')]({'where':{'phone':_0x1a71fe['phone'],'VoiceQueueId':_0x22fd4a['id']}})[_0xdea6('0x1b')](function(_0x12bafc){if(!_[_0xdea6('0x1c')](_0x12bafc)){throw new Error(_0xdea6('0x1d')+_0x1a71fe['phone']+_0xdea6('0x26')+_0x22fd4a['id']);}return _0x1157b8[_0xdea6('0x27')][_0xdea6('0x1a')]({'where':{'calleridnum':_0x1a71fe[_0xdea6('0xb')],'VoiceQueueId':_0x22fd4a['id']}});})[_0xdea6('0x1b')](function(_0x5126e1){if(!_[_0xdea6('0x1c')](_0x5126e1)){throw new Error(_0xdea6('0x28')+_0x1a71fe[_0xdea6('0xb')]+_0xdea6('0x29')+_0x22fd4a['id']);}return _0x1157b8[_0xdea6('0x19')]['create']({'phone':_0x1a71fe[_0xdea6('0xb')],'ContactId':_0x1a71fe['id'],'ListId':_0x1a71fe[_0xdea6('0x2a')],'priority':_0x1a71fe[_0xdea6('0x20')]?_0x1a71fe[_0xdea6('0x20')]:0x2,'scheduledat':_0x1a71fe[_0xdea6('0x21')]?_0x1a71fe[_0xdea6('0x21')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x1a71fe['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x1a71fe[_0xdea6('0x24')]?_0x1a71fe[_0xdea6('0x24')]:undefined,'callbackat':_0x1a71fe[_0xdea6('0x24')]?moment()[_0xdea6('0x22')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x22fd4a['id']});})[_0xdea6('0x25')](function(_0x49491f){_0x416b85(_0x49491f);});});};function _0x3a1518(){return function(_0x1203fc){logger[_0xdea6('0x15')](_0xdea6('0x16'),_0xdea6('0x17'),util[_0xdea6('0x18')](_0x1203fc,{'showHidden':![],'depth':null}));};}var _0x5cb218=function(_0x42f7f8){return new BPromise(function(_0x13d67b,_0x4334e6){_0x1157b8[_0xdea6('0x19')][_0xdea6('0x1a')]({'where':{'phone':_0x1a71fe['phone'],'CampaignId':_0x42f7f8['id']}})['then'](function(_0x5b3c4a){if(!_['isNil'](_0x5b3c4a)){throw new Error('cmContact,\x20afterCreate\x20'+_0x1a71fe[_0xdea6('0xb')]+_0xdea6('0x2b')+_0x42f7f8['id']);}return _0x1157b8[_0xdea6('0x19')]['create']({'phone':_0x1a71fe[_0xdea6('0xb')],'ContactId':_0x1a71fe['id'],'ListId':_0x1a71fe['ListId'],'priority':_0x1a71fe[_0xdea6('0x20')]?_0x1a71fe[_0xdea6('0x20')]:0x2,'scheduledat':_0x1a71fe[_0xdea6('0x21')]?_0x1a71fe[_0xdea6('0x21')]:moment()[_0xdea6('0x22')](_0xdea6('0x23')),'callback':_0x1a71fe['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x1a71fe[_0xdea6('0x24')]?_0x1a71fe[_0xdea6('0x24')]:undefined,'callbackat':_0x1a71fe[_0xdea6('0x24')]?moment()[_0xdea6('0x22')](_0xdea6('0x23')):undefined,'CampaignId':_0x42f7f8['id']});})[_0xdea6('0x25')](function(_0xefe4b){_0x4334e6(_0xefe4b);});});};var _0x57e05e=function(_0x3af626){return new BPromise(function(_0x324dfb,_0x29bb34){_0x1157b8[_0xdea6('0x19')][_0xdea6('0x1a')]({'where':{'phone':_0x1a71fe[_0xdea6('0xb')],'CampaignId':_0x3af626['id']}})[_0xdea6('0x1b')](function(_0x56dc77){if(!_['isNil'](_0x56dc77)){throw new Error('cmContact,\x20afterCreate\x20'+_0x1a71fe[_0xdea6('0xb')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x3af626['id']);}return _0x1157b8['CmHopperFinal']['findOne']({'where':{'calleridnum':_0x1a71fe[_0xdea6('0xb')],'CampaignId':_0x3af626['id']}});})[_0xdea6('0x1b')](function(_0x4201c){if(!_[_0xdea6('0x1c')](_0x4201c)){throw new Error(_0xdea6('0x28')+_0x1a71fe[_0xdea6('0xb')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20'+_0x3af626['id']);}return _0x1157b8[_0xdea6('0x19')][_0xdea6('0x1f')]({'phone':_0x1a71fe[_0xdea6('0xb')],'ContactId':_0x1a71fe['id'],'ListId':_0x1a71fe[_0xdea6('0x2a')],'priority':_0x1a71fe[_0xdea6('0x20')]?_0x1a71fe[_0xdea6('0x20')]:0x2,'scheduledat':_0x1a71fe[_0xdea6('0x21')]?_0x1a71fe[_0xdea6('0x21')]:moment()[_0xdea6('0x22')](_0xdea6('0x23')),'callback':_0x1a71fe[_0xdea6('0x24')]?!![]:![],'callbackuniqueid':_0x1a71fe[_0xdea6('0x24')]?_0x1a71fe['callbackUniqueid']:undefined,'callbackat':_0x1a71fe[_0xdea6('0x24')]?moment()[_0xdea6('0x22')](_0xdea6('0x23')):undefined,'CampaignId':_0x3af626['id']});})[_0xdea6('0x25')](function(_0x122650){_0x29bb34(_0x122650);});});};if(_0x1a71fe[_0xdea6('0x2a')]){_0x1157b8[_0xdea6('0x2c')][_0xdea6('0x2d')]({'where':{'type':'outbound'},'attributes':['id',_0xdea6('0x2e')],'include':[{'model':_0x1157b8[_0xdea6('0x2f')],'as':'Lists','where':{'id':_0x1a71fe['ListId']}}]})[_0xdea6('0x1b')](function(_0x5eb25e){if(_0x5eb25e){var _0x1ba818=[];for(var _0x8a87ed=0x0,_0x113c03;_0x8a87ed<_0x5eb25e[_0xdea6('0x30')];_0x8a87ed+=0x1){_0x113c03=_0x5eb25e[_0x8a87ed][_0xdea6('0x14')]({'plain':!![]});switch(_0x113c03['dialCheckDuplicateType']){case _0xdea6('0x31'):_0xc7d747(_0x113c03)['catch'](_0xd3fc4d());break;case'onlyIfOpen':_0x2d2873(_0x113c03)[_0xdea6('0x25')](_0xd3fc4d());break;default:_0x1157b8['CmHopper'][_0xdea6('0x1f')]({'phone':_0x1a71fe[_0xdea6('0xb')],'ContactId':_0x1a71fe['id'],'ListId':_0x1a71fe['ListId'],'scheduledat':_0x1a71fe[_0xdea6('0x21')]?_0x1a71fe['scheduledat']:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x1a71fe[_0xdea6('0x20')]?_0x1a71fe[_0xdea6('0x20')]:0x2,'callback':_0x1a71fe[_0xdea6('0x24')]?!![]:![],'callbackuniqueid':_0x1a71fe[_0xdea6('0x24')]?_0x1a71fe[_0xdea6('0x24')]:undefined,'callbackat':_0x1a71fe['callbackUniqueid']?moment()[_0xdea6('0x22')](_0xdea6('0x23')):undefined,'VoiceQueueId':_0x113c03['id']})['catch'](_0xd3fc4d());}}}})[_0xdea6('0x1b')](function(){return _0x1157b8['VoiceQueue']['findAll']({'where':{'type':_0xdea6('0x32')},'attributes':['id'],'include':[{'model':_0x1157b8[_0xdea6('0x2f')],'as':_0xdea6('0x33'),'where':{'id':_0x1a71fe['ListId']}}]})[_0xdea6('0x1b')](function(_0x49fb5d){if(_0x49fb5d){var _0x10d0e4=[];for(var _0x42b13b=0x0,_0x44d719;_0x42b13b<_0x49fb5d[_0xdea6('0x30')];_0x42b13b+=0x1){_0x44d719=_0x49fb5d[_0x42b13b][_0xdea6('0x14')]({'plain':!![]});_0x1157b8[_0xdea6('0x34')][_0xdea6('0x1f')]({'phone':_0x1a71fe[_0xdea6('0xb')],'ContactId':_0x1a71fe['id'],'ListId':_0x1a71fe[_0xdea6('0x2a')],'VoiceQueueId':_0x44d719['id']})[_0xdea6('0x25')](function(_0xac3f30){logger[_0xdea6('0x15')](_0xdea6('0x35'),_0xdea6('0x17'),_0xac3f30[_0xdea6('0x36')]);});}}});})[_0xdea6('0x1b')](function(){return _0x1157b8['Campaign'][_0xdea6('0x2d')]({'attributes':['id',_0xdea6('0x2e')],'include':[{'model':_0x1157b8[_0xdea6('0x2f')],'as':_0xdea6('0x37'),'where':{'id':_0x1a71fe[_0xdea6('0x2a')]}}]})[_0xdea6('0x1b')](function(_0x39b0bc){if(_0x39b0bc){var _0x32284f=[];for(var _0x4fed8a=0x0,_0x4f483f;_0x4fed8a<_0x39b0bc[_0xdea6('0x30')];_0x4fed8a+=0x1){_0x4f483f=_0x39b0bc[_0x4fed8a]['get']({'plain':!![]});switch(_0x4f483f[_0xdea6('0x2e')]){case _0xdea6('0x31'):_0x57e05e(_0x4f483f)[_0xdea6('0x25')](_0x3a1518());break;case'onlyIfOpen':_0x5cb218(_0x4f483f)[_0xdea6('0x25')](_0x3a1518());break;default:_0x1157b8[_0xdea6('0x19')][_0xdea6('0x1f')]({'phone':_0x1a71fe['phone'],'ContactId':_0x1a71fe['id'],'ListId':_0x1a71fe[_0xdea6('0x2a')],'scheduledat':_0x1a71fe['scheduledat']?_0x1a71fe[_0xdea6('0x21')]:moment()[_0xdea6('0x22')](_0xdea6('0x23')),'priority':_0x1a71fe[_0xdea6('0x20')]?_0x1a71fe['priority']:0x2,'callback':_0x1a71fe[_0xdea6('0x24')]?!![]:![],'callbackuniqueid':_0x1a71fe[_0xdea6('0x24')]?_0x1a71fe[_0xdea6('0x24')]:undefined,'callbackat':_0x1a71fe['callbackUniqueid']?moment()[_0xdea6('0x22')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x4f483f['id']})[_0xdea6('0x25')](_0x3a1518());}}}});})[_0xdea6('0x1b')](function(){return _0x1157b8['Campaign']['findAll']({'attributes':['id'],'include':[{'model':_0x1157b8[_0xdea6('0x2f')],'as':_0xdea6('0x33'),'where':{'id':_0x1a71fe[_0xdea6('0x2a')]}}]})[_0xdea6('0x1b')](function(_0x13c80b){if(_0x13c80b){var _0x4280bc=[];for(var _0x3a2ff8=0x0,_0x2230f7;_0x3a2ff8<_0x13c80b[_0xdea6('0x30')];_0x3a2ff8+=0x1){_0x2230f7=_0x13c80b[_0x3a2ff8][_0xdea6('0x14')]({'plain':!![]});_0x1157b8[_0xdea6('0x34')][_0xdea6('0x1f')]({'phone':_0x1a71fe[_0xdea6('0xb')],'ContactId':_0x1a71fe['id'],'ListId':_0x1a71fe[_0xdea6('0x2a')],'CampaignId':_0x2230f7['id']})[_0xdea6('0x25')](function(_0x3888b7){logger[_0xdea6('0x15')](_0xdea6('0x35'),_0xdea6('0x17'),_0x3888b7[_0xdea6('0x36')]);});}}});})[_0xdea6('0x1b')](function(){_0x5d195a();})[_0xdea6('0x25')](function(_0x19c4b0){logger[_0xdea6('0x15')](_0xdea6('0x35'),'afterCreate',_0x19c4b0[_0xdea6('0x36')]);_0x5d195a(_0x19c4b0);});}else{_0x5d195a(new Error(_0xdea6('0x38')));}},'afterDestroy':function(_0x5e006b,_0x41f2ed,_0x234b19){var _0x491932=_0x22da1f['models'];var _0xf60724=_0x5e006b['get']({'plain':!![]});return _0x491932[_0xdea6('0x19')][_0xdea6('0x2d')]({'raw':!![],'where':{'ListId':_0xf60724[_0xdea6('0x2a')],'ContactId':_0xf60724['id']}})[_0xdea6('0x1b')](function(_0x6148a4){if(!_[_0xdea6('0x39')](_0x6148a4)){var _0x4f0b84=[];for(var _0x1e52e1=0x0;_0x1e52e1<_0x6148a4['length'];_0x1e52e1+=0x1){var _0x3d0fcd=_0x491932[_0xdea6('0x19')]['destroy']({'where':{'ListId':_0x6148a4[_0x1e52e1]['ListId'],'ContactId':_0x6148a4[_0x1e52e1][_0xdea6('0x3a')],'VoiceQueueId':_0x6148a4[_0x1e52e1][_0xdea6('0x3b')],'CampaignId':_0x6148a4[_0x1e52e1][_0xdea6('0x3c')]}});_0x4f0b84[_0xdea6('0x3d')](_0x3d0fcd);}return BPromise[_0xdea6('0x3e')](_0x4f0b84);}})[_0xdea6('0x1b')](function(_0x47c553){logger[_0xdea6('0x3f')](_0xdea6('0x40'),util[_0xdea6('0x18')](_0x47c553,{'showHidden':![],'depth':null}));_0x234b19();})[_0xdea6('0x25')](function(_0xef5953){logger['error']('[CmContact][afterDestroy][Error]',util['inspect'](_0xef5953,{'showHidden':![],'depth':null}));_0x234b19(_0xef5953);});}}});};