Built motion from commit f7863d46.|2.5.41
[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 _0xf467=['models','get','cmContact','afterCreate','inspect','CmHopper','findOne','then','cmContact,\x20afterCreate\x20','create','ListId','priority','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','catch','isNil','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopperFinal','cmContact,\x20afterCreate,\x20','error','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','findAll','outbound','dialCheckDuplicateType','CmList','Lists','length','always','onlyIfOpen','VoiceQueue','BlackLists','CmHopperBlack','Campaign','cmContact,\x20%s,\x20%s','message','isEmpty','ContactId','VoiceQueueId','CampaignId','push','all','info','[CmContact][afterDestroy][Error]','lodash','util','api','moment','bluebird','request-promise','path','rimraf','./cmContact.attributes','exports','define','CmContact','cm_contacts','phone','fti_cm_contacts','firstName','mobile','email','FULLTEXT','utf8mb4','utf8mb4_unicode_ci'];(function(_0x3143f5,_0x367817){var _0x34b09d=function(_0x4c0933){while(--_0x4c0933){_0x3143f5['push'](_0x3143f5['shift']());}};_0x34b09d(++_0x367817);}(_0xf467,0x1b9));var _0x7f46=function(_0x1c4378,_0x41bf8d){_0x1c4378=_0x1c4378-0x0;var _0x910bcc=_0xf467[_0x1c4378];return _0x910bcc;};'use strict';var _=require(_0x7f46('0x0'));var util=require(_0x7f46('0x1'));var logger=require('../../config/logger')(_0x7f46('0x2'));var moment=require(_0x7f46('0x3'));var BPromise=require(_0x7f46('0x4'));var rp=require(_0x7f46('0x5'));var fs=require('fs');var path=require(_0x7f46('0x6'));var rimraf=require(_0x7f46('0x7'));var config=require('../../config/environment');var attributes=require(_0x7f46('0x8'));module[_0x7f46('0x9')]=function(_0x212d1c,_0x5e416d){return _0x212d1c[_0x7f46('0xa')](_0x7f46('0xb'),attributes,{'tableName':_0x7f46('0xc'),'paranoid':!![],'indexes':[{'name':_0x7f46('0xd'),'fields':['phone']},{'name':_0x7f46('0xe'),'fields':[_0x7f46('0xf'),'lastName',_0x7f46('0xd'),_0x7f46('0x10'),'fax',_0x7f46('0x11')],'type':_0x7f46('0x12')}],'timestamps':!![],'charset':_0x7f46('0x13'),'collate':_0x7f46('0x14'),'hooks':{'afterCreate':function(_0x5d1288,_0x31cb3e,_0x5b7b09){var _0x292110=_0x212d1c[_0x7f46('0x15')];var _0xbd2723=_0x5d1288[_0x7f46('0x16')]({'plain':!![]});function _0x3be9a8(){return function(_0x3b3d6e){logger['error'](_0x7f46('0x17'),_0x7f46('0x18'),util[_0x7f46('0x19')](_0x3b3d6e,{'showHidden':![],'depth':null}));};}var _0x41513e=function(_0x4171fc){return new BPromise(function(_0x4b1584,_0x58d9e9){_0x292110[_0x7f46('0x1a')][_0x7f46('0x1b')]({'where':{'phone':_0xbd2723['phone'],'VoiceQueueId':_0x4171fc['id']}})[_0x7f46('0x1c')](function(_0x154cd9){if(!_['isNil'](_0x154cd9)){throw new Error(_0x7f46('0x1d')+_0xbd2723['phone']+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x4171fc['id']);}return _0x292110[_0x7f46('0x1a')][_0x7f46('0x1e')]({'phone':_0xbd2723['phone'],'ContactId':_0xbd2723['id'],'ListId':_0xbd2723[_0x7f46('0x1f')],'priority':_0xbd2723[_0x7f46('0x20')]?_0xbd2723['priority']:0x2,'scheduledat':_0xbd2723[_0x7f46('0x21')]?_0xbd2723[_0x7f46('0x21')]:moment()[_0x7f46('0x22')](_0x7f46('0x23')),'callback':_0xbd2723[_0x7f46('0x24')]?!![]:![],'callbackuniqueid':_0xbd2723[_0x7f46('0x24')]?_0xbd2723[_0x7f46('0x24')]:undefined,'callbackat':_0xbd2723[_0x7f46('0x24')]?moment()[_0x7f46('0x22')](_0x7f46('0x23')):undefined,'VoiceQueueId':_0x4171fc['id']});})[_0x7f46('0x25')](function(_0x4e58fa){_0x58d9e9(_0x4e58fa);});});};var _0x348347=function(_0x2215a0){return new BPromise(function(_0x7ca92f,_0x5a16f0){_0x292110['CmHopper'][_0x7f46('0x1b')]({'where':{'phone':_0xbd2723['phone'],'VoiceQueueId':_0x2215a0['id']}})['then'](function(_0x5f00cc){if(!_[_0x7f46('0x26')](_0x5f00cc)){throw new Error(_0x7f46('0x1d')+_0xbd2723[_0x7f46('0xd')]+_0x7f46('0x27')+_0x2215a0['id']);}return _0x292110[_0x7f46('0x28')][_0x7f46('0x1b')]({'where':{'calleridnum':_0xbd2723[_0x7f46('0xd')],'VoiceQueueId':_0x2215a0['id']}});})[_0x7f46('0x1c')](function(_0x40f3b0){if(!_['isNil'](_0x40f3b0)){throw new Error(_0x7f46('0x29')+_0xbd2723[_0x7f46('0xd')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20'+_0x2215a0['id']);}return _0x292110[_0x7f46('0x1a')][_0x7f46('0x1e')]({'phone':_0xbd2723[_0x7f46('0xd')],'ContactId':_0xbd2723['id'],'ListId':_0xbd2723[_0x7f46('0x1f')],'priority':_0xbd2723[_0x7f46('0x20')]?_0xbd2723[_0x7f46('0x20')]:0x2,'scheduledat':_0xbd2723[_0x7f46('0x21')]?_0xbd2723[_0x7f46('0x21')]:moment()['format'](_0x7f46('0x23')),'callback':_0xbd2723[_0x7f46('0x24')]?!![]:![],'callbackuniqueid':_0xbd2723[_0x7f46('0x24')]?_0xbd2723[_0x7f46('0x24')]:undefined,'callbackat':_0xbd2723[_0x7f46('0x24')]?moment()[_0x7f46('0x22')](_0x7f46('0x23')):undefined,'VoiceQueueId':_0x2215a0['id']});})['catch'](function(_0x3b51c6){_0x5a16f0(_0x3b51c6);});});};function _0x21f03b(){return function(_0xa57322){logger[_0x7f46('0x2a')](_0x7f46('0x17'),_0x7f46('0x18'),util['inspect'](_0xa57322,{'showHidden':![],'depth':null}));};}var _0x8118e8=function(_0x87ef8c){return new BPromise(function(_0x4b2da3,_0x3ce94e){_0x292110[_0x7f46('0x1a')]['findOne']({'where':{'phone':_0xbd2723[_0x7f46('0xd')],'CampaignId':_0x87ef8c['id']}})[_0x7f46('0x1c')](function(_0x15a0c){if(!_['isNil'](_0x15a0c)){throw new Error(_0x7f46('0x1d')+_0xbd2723[_0x7f46('0xd')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x87ef8c['id']);}return _0x292110[_0x7f46('0x1a')][_0x7f46('0x1e')]({'phone':_0xbd2723[_0x7f46('0xd')],'ContactId':_0xbd2723['id'],'ListId':_0xbd2723[_0x7f46('0x1f')],'priority':_0xbd2723['priority']?_0xbd2723[_0x7f46('0x20')]:0x2,'scheduledat':_0xbd2723[_0x7f46('0x21')]?_0xbd2723['scheduledat']:moment()[_0x7f46('0x22')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0xbd2723[_0x7f46('0x24')]?!![]:![],'callbackuniqueid':_0xbd2723['callbackUniqueid']?_0xbd2723[_0x7f46('0x24')]:undefined,'callbackat':_0xbd2723[_0x7f46('0x24')]?moment()[_0x7f46('0x22')](_0x7f46('0x23')):undefined,'CampaignId':_0x87ef8c['id']});})[_0x7f46('0x25')](function(_0x33f461){_0x3ce94e(_0x33f461);});});};var _0x324e27=function(_0x49c9a6){return new BPromise(function(_0x24596c,_0x50c2e6){_0x292110['CmHopper'][_0x7f46('0x1b')]({'where':{'phone':_0xbd2723[_0x7f46('0xd')],'CampaignId':_0x49c9a6['id']}})[_0x7f46('0x1c')](function(_0x52bf1b){if(!_['isNil'](_0x52bf1b)){throw new Error('cmContact,\x20afterCreate\x20'+_0xbd2723[_0x7f46('0xd')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x49c9a6['id']);}return _0x292110['CmHopperFinal'][_0x7f46('0x1b')]({'where':{'calleridnum':_0xbd2723[_0x7f46('0xd')],'CampaignId':_0x49c9a6['id']}});})[_0x7f46('0x1c')](function(_0x460402){if(!_['isNil'](_0x460402)){throw new Error(_0x7f46('0x29')+_0xbd2723[_0x7f46('0xd')]+_0x7f46('0x2b')+_0x49c9a6['id']);}return _0x292110[_0x7f46('0x1a')][_0x7f46('0x1e')]({'phone':_0xbd2723[_0x7f46('0xd')],'ContactId':_0xbd2723['id'],'ListId':_0xbd2723[_0x7f46('0x1f')],'priority':_0xbd2723['priority']?_0xbd2723[_0x7f46('0x20')]:0x2,'scheduledat':_0xbd2723[_0x7f46('0x21')]?_0xbd2723[_0x7f46('0x21')]:moment()[_0x7f46('0x22')](_0x7f46('0x23')),'callback':_0xbd2723[_0x7f46('0x24')]?!![]:![],'callbackuniqueid':_0xbd2723[_0x7f46('0x24')]?_0xbd2723['callbackUniqueid']:undefined,'callbackat':_0xbd2723[_0x7f46('0x24')]?moment()[_0x7f46('0x22')](_0x7f46('0x23')):undefined,'CampaignId':_0x49c9a6['id']});})[_0x7f46('0x25')](function(_0x13b11f){_0x50c2e6(_0x13b11f);});});};if(_0xbd2723[_0x7f46('0x1f')]){_0x292110['VoiceQueue'][_0x7f46('0x2c')]({'where':{'type':_0x7f46('0x2d')},'attributes':['id',_0x7f46('0x2e')],'include':[{'model':_0x292110[_0x7f46('0x2f')],'as':_0x7f46('0x30'),'where':{'id':_0xbd2723['ListId']}}]})['then'](function(_0x299628){if(_0x299628){var _0x5dd7a8=[];for(var _0x289ac0=0x0,_0x4aeb60;_0x289ac0<_0x299628[_0x7f46('0x31')];_0x289ac0+=0x1){_0x4aeb60=_0x299628[_0x289ac0]['get']({'plain':!![]});switch(_0x4aeb60[_0x7f46('0x2e')]){case _0x7f46('0x32'):_0x348347(_0x4aeb60)[_0x7f46('0x25')](_0x3be9a8());break;case _0x7f46('0x33'):_0x41513e(_0x4aeb60)[_0x7f46('0x25')](_0x3be9a8());break;default:_0x292110[_0x7f46('0x1a')]['create']({'phone':_0xbd2723[_0x7f46('0xd')],'ContactId':_0xbd2723['id'],'ListId':_0xbd2723['ListId'],'scheduledat':_0xbd2723['scheduledat']?_0xbd2723['scheduledat']:moment()[_0x7f46('0x22')](_0x7f46('0x23')),'priority':_0xbd2723['priority']?_0xbd2723['priority']:0x2,'callback':_0xbd2723[_0x7f46('0x24')]?!![]:![],'callbackuniqueid':_0xbd2723[_0x7f46('0x24')]?_0xbd2723[_0x7f46('0x24')]:undefined,'callbackat':_0xbd2723[_0x7f46('0x24')]?moment()[_0x7f46('0x22')](_0x7f46('0x23')):undefined,'VoiceQueueId':_0x4aeb60['id']})[_0x7f46('0x25')](_0x3be9a8());}}}})[_0x7f46('0x1c')](function(){return _0x292110[_0x7f46('0x34')][_0x7f46('0x2c')]({'where':{'type':'outbound'},'attributes':['id'],'include':[{'model':_0x292110[_0x7f46('0x2f')],'as':_0x7f46('0x35'),'where':{'id':_0xbd2723[_0x7f46('0x1f')]}}]})['then'](function(_0x1198cf){if(_0x1198cf){var _0x249ca5=[];for(var _0x48da94=0x0,_0x550977;_0x48da94<_0x1198cf['length'];_0x48da94+=0x1){_0x550977=_0x1198cf[_0x48da94]['get']({'plain':!![]});_0x292110[_0x7f46('0x36')][_0x7f46('0x1e')]({'phone':_0xbd2723[_0x7f46('0xd')],'ContactId':_0xbd2723['id'],'ListId':_0xbd2723[_0x7f46('0x1f')],'VoiceQueueId':_0x550977['id']})[_0x7f46('0x25')](function(_0x276b34){logger[_0x7f46('0x2a')]('cmContact,\x20%s,\x20%s',_0x7f46('0x18'),_0x276b34['message']);});}}});})[_0x7f46('0x1c')](function(){return _0x292110['Campaign'][_0x7f46('0x2c')]({'attributes':['id',_0x7f46('0x2e')],'include':[{'model':_0x292110[_0x7f46('0x2f')],'as':_0x7f46('0x30'),'where':{'id':_0xbd2723[_0x7f46('0x1f')]}}]})[_0x7f46('0x1c')](function(_0x5cac16){if(_0x5cac16){var _0x320350=[];for(var _0x2a7afc=0x0,_0x334b63;_0x2a7afc<_0x5cac16[_0x7f46('0x31')];_0x2a7afc+=0x1){_0x334b63=_0x5cac16[_0x2a7afc]['get']({'plain':!![]});switch(_0x334b63[_0x7f46('0x2e')]){case _0x7f46('0x32'):_0x324e27(_0x334b63)[_0x7f46('0x25')](_0x21f03b());break;case _0x7f46('0x33'):_0x8118e8(_0x334b63)[_0x7f46('0x25')](_0x21f03b());break;default:_0x292110[_0x7f46('0x1a')][_0x7f46('0x1e')]({'phone':_0xbd2723[_0x7f46('0xd')],'ContactId':_0xbd2723['id'],'ListId':_0xbd2723['ListId'],'scheduledat':_0xbd2723[_0x7f46('0x21')]?_0xbd2723[_0x7f46('0x21')]:moment()[_0x7f46('0x22')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0xbd2723[_0x7f46('0x20')]?_0xbd2723['priority']:0x2,'callback':_0xbd2723[_0x7f46('0x24')]?!![]:![],'callbackuniqueid':_0xbd2723[_0x7f46('0x24')]?_0xbd2723['callbackUniqueid']:undefined,'callbackat':_0xbd2723[_0x7f46('0x24')]?moment()[_0x7f46('0x22')](_0x7f46('0x23')):undefined,'CampaignId':_0x334b63['id']})['catch'](_0x21f03b());}}}});})['then'](function(){return _0x292110[_0x7f46('0x37')][_0x7f46('0x2c')]({'attributes':['id'],'include':[{'model':_0x292110[_0x7f46('0x2f')],'as':_0x7f46('0x35'),'where':{'id':_0xbd2723['ListId']}}]})['then'](function(_0xa2167f){if(_0xa2167f){var _0x9bd766=[];for(var _0x3521a3=0x0,_0x749612;_0x3521a3<_0xa2167f[_0x7f46('0x31')];_0x3521a3+=0x1){_0x749612=_0xa2167f[_0x3521a3][_0x7f46('0x16')]({'plain':!![]});_0x292110[_0x7f46('0x36')][_0x7f46('0x1e')]({'phone':_0xbd2723[_0x7f46('0xd')],'ContactId':_0xbd2723['id'],'ListId':_0xbd2723['ListId'],'CampaignId':_0x749612['id']})[_0x7f46('0x25')](function(_0x2ad912){logger[_0x7f46('0x2a')](_0x7f46('0x38'),'afterCreate',_0x2ad912[_0x7f46('0x39')]);});}}});})[_0x7f46('0x1c')](function(){_0x5b7b09();})['catch'](function(_0x301736){logger[_0x7f46('0x2a')](_0x7f46('0x38'),_0x7f46('0x18'),_0x301736['message']);_0x5b7b09(_0x301736);});}else{_0x5b7b09(new Error('List\x20not\x20found'));}},'afterDestroy':function(_0x111bdd,_0x441b72,_0x244fb5){var _0x190aeb=_0x212d1c[_0x7f46('0x15')];var _0x15cf38=_0x111bdd[_0x7f46('0x16')]({'plain':!![]});return _0x190aeb[_0x7f46('0x1a')][_0x7f46('0x2c')]({'raw':!![],'where':{'ListId':_0x15cf38[_0x7f46('0x1f')],'ContactId':_0x15cf38['id']}})[_0x7f46('0x1c')](function(_0x26de7a){if(!_[_0x7f46('0x3a')](_0x26de7a)){var _0x5bcc5b=[];for(var _0x28f0ef=0x0;_0x28f0ef<_0x26de7a[_0x7f46('0x31')];_0x28f0ef+=0x1){var _0x146e08=_0x190aeb[_0x7f46('0x1a')]['destroy']({'where':{'ListId':_0x26de7a[_0x28f0ef]['ListId'],'ContactId':_0x26de7a[_0x28f0ef][_0x7f46('0x3b')],'VoiceQueueId':_0x26de7a[_0x28f0ef][_0x7f46('0x3c')],'CampaignId':_0x26de7a[_0x28f0ef][_0x7f46('0x3d')]}});_0x5bcc5b[_0x7f46('0x3e')](_0x146e08);}return BPromise[_0x7f46('0x3f')](_0x5bcc5b);}})[_0x7f46('0x1c')](function(_0x173ebc){logger[_0x7f46('0x40')]('[CmContact][afterDestroy][Succesfull]',util[_0x7f46('0x19')](_0x173ebc,{'showHidden':![],'depth':null}));_0x244fb5();})[_0x7f46('0x25')](function(_0x379ddb){logger[_0x7f46('0x2a')](_0x7f46('0x41'),util[_0x7f46('0x19')](_0x379ddb,{'showHidden':![],'depth':null}));_0x244fb5(_0x379ddb);});}}});};