Built motion from commit 9d0783e6.|2.6.13
[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 _0x538d=['\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','ListId','\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','dialCheckDuplicateType','Lists','length','always','onlyIfOpen','findAll','BlackLists','CmHopperBlack','cmContact,\x20%s,\x20%s','message','CmList','List\x20not\x20found','destroy','VoiceQueueId','CampaignId','push','all','[CmContact][afterDestroy][Succesfull]','inspect','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','CmContact','phone','fti_cm_contacts','firstName','lastName','mobile','fax','FULLTEXT','utf8mb4','utf8mb4_unicode_ci','models','get','error','cmContact','afterCreate','scheduledat','YYYY-MM-DD\x20HH:mm:ss','isNil','dialTimezone','then','timezones','utcOffset','minutes','format','CmHopper','findOne','cmContact,\x20afterCreate\x20','priority','callbackUniqueid','catch','ret','\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','create','Campaign','add'];(function(_0x1e15f9,_0x35b77d){var _0x36acbd=function(_0x5d4609){while(--_0x5d4609){_0x1e15f9['push'](_0x1e15f9['shift']());}};_0x36acbd(++_0x35b77d);}(_0x538d,0x13d));var _0xd538=function(_0x353611,_0x5cb6ef){_0x353611=_0x353611-0x0;var _0x5dc32f=_0x538d[_0x353611];return _0x5dc32f;};'use strict';var _=require(_0xd538('0x0'));var util=require(_0xd538('0x1'));var logger=require(_0xd538('0x2'))(_0xd538('0x3'));var moment=require(_0xd538('0x4'));var BPromise=require(_0xd538('0x5'));var rp=require(_0xd538('0x6'));var fs=require('fs');var path=require(_0xd538('0x7'));var rimraf=require(_0xd538('0x8'));var config=require(_0xd538('0x9'));var shared=require('../../config/environment/shared');var attributes=require('./cmContact.attributes');module['exports']=function(_0x50baa7,_0x432a77){return _0x50baa7['define'](_0xd538('0xa'),attributes,{'tableName':'cm_contacts','paranoid':!![],'indexes':[{'name':_0xd538('0xb'),'fields':[_0xd538('0xb')]},{'name':_0xd538('0xc'),'fields':[_0xd538('0xd'),_0xd538('0xe'),_0xd538('0xb'),_0xd538('0xf'),_0xd538('0x10'),'email'],'type':_0xd538('0x11')}],'timestamps':!![],'charset':_0xd538('0x12'),'collate':_0xd538('0x13'),'hooks':{'afterCreate':function(_0x2aad0f,_0x3e56ed,_0x205479){var _0x278a64=_0x50baa7[_0xd538('0x14')];var _0x46da79=_0x2aad0f[_0xd538('0x15')]({'plain':!![]});function _0x487962(){return function(_0x3ca4de){logger[_0xd538('0x16')](_0xd538('0x17'),_0xd538('0x18'),util['inspect'](_0x3ca4de,{'showHidden':![],'depth':null}));};}function _0x844971(_0x2992a3,_0x452424){var _0x5e93ab=_0x452424[_0xd538('0x19')]?_0x452424[_0xd538('0x19')]:moment()['format'](_0xd538('0x1a'));return new BPromise(function(_0x5a3b38,_0x17aad2){if(_[_0xd538('0x1b')](_0x452424[_0xd538('0x1c')])){_0x5a3b38({'ret':_0x5e93ab});}else{_0x278a64['VoiceQueue']['findOne']({'where':{'id':_0x2992a3['id']}})[_0xd538('0x1d')](function(_0x1476be){if(!_['isNil'](_0x1476be)){var _0x20a311=_0x1476be[_0xd538('0x1c')];if(!_[_0xd538('0x1b')](_0x20a311)){var _0x4eb4e5=shared[_0xd538('0x1e')];var _0x566d43=_0x4eb4e5[_0x20a311];var _0x536374=_0x4eb4e5[_0x452424[_0xd538('0x1c')]];if(!_['isNil'](_0x566d43)&&!_[_0xd538('0x1b')](_0x536374)){var _0x342321=_0x566d43[_0xd538('0x1f')]-_0x536374['utcOffset'];_0x5e93ab=_0x452424[_0xd538('0x19')]?_0x452424[_0xd538('0x19')]:moment();var _0x6ad233=moment(_0x5e93ab)['add'](_0x342321,_0xd538('0x20'));_0x5a3b38({'ret':_0x6ad233[_0xd538('0x21')](_0xd538('0x1a'))});}else _0x5a3b38({'ret':_0x5e93ab});}else _0x5a3b38({'ret':_0x5e93ab});}else{_0x5a3b38({'ret':_0x5e93ab});}});}});return 0xa;}var _0x48fb41=function(_0x5a7ddc){return new BPromise(function(_0x2ed024,_0x1a6159){_0x844971(_0x5a7ddc,_0x46da79)[_0xd538('0x1d')](function(_0x4ac558){_0x46da79['scheduledat']=_0x4ac558['ret'];_0x278a64[_0xd538('0x22')][_0xd538('0x23')]({'where':{'phone':_0x46da79['phone'],'VoiceQueueId':_0x5a7ddc['id']}})['then'](function(_0x12f5c2){if(!_['isNil'](_0x12f5c2)){throw new Error(_0xd538('0x24')+_0x46da79[_0xd538('0xb')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x5a7ddc['id']);}return _0x278a64[_0xd538('0x22')]['create']({'phone':_0x46da79[_0xd538('0xb')],'ContactId':_0x46da79['id'],'ListId':_0x46da79['ListId'],'priority':_0x46da79[_0xd538('0x25')]?_0x46da79[_0xd538('0x25')]:0x2,'scheduledat':_0x46da79['scheduledat']?_0x46da79['scheduledat']:moment()[_0xd538('0x21')](_0xd538('0x1a')),'callback':_0x46da79['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x46da79[_0xd538('0x26')]?_0x46da79[_0xd538('0x26')]:undefined,'callbackat':_0x46da79['callbackUniqueid']?moment()[_0xd538('0x21')](_0xd538('0x1a')):undefined,'VoiceQueueId':_0x5a7ddc['id']});})[_0xd538('0x27')](function(_0x3c5bcd){_0x1a6159(_0x3c5bcd);});});});};var _0x3d66a4=function(_0x4d0df9){return new BPromise(function(_0x2add22,_0x24e9b3){_0x844971(_0x4d0df9,_0x46da79)[_0xd538('0x1d')](function(_0x3d87b2){_0x46da79[_0xd538('0x19')]=_0x3d87b2[_0xd538('0x28')];_0x278a64[_0xd538('0x22')][_0xd538('0x23')]({'where':{'phone':_0x46da79[_0xd538('0xb')],'VoiceQueueId':_0x4d0df9['id']}})['then'](function(_0x1295f2){if(!_['isNil'](_0x1295f2)){throw new Error('cmContact,\x20afterCreate\x20'+_0x46da79['phone']+_0xd538('0x29')+_0x4d0df9['id']);}return _0x278a64[_0xd538('0x2a')][_0xd538('0x23')]({'where':{'calleridnum':_0x46da79[_0xd538('0xb')],'VoiceQueueId':_0x4d0df9['id']}});})['then'](function(_0x2d3a3c){if(!_['isNil'](_0x2d3a3c)){throw new Error(_0xd538('0x2b')+_0x46da79['phone']+_0xd538('0x2c')+_0x4d0df9['id']);}return _0x278a64[_0xd538('0x22')][_0xd538('0x2d')]({'phone':_0x46da79[_0xd538('0xb')],'ContactId':_0x46da79['id'],'ListId':_0x46da79['ListId'],'priority':_0x46da79['priority']?_0x46da79[_0xd538('0x25')]:0x2,'scheduledat':_0x46da79['scheduledat']?_0x46da79['scheduledat']:moment()['format'](_0xd538('0x1a')),'callback':_0x46da79[_0xd538('0x26')]?!![]:![],'callbackuniqueid':_0x46da79[_0xd538('0x26')]?_0x46da79[_0xd538('0x26')]:undefined,'callbackat':_0x46da79[_0xd538('0x26')]?moment()[_0xd538('0x21')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x4d0df9['id']});})[_0xd538('0x27')](function(_0x14dc54){_0x24e9b3(_0x14dc54);});});});};function _0x10fe2f(){return function(_0x688840){logger[_0xd538('0x16')](_0xd538('0x17'),_0xd538('0x18'),util['inspect'](_0x688840,{'showHidden':![],'depth':null}));};}function _0x5c88b1(_0x1e6ce4,_0x42cab4){var _0x770bd0=_0x42cab4[_0xd538('0x19')]?_0x42cab4['scheduledat']:moment()[_0xd538('0x21')]('YYYY-MM-DD\x20HH:mm:ss');return new BPromise(function(_0xb10dd9,_0x55a77a){if(_[_0xd538('0x1b')](_0x42cab4['dialTimezone'])){_0xb10dd9({'ret':_0x770bd0});}else{_0x278a64[_0xd538('0x2e')][_0xd538('0x23')]({'where':{'id':_0x1e6ce4['id']}})[_0xd538('0x1d')](function(_0x21ffff){if(!_[_0xd538('0x1b')](_0x21ffff)){var _0x7305dd=_0x21ffff[_0xd538('0x1c')];if(!_[_0xd538('0x1b')](_0x7305dd)){var _0x78c7da=shared['timezones'];var _0x33b9d0=_0x78c7da[_0x7305dd];var _0x5927b6=_0x78c7da[_0x42cab4[_0xd538('0x1c')]];if(!_[_0xd538('0x1b')](_0x33b9d0)&&!_[_0xd538('0x1b')](_0x5927b6)){var _0x31080a=_0x33b9d0[_0xd538('0x1f')]-_0x5927b6['utcOffset'];_0x770bd0=_0x42cab4[_0xd538('0x19')]?_0x42cab4['scheduledat']:moment();var _0x8abc0a=moment(_0x770bd0)[_0xd538('0x2f')](_0x31080a,_0xd538('0x20'));_0xb10dd9({'ret':_0x8abc0a[_0xd538('0x21')](_0xd538('0x1a'))});}else _0xb10dd9({'ret':_0x770bd0});}else _0xb10dd9({'ret':_0x770bd0});}else{_0xb10dd9({'ret':_0x770bd0});}});}});return 0xa;}var _0xa0b6e2=function(_0x2cd567){return new BPromise(function(_0x37090a,_0x46880c){_0x5c88b1(_0x2cd567,_0x46da79)[_0xd538('0x1d')](function(_0xd6fd2e){_0x46da79[_0xd538('0x19')]=_0xd6fd2e['ret'];_0x278a64[_0xd538('0x22')]['findOne']({'where':{'phone':_0x46da79[_0xd538('0xb')],'CampaignId':_0x2cd567['id']}})['then'](function(_0x4b7b09){if(!_[_0xd538('0x1b')](_0x4b7b09)){throw new Error(_0xd538('0x24')+_0x46da79[_0xd538('0xb')]+_0xd538('0x30')+_0x2cd567['id']);}return _0x278a64[_0xd538('0x22')][_0xd538('0x2d')]({'phone':_0x46da79[_0xd538('0xb')],'ContactId':_0x46da79['id'],'ListId':_0x46da79[_0xd538('0x31')],'priority':_0x46da79[_0xd538('0x25')]?_0x46da79[_0xd538('0x25')]:0x2,'scheduledat':_0x46da79[_0xd538('0x19')]?_0x46da79['scheduledat']:moment()[_0xd538('0x21')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x46da79['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x46da79['callbackUniqueid']?_0x46da79['callbackUniqueid']:undefined,'callbackat':_0x46da79[_0xd538('0x26')]?moment()['format'](_0xd538('0x1a')):undefined,'CampaignId':_0x2cd567['id']});})['catch'](function(_0x4bc489){_0x46880c(_0x4bc489);});});});};var _0x52dea7=function(_0x5de67f){return new BPromise(function(_0x323646,_0x472ecf){_0x5c88b1(_0x5de67f,_0x46da79)[_0xd538('0x1d')](function(_0x515186){_0x46da79[_0xd538('0x19')]=_0x515186[_0xd538('0x28')];_0x278a64['CmHopper'][_0xd538('0x23')]({'where':{'phone':_0x46da79[_0xd538('0xb')],'CampaignId':_0x5de67f['id']}})[_0xd538('0x1d')](function(_0x629bdb){if(!_[_0xd538('0x1b')](_0x629bdb)){throw new Error('cmContact,\x20afterCreate\x20'+_0x46da79['phone']+_0xd538('0x32')+_0x5de67f['id']);}return _0x278a64[_0xd538('0x2a')][_0xd538('0x23')]({'where':{'calleridnum':_0x46da79['phone'],'CampaignId':_0x5de67f['id']}});})['then'](function(_0x300c47){if(!_['isNil'](_0x300c47)){throw new Error(_0xd538('0x2b')+_0x46da79['phone']+_0xd538('0x33')+_0x5de67f['id']);}return _0x278a64['CmHopper'][_0xd538('0x2d')]({'phone':_0x46da79[_0xd538('0xb')],'ContactId':_0x46da79['id'],'ListId':_0x46da79['ListId'],'priority':_0x46da79['priority']?_0x46da79['priority']:0x2,'scheduledat':_0x46da79['scheduledat']?_0x46da79[_0xd538('0x19')]:moment()[_0xd538('0x21')](_0xd538('0x1a')),'callback':_0x46da79[_0xd538('0x26')]?!![]:![],'callbackuniqueid':_0x46da79[_0xd538('0x26')]?_0x46da79[_0xd538('0x26')]:undefined,'callbackat':_0x46da79[_0xd538('0x26')]?moment()[_0xd538('0x21')](_0xd538('0x1a')):undefined,'CampaignId':_0x5de67f['id']});})['catch'](function(_0xbe615f){_0x472ecf(_0xbe615f);});});});};if(_0x46da79['ListId']){_0x278a64[_0xd538('0x34')]['findAll']({'where':{'type':'outbound'},'attributes':['id',_0xd538('0x35'),_0xd538('0x1c')],'include':[{'model':_0x278a64['CmList'],'as':_0xd538('0x36'),'where':{'id':_0x46da79['ListId']}}]})[_0xd538('0x1d')](function(_0x3b05a0){if(_0x3b05a0){var _0x546940=[];for(var _0x22d4c2=0x0,_0x505e71;_0x22d4c2<_0x3b05a0[_0xd538('0x37')];_0x22d4c2+=0x1){_0x505e71=_0x3b05a0[_0x22d4c2][_0xd538('0x15')]({'plain':!![]});switch(_0x505e71[_0xd538('0x35')]){case _0xd538('0x38'):_0x3d66a4(_0x505e71)['catch'](_0x487962());break;case _0xd538('0x39'):_0x48fb41(_0x505e71)[_0xd538('0x27')](_0x487962());break;default:_0x5c88b1(_0x505e71,_0x46da79)[_0xd538('0x1d')](function(_0x16c4a3){_0x46da79[_0xd538('0x19')]=_0x16c4a3[_0xd538('0x28')];_0x278a64[_0xd538('0x22')]['create']({'phone':_0x46da79[_0xd538('0xb')],'ContactId':_0x46da79['id'],'ListId':_0x46da79[_0xd538('0x31')],'scheduledat':_0x46da79[_0xd538('0x19')]?_0x46da79['scheduledat']:moment()[_0xd538('0x21')](_0xd538('0x1a')),'priority':_0x46da79[_0xd538('0x25')]?_0x46da79[_0xd538('0x25')]:0x2,'callback':_0x46da79['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x46da79[_0xd538('0x26')]?_0x46da79[_0xd538('0x26')]:undefined,'callbackat':_0x46da79['callbackUniqueid']?moment()[_0xd538('0x21')](_0xd538('0x1a')):undefined,'VoiceQueueId':_0x505e71['id']})[_0xd538('0x27')](_0x487962());});}}}})[_0xd538('0x1d')](function(){return _0x278a64['VoiceQueue'][_0xd538('0x3a')]({'where':{'type':'outbound'},'attributes':['id'],'include':[{'model':_0x278a64['CmList'],'as':_0xd538('0x3b'),'where':{'id':_0x46da79[_0xd538('0x31')]}}]})[_0xd538('0x1d')](function(_0x1917dc){if(_0x1917dc){var _0x1666ad=[];for(var _0x3d9add=0x0,_0x373981;_0x3d9add<_0x1917dc[_0xd538('0x37')];_0x3d9add+=0x1){_0x373981=_0x1917dc[_0x3d9add][_0xd538('0x15')]({'plain':!![]});_0x278a64[_0xd538('0x3c')]['create']({'phone':_0x46da79[_0xd538('0xb')],'ContactId':_0x46da79['id'],'ListId':_0x46da79[_0xd538('0x31')],'VoiceQueueId':_0x373981['id']})[_0xd538('0x27')](function(_0x4e1746){logger[_0xd538('0x16')](_0xd538('0x3d'),_0xd538('0x18'),_0x4e1746[_0xd538('0x3e')]);});}}});})[_0xd538('0x1d')](function(){return _0x278a64[_0xd538('0x2e')]['findAll']({'attributes':['id',_0xd538('0x35'),_0xd538('0x1c')],'include':[{'model':_0x278a64[_0xd538('0x3f')],'as':_0xd538('0x36'),'where':{'id':_0x46da79[_0xd538('0x31')]}}]})[_0xd538('0x1d')](function(_0x38d6ea){if(_0x38d6ea){var _0x3778a1=[];for(var _0x27cbee=0x0,_0x13701c;_0x27cbee<_0x38d6ea[_0xd538('0x37')];_0x27cbee+=0x1){_0x13701c=_0x38d6ea[_0x27cbee][_0xd538('0x15')]({'plain':!![]});switch(_0x13701c['dialCheckDuplicateType']){case _0xd538('0x38'):_0x52dea7(_0x13701c)['catch'](_0x10fe2f());break;case _0xd538('0x39'):_0xa0b6e2(_0x13701c)[_0xd538('0x27')](_0x10fe2f());break;default:_0x278a64[_0xd538('0x22')][_0xd538('0x2d')]({'phone':_0x46da79['phone'],'ContactId':_0x46da79['id'],'ListId':_0x46da79['ListId'],'scheduledat':_0x46da79['scheduledat']?_0x46da79[_0xd538('0x19')]:moment()[_0xd538('0x21')](_0xd538('0x1a')),'priority':_0x46da79[_0xd538('0x25')]?_0x46da79[_0xd538('0x25')]:0x2,'callback':_0x46da79['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x46da79[_0xd538('0x26')]?_0x46da79[_0xd538('0x26')]:undefined,'callbackat':_0x46da79[_0xd538('0x26')]?moment()[_0xd538('0x21')](_0xd538('0x1a')):undefined,'CampaignId':_0x13701c['id']})[_0xd538('0x27')](_0x10fe2f());}}}});})[_0xd538('0x1d')](function(){return _0x278a64[_0xd538('0x2e')]['findAll']({'attributes':['id'],'include':[{'model':_0x278a64[_0xd538('0x3f')],'as':'BlackLists','where':{'id':_0x46da79[_0xd538('0x31')]}}]})[_0xd538('0x1d')](function(_0x14dcc3){if(_0x14dcc3){var _0x1244d0=[];for(var _0x374892=0x0,_0xd32b48;_0x374892<_0x14dcc3[_0xd538('0x37')];_0x374892+=0x1){_0xd32b48=_0x14dcc3[_0x374892][_0xd538('0x15')]({'plain':!![]});_0x278a64[_0xd538('0x3c')][_0xd538('0x2d')]({'phone':_0x46da79[_0xd538('0xb')],'ContactId':_0x46da79['id'],'ListId':_0x46da79[_0xd538('0x31')],'CampaignId':_0xd32b48['id']})['catch'](function(_0x397194){logger[_0xd538('0x16')](_0xd538('0x3d'),_0xd538('0x18'),_0x397194[_0xd538('0x3e')]);});}}});})['then'](function(){_0x205479();})['catch'](function(_0x5a42a5){logger[_0xd538('0x16')](_0xd538('0x3d'),_0xd538('0x18'),_0x5a42a5[_0xd538('0x3e')]);_0x205479(_0x5a42a5);});}else{_0x205479(new Error(_0xd538('0x40')));}},'afterDestroy':function(_0x2b5655,_0x58230b,_0x3ce961){var _0x1ae544=_0x50baa7[_0xd538('0x14')];var _0xcda249=_0x2b5655[_0xd538('0x15')]({'plain':!![]});return _0x1ae544[_0xd538('0x22')][_0xd538('0x3a')]({'raw':!![],'where':{'ListId':_0xcda249[_0xd538('0x31')],'ContactId':_0xcda249['id']}})[_0xd538('0x1d')](function(_0x3023b5){if(!_['isEmpty'](_0x3023b5)){var _0x561483=[];for(var _0x5d87b3=0x0;_0x5d87b3<_0x3023b5[_0xd538('0x37')];_0x5d87b3+=0x1){var _0x46f10b=_0x1ae544[_0xd538('0x22')][_0xd538('0x41')]({'where':{'ListId':_0x3023b5[_0x5d87b3]['ListId'],'ContactId':_0x3023b5[_0x5d87b3]['ContactId'],'VoiceQueueId':_0x3023b5[_0x5d87b3][_0xd538('0x42')],'CampaignId':_0x3023b5[_0x5d87b3][_0xd538('0x43')]}});_0x561483[_0xd538('0x44')](_0x46f10b);}return BPromise[_0xd538('0x45')](_0x561483);}})['then'](function(_0x20cf23){logger['info'](_0xd538('0x46'),util[_0xd538('0x47')](_0x20cf23,{'showHidden':![],'depth':null}));_0x3ce961();})[_0xd538('0x27')](function(_0x12e552){logger[_0xd538('0x16')](_0xd538('0x48'),util[_0xd538('0x47')](_0x12e552,{'showHidden':![],'depth':null}));_0x3ce961(_0x12e552);});}}});};