Built motion from commit 9d1906d1.|2.5.40
[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 _0x7bc4=['BlackLists','length','message','Campaign','CmHopperBlack','cmContact,\x20%s,\x20%s','List\x20not\x20found','isEmpty','destroy','ContactId','push','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','api','moment','bluebird','request-promise','../../config/environment','./cmContact.attributes','exports','define','CmContact','cm_contacts','phone','firstName','lastName','mobile','fax','email','FULLTEXT','utf8mb4','utf8mb4_unicode_ci','models','get','error','afterCreate','CmHopper','findOne','then','isNil','ListId','priority','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','create','cmContact','inspect','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','catch','CmHopperFinal','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','VoiceQueue','findAll','outbound','dialCheckDuplicateType','CmList','Lists','always','onlyIfOpen'];(function(_0xe5b6a1,_0x529532){var _0x2f4f03=function(_0x1500a4){while(--_0x1500a4){_0xe5b6a1['push'](_0xe5b6a1['shift']());}};_0x2f4f03(++_0x529532);}(_0x7bc4,0xd9));var _0x47bc=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7bc4[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x47bc('0x0'));var util=require(_0x47bc('0x1'));var logger=require(_0x47bc('0x2'))(_0x47bc('0x3'));var moment=require(_0x47bc('0x4'));var BPromise=require(_0x47bc('0x5'));var rp=require(_0x47bc('0x6'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x47bc('0x7'));var attributes=require(_0x47bc('0x8'));module[_0x47bc('0x9')]=function(_0x26df45,_0x52e2cb){return _0x26df45[_0x47bc('0xa')](_0x47bc('0xb'),attributes,{'tableName':_0x47bc('0xc'),'paranoid':!![],'indexes':[{'name':_0x47bc('0xd'),'fields':['phone']},{'name':'fti_cm_contacts','fields':[_0x47bc('0xe'),_0x47bc('0xf'),_0x47bc('0xd'),_0x47bc('0x10'),_0x47bc('0x11'),_0x47bc('0x12')],'type':_0x47bc('0x13')}],'timestamps':!![],'charset':_0x47bc('0x14'),'collate':_0x47bc('0x15'),'hooks':{'afterCreate':function(_0x3b1a4e,_0x10fdca,_0x14a7d3){var _0x7c8bfc=_0x26df45[_0x47bc('0x16')];var _0x21ca78=_0x3b1a4e[_0x47bc('0x17')]({'plain':!![]});function _0x2f4733(){return function(_0x13fc43){logger[_0x47bc('0x18')]('cmContact',_0x47bc('0x19'),util['inspect'](_0x13fc43,{'showHidden':![],'depth':null}));};}var _0x3da0fe=function(_0x1d51ac){return new BPromise(function(_0x298ee2,_0x1b9512){_0x7c8bfc[_0x47bc('0x1a')][_0x47bc('0x1b')]({'where':{'phone':_0x21ca78[_0x47bc('0xd')],'VoiceQueueId':_0x1d51ac['id']}})[_0x47bc('0x1c')](function(_0xa2bce5){if(!_[_0x47bc('0x1d')](_0xa2bce5)){throw new Error('cmContact,\x20afterCreate\x20'+_0x21ca78[_0x47bc('0xd')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x1d51ac['id']);}return _0x7c8bfc['CmHopper']['create']({'phone':_0x21ca78[_0x47bc('0xd')],'ContactId':_0x21ca78['id'],'ListId':_0x21ca78[_0x47bc('0x1e')],'priority':_0x21ca78[_0x47bc('0x1f')]?_0x21ca78[_0x47bc('0x1f')]:0x2,'scheduledat':_0x21ca78[_0x47bc('0x20')]?_0x21ca78[_0x47bc('0x20')]:moment()[_0x47bc('0x21')](_0x47bc('0x22')),'callback':_0x21ca78[_0x47bc('0x23')]?!![]:![],'callbackuniqueid':_0x21ca78[_0x47bc('0x23')]?_0x21ca78[_0x47bc('0x23')]:undefined,'callbackat':_0x21ca78[_0x47bc('0x23')]?moment()['format'](_0x47bc('0x22')):undefined,'VoiceQueueId':_0x1d51ac['id']});})['catch'](function(_0x25ead8){_0x1b9512(_0x25ead8);});});};var _0x46b1aa=function(_0x2b3c7a){return new BPromise(function(_0x17a7c7,_0x1be607){_0x7c8bfc[_0x47bc('0x1a')][_0x47bc('0x1b')]({'where':{'phone':_0x21ca78['phone'],'VoiceQueueId':_0x2b3c7a['id']}})[_0x47bc('0x1c')](function(_0x4632f2){if(!_[_0x47bc('0x1d')](_0x4632f2)){throw new Error(_0x47bc('0x24')+_0x21ca78['phone']+_0x47bc('0x25')+_0x2b3c7a['id']);}return _0x7c8bfc['CmHopperFinal'][_0x47bc('0x1b')]({'where':{'calleridnum':_0x21ca78['phone'],'VoiceQueueId':_0x2b3c7a['id']}});})[_0x47bc('0x1c')](function(_0x411e40){if(!_['isNil'](_0x411e40)){throw new Error(_0x47bc('0x26')+_0x21ca78[_0x47bc('0xd')]+_0x47bc('0x27')+_0x2b3c7a['id']);}return _0x7c8bfc['CmHopper'][_0x47bc('0x28')]({'phone':_0x21ca78[_0x47bc('0xd')],'ContactId':_0x21ca78['id'],'ListId':_0x21ca78[_0x47bc('0x1e')],'priority':_0x21ca78[_0x47bc('0x1f')]?_0x21ca78[_0x47bc('0x1f')]:0x2,'scheduledat':_0x21ca78[_0x47bc('0x20')]?_0x21ca78[_0x47bc('0x20')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x21ca78[_0x47bc('0x23')]?!![]:![],'callbackuniqueid':_0x21ca78['callbackUniqueid']?_0x21ca78[_0x47bc('0x23')]:undefined,'callbackat':_0x21ca78[_0x47bc('0x23')]?moment()['format'](_0x47bc('0x22')):undefined,'VoiceQueueId':_0x2b3c7a['id']});})['catch'](function(_0x331ceb){_0x1be607(_0x331ceb);});});};function _0x341eec(){return function(_0x1c28dc){logger['error'](_0x47bc('0x29'),_0x47bc('0x19'),util[_0x47bc('0x2a')](_0x1c28dc,{'showHidden':![],'depth':null}));};}var _0x73c8b3=function(_0x364a0e){return new BPromise(function(_0x1f9c3e,_0x37e8a7){_0x7c8bfc[_0x47bc('0x1a')][_0x47bc('0x1b')]({'where':{'phone':_0x21ca78[_0x47bc('0xd')],'CampaignId':_0x364a0e['id']}})[_0x47bc('0x1c')](function(_0x39a547){if(!_['isNil'](_0x39a547)){throw new Error(_0x47bc('0x24')+_0x21ca78['phone']+_0x47bc('0x2b')+_0x364a0e['id']);}return _0x7c8bfc[_0x47bc('0x1a')]['create']({'phone':_0x21ca78['phone'],'ContactId':_0x21ca78['id'],'ListId':_0x21ca78[_0x47bc('0x1e')],'priority':_0x21ca78[_0x47bc('0x1f')]?_0x21ca78[_0x47bc('0x1f')]:0x2,'scheduledat':_0x21ca78[_0x47bc('0x20')]?_0x21ca78[_0x47bc('0x20')]:moment()[_0x47bc('0x21')](_0x47bc('0x22')),'callback':_0x21ca78[_0x47bc('0x23')]?!![]:![],'callbackuniqueid':_0x21ca78[_0x47bc('0x23')]?_0x21ca78[_0x47bc('0x23')]:undefined,'callbackat':_0x21ca78['callbackUniqueid']?moment()[_0x47bc('0x21')](_0x47bc('0x22')):undefined,'CampaignId':_0x364a0e['id']});})[_0x47bc('0x2c')](function(_0x394c73){_0x37e8a7(_0x394c73);});});};var _0x14489c=function(_0x4e4159){return new BPromise(function(_0x55cc62,_0x38a76b){_0x7c8bfc['CmHopper'][_0x47bc('0x1b')]({'where':{'phone':_0x21ca78[_0x47bc('0xd')],'CampaignId':_0x4e4159['id']}})['then'](function(_0x176a94){if(!_[_0x47bc('0x1d')](_0x176a94)){throw new Error(_0x47bc('0x24')+_0x21ca78[_0x47bc('0xd')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x4e4159['id']);}return _0x7c8bfc[_0x47bc('0x2d')]['findOne']({'where':{'calleridnum':_0x21ca78['phone'],'CampaignId':_0x4e4159['id']}});})[_0x47bc('0x1c')](function(_0x3aa60e){if(!_['isNil'](_0x3aa60e)){throw new Error(_0x47bc('0x26')+_0x21ca78[_0x47bc('0xd')]+_0x47bc('0x2e')+_0x4e4159['id']);}return _0x7c8bfc['CmHopper'][_0x47bc('0x28')]({'phone':_0x21ca78[_0x47bc('0xd')],'ContactId':_0x21ca78['id'],'ListId':_0x21ca78['ListId'],'priority':_0x21ca78['priority']?_0x21ca78['priority']:0x2,'scheduledat':_0x21ca78['scheduledat']?_0x21ca78[_0x47bc('0x20')]:moment()[_0x47bc('0x21')](_0x47bc('0x22')),'callback':_0x21ca78[_0x47bc('0x23')]?!![]:![],'callbackuniqueid':_0x21ca78[_0x47bc('0x23')]?_0x21ca78[_0x47bc('0x23')]:undefined,'callbackat':_0x21ca78[_0x47bc('0x23')]?moment()['format'](_0x47bc('0x22')):undefined,'CampaignId':_0x4e4159['id']});})[_0x47bc('0x2c')](function(_0x2e31d2){_0x38a76b(_0x2e31d2);});});};if(_0x21ca78[_0x47bc('0x1e')]){_0x7c8bfc[_0x47bc('0x2f')][_0x47bc('0x30')]({'where':{'type':_0x47bc('0x31')},'attributes':['id',_0x47bc('0x32')],'include':[{'model':_0x7c8bfc[_0x47bc('0x33')],'as':_0x47bc('0x34'),'where':{'id':_0x21ca78[_0x47bc('0x1e')]}}]})[_0x47bc('0x1c')](function(_0x30ff80){if(_0x30ff80){var _0x507d99=[];for(var _0x1e590f=0x0,_0x5271ea;_0x1e590f<_0x30ff80['length'];_0x1e590f+=0x1){_0x5271ea=_0x30ff80[_0x1e590f][_0x47bc('0x17')]({'plain':!![]});switch(_0x5271ea[_0x47bc('0x32')]){case _0x47bc('0x35'):_0x46b1aa(_0x5271ea)[_0x47bc('0x2c')](_0x2f4733());break;case _0x47bc('0x36'):_0x3da0fe(_0x5271ea)[_0x47bc('0x2c')](_0x2f4733());break;default:_0x7c8bfc[_0x47bc('0x1a')]['create']({'phone':_0x21ca78[_0x47bc('0xd')],'ContactId':_0x21ca78['id'],'ListId':_0x21ca78[_0x47bc('0x1e')],'scheduledat':_0x21ca78[_0x47bc('0x20')]?_0x21ca78[_0x47bc('0x20')]:moment()[_0x47bc('0x21')](_0x47bc('0x22')),'priority':_0x21ca78[_0x47bc('0x1f')]?_0x21ca78[_0x47bc('0x1f')]:0x2,'callback':_0x21ca78[_0x47bc('0x23')]?!![]:![],'callbackuniqueid':_0x21ca78[_0x47bc('0x23')]?_0x21ca78[_0x47bc('0x23')]:undefined,'callbackat':_0x21ca78[_0x47bc('0x23')]?moment()[_0x47bc('0x21')](_0x47bc('0x22')):undefined,'VoiceQueueId':_0x5271ea['id']})['catch'](_0x2f4733());}}}})[_0x47bc('0x1c')](function(){return _0x7c8bfc['VoiceQueue']['findAll']({'where':{'type':_0x47bc('0x31')},'attributes':['id'],'include':[{'model':_0x7c8bfc[_0x47bc('0x33')],'as':_0x47bc('0x37'),'where':{'id':_0x21ca78[_0x47bc('0x1e')]}}]})[_0x47bc('0x1c')](function(_0x4b8af5){if(_0x4b8af5){var _0x50f95d=[];for(var _0x7564f5=0x0,_0x2eff02;_0x7564f5<_0x4b8af5[_0x47bc('0x38')];_0x7564f5+=0x1){_0x2eff02=_0x4b8af5[_0x7564f5][_0x47bc('0x17')]({'plain':!![]});_0x7c8bfc['CmHopperBlack'][_0x47bc('0x28')]({'phone':_0x21ca78[_0x47bc('0xd')],'ContactId':_0x21ca78['id'],'ListId':_0x21ca78['ListId'],'VoiceQueueId':_0x2eff02['id']})['catch'](function(_0x38155b){logger[_0x47bc('0x18')]('cmContact,\x20%s,\x20%s',_0x47bc('0x19'),_0x38155b[_0x47bc('0x39')]);});}}});})[_0x47bc('0x1c')](function(){return _0x7c8bfc['Campaign']['findAll']({'attributes':['id',_0x47bc('0x32')],'include':[{'model':_0x7c8bfc[_0x47bc('0x33')],'as':_0x47bc('0x34'),'where':{'id':_0x21ca78[_0x47bc('0x1e')]}}]})[_0x47bc('0x1c')](function(_0x1cb634){if(_0x1cb634){var _0x1a9d0f=[];for(var _0x4bf4f7=0x0,_0x3f4e34;_0x4bf4f7<_0x1cb634['length'];_0x4bf4f7+=0x1){_0x3f4e34=_0x1cb634[_0x4bf4f7][_0x47bc('0x17')]({'plain':!![]});switch(_0x3f4e34['dialCheckDuplicateType']){case _0x47bc('0x35'):_0x14489c(_0x3f4e34)[_0x47bc('0x2c')](_0x341eec());break;case _0x47bc('0x36'):_0x73c8b3(_0x3f4e34)['catch'](_0x341eec());break;default:_0x7c8bfc[_0x47bc('0x1a')][_0x47bc('0x28')]({'phone':_0x21ca78[_0x47bc('0xd')],'ContactId':_0x21ca78['id'],'ListId':_0x21ca78[_0x47bc('0x1e')],'scheduledat':_0x21ca78[_0x47bc('0x20')]?_0x21ca78['scheduledat']:moment()[_0x47bc('0x21')](_0x47bc('0x22')),'priority':_0x21ca78[_0x47bc('0x1f')]?_0x21ca78[_0x47bc('0x1f')]:0x2,'callback':_0x21ca78['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x21ca78[_0x47bc('0x23')]?_0x21ca78['callbackUniqueid']:undefined,'callbackat':_0x21ca78[_0x47bc('0x23')]?moment()[_0x47bc('0x21')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x3f4e34['id']})[_0x47bc('0x2c')](_0x341eec());}}}});})[_0x47bc('0x1c')](function(){return _0x7c8bfc[_0x47bc('0x3a')][_0x47bc('0x30')]({'attributes':['id'],'include':[{'model':_0x7c8bfc['CmList'],'as':_0x47bc('0x37'),'where':{'id':_0x21ca78['ListId']}}]})[_0x47bc('0x1c')](function(_0x2b00f5){if(_0x2b00f5){var _0x3b5b42=[];for(var _0x19918c=0x0,_0x1cccae;_0x19918c<_0x2b00f5[_0x47bc('0x38')];_0x19918c+=0x1){_0x1cccae=_0x2b00f5[_0x19918c][_0x47bc('0x17')]({'plain':!![]});_0x7c8bfc[_0x47bc('0x3b')]['create']({'phone':_0x21ca78[_0x47bc('0xd')],'ContactId':_0x21ca78['id'],'ListId':_0x21ca78[_0x47bc('0x1e')],'CampaignId':_0x1cccae['id']})['catch'](function(_0x127d50){logger['error']('cmContact,\x20%s,\x20%s',_0x47bc('0x19'),_0x127d50['message']);});}}});})['then'](function(){_0x14a7d3();})[_0x47bc('0x2c')](function(_0x42371c){logger[_0x47bc('0x18')](_0x47bc('0x3c'),_0x47bc('0x19'),_0x42371c[_0x47bc('0x39')]);_0x14a7d3(_0x42371c);});}else{_0x14a7d3(new Error(_0x47bc('0x3d')));}},'afterDestroy':function(_0x4ed454,_0x401714,_0x510fd7){var _0x1b5baa=_0x26df45[_0x47bc('0x16')];var _0x545cd4=_0x4ed454[_0x47bc('0x17')]({'plain':!![]});return _0x1b5baa[_0x47bc('0x1a')][_0x47bc('0x30')]({'raw':!![],'where':{'ListId':_0x545cd4['ListId'],'ContactId':_0x545cd4['id']}})[_0x47bc('0x1c')](function(_0x173a74){if(!_[_0x47bc('0x3e')](_0x173a74)){var _0x123b1e=[];for(var _0x13df6f=0x0;_0x13df6f<_0x173a74[_0x47bc('0x38')];_0x13df6f+=0x1){var _0x570945=_0x1b5baa['CmHopper'][_0x47bc('0x3f')]({'where':{'ListId':_0x173a74[_0x13df6f]['ListId'],'ContactId':_0x173a74[_0x13df6f][_0x47bc('0x40')],'VoiceQueueId':_0x173a74[_0x13df6f]['VoiceQueueId'],'CampaignId':_0x173a74[_0x13df6f]['CampaignId']}});_0x123b1e[_0x47bc('0x41')](_0x570945);}return BPromise['all'](_0x123b1e);}})[_0x47bc('0x1c')](function(_0x543e7f){logger['info'](_0x47bc('0x42'),util[_0x47bc('0x2a')](_0x543e7f,{'showHidden':![],'depth':null}));_0x510fd7();})[_0x47bc('0x2c')](function(_0x8c4adb){logger[_0x47bc('0x18')](_0x47bc('0x43'),util[_0x47bc('0x2a')](_0x8c4adb,{'showHidden':![],'depth':null}));_0x510fd7(_0x8c4adb);});}}});};