Built motion from commit 753c950e.|2.5.42
[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 _0x65f7=['\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','create','\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','outbound','dialCheckDuplicateType','length','onlyIfOpen','findAll','CmList','BlackLists','CmHopperBlack','cmContact,\x20%s,\x20%s','message','Lists','always','List\x20not\x20found','isEmpty','destroy','ContactId','VoiceQueueId','push','all','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','moment','bluebird','request-promise','../../config/environment','./cmContact.attributes','exports','define','cm_contacts','phone','fti_cm_contacts','firstName','email','FULLTEXT','utf8mb4_unicode_ci','models','get','error','afterCreate','inspect','CmHopper','findOne','then','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','ListId','priority','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','catch','CmHopperFinal','cmContact,\x20afterCreate,\x20'];(function(_0x141e03,_0x18340e){var _0x2074e3=function(_0x2b7ece){while(--_0x2b7ece){_0x141e03['push'](_0x141e03['shift']());}};_0x2074e3(++_0x18340e);}(_0x65f7,0x1db));var _0x765f=function(_0x58d47e,_0x2b6561){_0x58d47e=_0x58d47e-0x0;var _0x3de11e=_0x65f7[_0x58d47e];return _0x3de11e;};'use strict';var _=require(_0x765f('0x0'));var util=require(_0x765f('0x1'));var logger=require(_0x765f('0x2'))('api');var moment=require(_0x765f('0x3'));var BPromise=require(_0x765f('0x4'));var rp=require(_0x765f('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x765f('0x6'));var attributes=require(_0x765f('0x7'));module[_0x765f('0x8')]=function(_0x38fee6,_0x1eca3d){return _0x38fee6[_0x765f('0x9')]('CmContact',attributes,{'tableName':_0x765f('0xa'),'paranoid':!![],'indexes':[{'name':_0x765f('0xb'),'fields':[_0x765f('0xb')]},{'name':_0x765f('0xc'),'fields':[_0x765f('0xd'),'lastName',_0x765f('0xb'),'mobile','fax',_0x765f('0xe')],'type':_0x765f('0xf')}],'timestamps':!![],'charset':'utf8mb4','collate':_0x765f('0x10'),'hooks':{'afterCreate':function(_0xa664b7,_0x48257a,_0x4c556a){var _0x42eac4=_0x38fee6[_0x765f('0x11')];var _0x10c07d=_0xa664b7[_0x765f('0x12')]({'plain':!![]});function _0x2417a8(){return function(_0x483d5e){logger[_0x765f('0x13')]('cmContact',_0x765f('0x14'),util[_0x765f('0x15')](_0x483d5e,{'showHidden':![],'depth':null}));};}var _0x201c29=function(_0x21ffd7){return new BPromise(function(_0x54a387,_0x204152){_0x42eac4[_0x765f('0x16')][_0x765f('0x17')]({'where':{'phone':_0x10c07d['phone'],'VoiceQueueId':_0x21ffd7['id']}})[_0x765f('0x18')](function(_0x283e67){if(!_[_0x765f('0x19')](_0x283e67)){throw new Error(_0x765f('0x1a')+_0x10c07d[_0x765f('0xb')]+_0x765f('0x1b')+_0x21ffd7['id']);}return _0x42eac4[_0x765f('0x16')]['create']({'phone':_0x10c07d[_0x765f('0xb')],'ContactId':_0x10c07d['id'],'ListId':_0x10c07d[_0x765f('0x1c')],'priority':_0x10c07d['priority']?_0x10c07d[_0x765f('0x1d')]:0x2,'scheduledat':_0x10c07d[_0x765f('0x1e')]?_0x10c07d['scheduledat']:moment()[_0x765f('0x1f')](_0x765f('0x20')),'callback':_0x10c07d[_0x765f('0x21')]?!![]:![],'callbackuniqueid':_0x10c07d['callbackUniqueid']?_0x10c07d[_0x765f('0x21')]:undefined,'callbackat':_0x10c07d['callbackUniqueid']?moment()['format'](_0x765f('0x20')):undefined,'VoiceQueueId':_0x21ffd7['id']});})[_0x765f('0x22')](function(_0x35c954){_0x204152(_0x35c954);});});};var _0x259fa8=function(_0x2a283c){return new BPromise(function(_0x3b16a8,_0x5ccae3){_0x42eac4[_0x765f('0x16')]['findOne']({'where':{'phone':_0x10c07d[_0x765f('0xb')],'VoiceQueueId':_0x2a283c['id']}})[_0x765f('0x18')](function(_0x3398aa){if(!_[_0x765f('0x19')](_0x3398aa)){throw new Error(_0x765f('0x1a')+_0x10c07d[_0x765f('0xb')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x2a283c['id']);}return _0x42eac4[_0x765f('0x23')][_0x765f('0x17')]({'where':{'calleridnum':_0x10c07d[_0x765f('0xb')],'VoiceQueueId':_0x2a283c['id']}});})['then'](function(_0x44b206){if(!_[_0x765f('0x19')](_0x44b206)){throw new Error(_0x765f('0x24')+_0x10c07d['phone']+_0x765f('0x25')+_0x2a283c['id']);}return _0x42eac4['CmHopper']['create']({'phone':_0x10c07d['phone'],'ContactId':_0x10c07d['id'],'ListId':_0x10c07d[_0x765f('0x1c')],'priority':_0x10c07d[_0x765f('0x1d')]?_0x10c07d[_0x765f('0x1d')]:0x2,'scheduledat':_0x10c07d['scheduledat']?_0x10c07d[_0x765f('0x1e')]:moment()[_0x765f('0x1f')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x10c07d[_0x765f('0x21')]?!![]:![],'callbackuniqueid':_0x10c07d[_0x765f('0x21')]?_0x10c07d[_0x765f('0x21')]:undefined,'callbackat':_0x10c07d['callbackUniqueid']?moment()[_0x765f('0x1f')](_0x765f('0x20')):undefined,'VoiceQueueId':_0x2a283c['id']});})[_0x765f('0x22')](function(_0xbd8fb5){_0x5ccae3(_0xbd8fb5);});});};function _0x4a6909(){return function(_0x462c2a){logger[_0x765f('0x13')]('cmContact',_0x765f('0x14'),util[_0x765f('0x15')](_0x462c2a,{'showHidden':![],'depth':null}));};}var _0x117826=function(_0x41ec1b){return new BPromise(function(_0x1ebe5a,_0x1e1d94){_0x42eac4[_0x765f('0x16')]['findOne']({'where':{'phone':_0x10c07d[_0x765f('0xb')],'CampaignId':_0x41ec1b['id']}})[_0x765f('0x18')](function(_0x4181d5){if(!_['isNil'](_0x4181d5)){throw new Error(_0x765f('0x1a')+_0x10c07d[_0x765f('0xb')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x41ec1b['id']);}return _0x42eac4[_0x765f('0x16')][_0x765f('0x26')]({'phone':_0x10c07d['phone'],'ContactId':_0x10c07d['id'],'ListId':_0x10c07d[_0x765f('0x1c')],'priority':_0x10c07d[_0x765f('0x1d')]?_0x10c07d[_0x765f('0x1d')]:0x2,'scheduledat':_0x10c07d[_0x765f('0x1e')]?_0x10c07d[_0x765f('0x1e')]:moment()['format'](_0x765f('0x20')),'callback':_0x10c07d[_0x765f('0x21')]?!![]:![],'callbackuniqueid':_0x10c07d[_0x765f('0x21')]?_0x10c07d[_0x765f('0x21')]:undefined,'callbackat':_0x10c07d[_0x765f('0x21')]?moment()[_0x765f('0x1f')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x41ec1b['id']});})[_0x765f('0x22')](function(_0x1aac43){_0x1e1d94(_0x1aac43);});});};var _0x523b02=function(_0x5af908){return new BPromise(function(_0x24c596,_0x5e2fde){_0x42eac4[_0x765f('0x16')][_0x765f('0x17')]({'where':{'phone':_0x10c07d[_0x765f('0xb')],'CampaignId':_0x5af908['id']}})[_0x765f('0x18')](function(_0x51a37a){if(!_[_0x765f('0x19')](_0x51a37a)){throw new Error(_0x765f('0x1a')+_0x10c07d[_0x765f('0xb')]+_0x765f('0x27')+_0x5af908['id']);}return _0x42eac4[_0x765f('0x23')][_0x765f('0x17')]({'where':{'calleridnum':_0x10c07d['phone'],'CampaignId':_0x5af908['id']}});})['then'](function(_0x1d78e2){if(!_[_0x765f('0x19')](_0x1d78e2)){throw new Error(_0x765f('0x24')+_0x10c07d[_0x765f('0xb')]+_0x765f('0x28')+_0x5af908['id']);}return _0x42eac4['CmHopper'][_0x765f('0x26')]({'phone':_0x10c07d[_0x765f('0xb')],'ContactId':_0x10c07d['id'],'ListId':_0x10c07d[_0x765f('0x1c')],'priority':_0x10c07d['priority']?_0x10c07d[_0x765f('0x1d')]:0x2,'scheduledat':_0x10c07d[_0x765f('0x1e')]?_0x10c07d['scheduledat']:moment()[_0x765f('0x1f')](_0x765f('0x20')),'callback':_0x10c07d[_0x765f('0x21')]?!![]:![],'callbackuniqueid':_0x10c07d[_0x765f('0x21')]?_0x10c07d[_0x765f('0x21')]:undefined,'callbackat':_0x10c07d[_0x765f('0x21')]?moment()[_0x765f('0x1f')](_0x765f('0x20')):undefined,'CampaignId':_0x5af908['id']});})['catch'](function(_0x480907){_0x5e2fde(_0x480907);});});};if(_0x10c07d['ListId']){_0x42eac4[_0x765f('0x29')]['findAll']({'where':{'type':_0x765f('0x2a')},'attributes':['id',_0x765f('0x2b')],'include':[{'model':_0x42eac4['CmList'],'as':'Lists','where':{'id':_0x10c07d['ListId']}}]})[_0x765f('0x18')](function(_0x198748){if(_0x198748){var _0x322f6a=[];for(var _0x40d7eb=0x0,_0x2d027c;_0x40d7eb<_0x198748[_0x765f('0x2c')];_0x40d7eb+=0x1){_0x2d027c=_0x198748[_0x40d7eb][_0x765f('0x12')]({'plain':!![]});switch(_0x2d027c['dialCheckDuplicateType']){case'always':_0x259fa8(_0x2d027c)[_0x765f('0x22')](_0x2417a8());break;case _0x765f('0x2d'):_0x201c29(_0x2d027c)[_0x765f('0x22')](_0x2417a8());break;default:_0x42eac4[_0x765f('0x16')][_0x765f('0x26')]({'phone':_0x10c07d[_0x765f('0xb')],'ContactId':_0x10c07d['id'],'ListId':_0x10c07d['ListId'],'scheduledat':_0x10c07d[_0x765f('0x1e')]?_0x10c07d[_0x765f('0x1e')]:moment()[_0x765f('0x1f')](_0x765f('0x20')),'priority':_0x10c07d[_0x765f('0x1d')]?_0x10c07d['priority']:0x2,'callback':_0x10c07d[_0x765f('0x21')]?!![]:![],'callbackuniqueid':_0x10c07d[_0x765f('0x21')]?_0x10c07d[_0x765f('0x21')]:undefined,'callbackat':_0x10c07d[_0x765f('0x21')]?moment()['format'](_0x765f('0x20')):undefined,'VoiceQueueId':_0x2d027c['id']})[_0x765f('0x22')](_0x2417a8());}}}})[_0x765f('0x18')](function(){return _0x42eac4['VoiceQueue'][_0x765f('0x2e')]({'where':{'type':_0x765f('0x2a')},'attributes':['id'],'include':[{'model':_0x42eac4[_0x765f('0x2f')],'as':_0x765f('0x30'),'where':{'id':_0x10c07d[_0x765f('0x1c')]}}]})[_0x765f('0x18')](function(_0x146c1d){if(_0x146c1d){var _0x249733=[];for(var _0x5845fc=0x0,_0x2aa076;_0x5845fc<_0x146c1d['length'];_0x5845fc+=0x1){_0x2aa076=_0x146c1d[_0x5845fc][_0x765f('0x12')]({'plain':!![]});_0x42eac4[_0x765f('0x31')][_0x765f('0x26')]({'phone':_0x10c07d[_0x765f('0xb')],'ContactId':_0x10c07d['id'],'ListId':_0x10c07d[_0x765f('0x1c')],'VoiceQueueId':_0x2aa076['id']})[_0x765f('0x22')](function(_0x10b5c9){logger[_0x765f('0x13')](_0x765f('0x32'),_0x765f('0x14'),_0x10b5c9[_0x765f('0x33')]);});}}});})['then'](function(){return _0x42eac4['Campaign'][_0x765f('0x2e')]({'attributes':['id',_0x765f('0x2b')],'include':[{'model':_0x42eac4[_0x765f('0x2f')],'as':_0x765f('0x34'),'where':{'id':_0x10c07d[_0x765f('0x1c')]}}]})['then'](function(_0x33ad7f){if(_0x33ad7f){var _0x5f02b1=[];for(var _0x39be98=0x0,_0x23ce48;_0x39be98<_0x33ad7f['length'];_0x39be98+=0x1){_0x23ce48=_0x33ad7f[_0x39be98]['get']({'plain':!![]});switch(_0x23ce48[_0x765f('0x2b')]){case _0x765f('0x35'):_0x523b02(_0x23ce48)['catch'](_0x4a6909());break;case _0x765f('0x2d'):_0x117826(_0x23ce48)[_0x765f('0x22')](_0x4a6909());break;default:_0x42eac4[_0x765f('0x16')]['create']({'phone':_0x10c07d[_0x765f('0xb')],'ContactId':_0x10c07d['id'],'ListId':_0x10c07d[_0x765f('0x1c')],'scheduledat':_0x10c07d['scheduledat']?_0x10c07d['scheduledat']:moment()[_0x765f('0x1f')](_0x765f('0x20')),'priority':_0x10c07d['priority']?_0x10c07d[_0x765f('0x1d')]:0x2,'callback':_0x10c07d[_0x765f('0x21')]?!![]:![],'callbackuniqueid':_0x10c07d[_0x765f('0x21')]?_0x10c07d[_0x765f('0x21')]:undefined,'callbackat':_0x10c07d['callbackUniqueid']?moment()[_0x765f('0x1f')](_0x765f('0x20')):undefined,'CampaignId':_0x23ce48['id']})['catch'](_0x4a6909());}}}});})[_0x765f('0x18')](function(){return _0x42eac4['Campaign'][_0x765f('0x2e')]({'attributes':['id'],'include':[{'model':_0x42eac4[_0x765f('0x2f')],'as':_0x765f('0x30'),'where':{'id':_0x10c07d[_0x765f('0x1c')]}}]})[_0x765f('0x18')](function(_0x55d3a7){if(_0x55d3a7){var _0x1b3062=[];for(var _0x2bf311=0x0,_0x56f625;_0x2bf311<_0x55d3a7['length'];_0x2bf311+=0x1){_0x56f625=_0x55d3a7[_0x2bf311][_0x765f('0x12')]({'plain':!![]});_0x42eac4[_0x765f('0x31')][_0x765f('0x26')]({'phone':_0x10c07d[_0x765f('0xb')],'ContactId':_0x10c07d['id'],'ListId':_0x10c07d[_0x765f('0x1c')],'CampaignId':_0x56f625['id']})['catch'](function(_0x64c866){logger['error'](_0x765f('0x32'),'afterCreate',_0x64c866[_0x765f('0x33')]);});}}});})['then'](function(){_0x4c556a();})['catch'](function(_0x577646){logger['error']('cmContact,\x20%s,\x20%s','afterCreate',_0x577646[_0x765f('0x33')]);_0x4c556a(_0x577646);});}else{_0x4c556a(new Error(_0x765f('0x36')));}},'afterDestroy':function(_0x440ebd,_0x5d8996,_0x42d753){var _0x4bf605=_0x38fee6[_0x765f('0x11')];var _0x8a7156=_0x440ebd[_0x765f('0x12')]({'plain':!![]});return _0x4bf605[_0x765f('0x16')]['findAll']({'raw':!![],'where':{'ListId':_0x8a7156[_0x765f('0x1c')],'ContactId':_0x8a7156['id']}})[_0x765f('0x18')](function(_0x46e9a3){if(!_[_0x765f('0x37')](_0x46e9a3)){var _0x4d5536=[];for(var _0x5df90d=0x0;_0x5df90d<_0x46e9a3['length'];_0x5df90d+=0x1){var _0x13293c=_0x4bf605['CmHopper'][_0x765f('0x38')]({'where':{'ListId':_0x46e9a3[_0x5df90d]['ListId'],'ContactId':_0x46e9a3[_0x5df90d][_0x765f('0x39')],'VoiceQueueId':_0x46e9a3[_0x5df90d][_0x765f('0x3a')],'CampaignId':_0x46e9a3[_0x5df90d]['CampaignId']}});_0x4d5536[_0x765f('0x3b')](_0x13293c);}return BPromise[_0x765f('0x3c')](_0x4d5536);}})[_0x765f('0x18')](function(_0x176293){logger[_0x765f('0x3d')](_0x765f('0x3e'),util[_0x765f('0x15')](_0x176293,{'showHidden':![],'depth':null}));_0x42d753();})[_0x765f('0x22')](function(_0x28639d){logger[_0x765f('0x13')](_0x765f('0x3f'),util[_0x765f('0x15')](_0x28639d,{'showHidden':![],'depth':null}));_0x42d753(_0x28639d);});}}});};