Built motion from commit 5b761a7b.|2.5.36
[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 _0xb31b=['findAll','outbound','dialCheckDuplicateType','CmList','Lists','length','get','always','BlackLists','cmContact,\x20%s,\x20%s','message','Campaign','CmHopperBlack','List\x20not\x20found','isEmpty','destroy','ContactId','VoiceQueueId','CampaignId','info','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','moment','bluebird','request-promise','path','rimraf','./cmContact.attributes','exports','cm_contacts','phone','fti_cm_contacts','firstName','lastName','mobile','fax','email','FULLTEXT','utf8mb4','utf8mb4_unicode_ci','models','error','cmContact','afterCreate','inspect','then','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopper','create','ListId','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','findOne','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','\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'];(function(_0x31b3ee,_0x16c634){var _0x454934=function(_0xe5ed01){while(--_0xe5ed01){_0x31b3ee['push'](_0x31b3ee['shift']());}};_0x454934(++_0x16c634);}(_0xb31b,0x9f));var _0xbb31=function(_0x3121d6,_0x383bbd){_0x3121d6=_0x3121d6-0x0;var _0x937685=_0xb31b[_0x3121d6];return _0x937685;};'use strict';var _=require(_0xbb31('0x0'));var util=require(_0xbb31('0x1'));var logger=require(_0xbb31('0x2'))('api');var moment=require(_0xbb31('0x3'));var BPromise=require(_0xbb31('0x4'));var rp=require(_0xbb31('0x5'));var fs=require('fs');var path=require(_0xbb31('0x6'));var rimraf=require(_0xbb31('0x7'));var config=require('../../config/environment');var attributes=require(_0xbb31('0x8'));module[_0xbb31('0x9')]=function(_0x5646d9,_0x454933){return _0x5646d9['define']('CmContact',attributes,{'tableName':_0xbb31('0xa'),'paranoid':!![],'indexes':[{'name':_0xbb31('0xb'),'fields':[_0xbb31('0xb')]},{'name':_0xbb31('0xc'),'fields':[_0xbb31('0xd'),_0xbb31('0xe'),_0xbb31('0xb'),_0xbb31('0xf'),_0xbb31('0x10'),_0xbb31('0x11')],'type':_0xbb31('0x12')}],'timestamps':!![],'charset':_0xbb31('0x13'),'collate':_0xbb31('0x14'),'hooks':{'afterCreate':function(_0x5d62f6,_0x4a0138,_0x21ecd8){var _0x9684b9=_0x5646d9[_0xbb31('0x15')];var _0x43218d=_0x5d62f6['get']({'plain':!![]});function _0xa7cc95(){return function(_0x284f37){logger[_0xbb31('0x16')](_0xbb31('0x17'),_0xbb31('0x18'),util[_0xbb31('0x19')](_0x284f37,{'showHidden':![],'depth':null}));};}var _0x4b8a44=function(_0x431361){return new BPromise(function(_0x598d69,_0x119225){_0x9684b9['CmHopper']['findOne']({'where':{'phone':_0x43218d[_0xbb31('0xb')],'VoiceQueueId':_0x431361['id']}})[_0xbb31('0x1a')](function(_0x19762c){if(!_[_0xbb31('0x1b')](_0x19762c)){throw new Error(_0xbb31('0x1c')+_0x43218d[_0xbb31('0xb')]+_0xbb31('0x1d')+_0x431361['id']);}return _0x9684b9[_0xbb31('0x1e')][_0xbb31('0x1f')]({'phone':_0x43218d[_0xbb31('0xb')],'ContactId':_0x43218d['id'],'ListId':_0x43218d[_0xbb31('0x20')],'priority':_0x43218d[_0xbb31('0x21')]?_0x43218d[_0xbb31('0x21')]:0x2,'scheduledat':_0x43218d[_0xbb31('0x22')]?_0x43218d['scheduledat']:moment()[_0xbb31('0x23')](_0xbb31('0x24')),'callback':_0x43218d[_0xbb31('0x25')]?!![]:![],'callbackuniqueid':_0x43218d[_0xbb31('0x25')]?_0x43218d[_0xbb31('0x25')]:undefined,'callbackat':_0x43218d[_0xbb31('0x25')]?moment()[_0xbb31('0x23')](_0xbb31('0x24')):undefined,'VoiceQueueId':_0x431361['id']});})[_0xbb31('0x26')](function(_0x26562d){_0x119225(_0x26562d);});});};var _0x5327b8=function(_0x2cb530){return new BPromise(function(_0x48609d,_0x38f4b3){_0x9684b9[_0xbb31('0x1e')]['findOne']({'where':{'phone':_0x43218d[_0xbb31('0xb')],'VoiceQueueId':_0x2cb530['id']}})['then'](function(_0x433481){if(!_[_0xbb31('0x1b')](_0x433481)){throw new Error('cmContact,\x20afterCreate\x20'+_0x43218d[_0xbb31('0xb')]+_0xbb31('0x27')+_0x2cb530['id']);}return _0x9684b9[_0xbb31('0x28')][_0xbb31('0x29')]({'where':{'calleridnum':_0x43218d[_0xbb31('0xb')],'VoiceQueueId':_0x2cb530['id']}});})[_0xbb31('0x1a')](function(_0xeb5888){if(!_[_0xbb31('0x1b')](_0xeb5888)){throw new Error(_0xbb31('0x2a')+_0x43218d[_0xbb31('0xb')]+_0xbb31('0x2b')+_0x2cb530['id']);}return _0x9684b9[_0xbb31('0x1e')][_0xbb31('0x1f')]({'phone':_0x43218d[_0xbb31('0xb')],'ContactId':_0x43218d['id'],'ListId':_0x43218d[_0xbb31('0x20')],'priority':_0x43218d[_0xbb31('0x21')]?_0x43218d['priority']:0x2,'scheduledat':_0x43218d[_0xbb31('0x22')]?_0x43218d['scheduledat']:moment()[_0xbb31('0x23')](_0xbb31('0x24')),'callback':_0x43218d[_0xbb31('0x25')]?!![]:![],'callbackuniqueid':_0x43218d[_0xbb31('0x25')]?_0x43218d[_0xbb31('0x25')]:undefined,'callbackat':_0x43218d['callbackUniqueid']?moment()[_0xbb31('0x23')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x2cb530['id']});})[_0xbb31('0x26')](function(_0x33e3a6){_0x38f4b3(_0x33e3a6);});});};function _0x7b9db5(){return function(_0x1c8b29){logger[_0xbb31('0x16')]('cmContact',_0xbb31('0x18'),util['inspect'](_0x1c8b29,{'showHidden':![],'depth':null}));};}var _0x5893e7=function(_0x3ff150){return new BPromise(function(_0x41825f,_0x55f058){_0x9684b9['CmHopper'][_0xbb31('0x29')]({'where':{'phone':_0x43218d['phone'],'CampaignId':_0x3ff150['id']}})['then'](function(_0x50bae0){if(!_[_0xbb31('0x1b')](_0x50bae0)){throw new Error(_0xbb31('0x1c')+_0x43218d['phone']+_0xbb31('0x2c')+_0x3ff150['id']);}return _0x9684b9['CmHopper'][_0xbb31('0x1f')]({'phone':_0x43218d[_0xbb31('0xb')],'ContactId':_0x43218d['id'],'ListId':_0x43218d[_0xbb31('0x20')],'priority':_0x43218d[_0xbb31('0x21')]?_0x43218d[_0xbb31('0x21')]:0x2,'scheduledat':_0x43218d['scheduledat']?_0x43218d[_0xbb31('0x22')]:moment()[_0xbb31('0x23')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x43218d[_0xbb31('0x25')]?!![]:![],'callbackuniqueid':_0x43218d[_0xbb31('0x25')]?_0x43218d[_0xbb31('0x25')]:undefined,'callbackat':_0x43218d['callbackUniqueid']?moment()[_0xbb31('0x23')](_0xbb31('0x24')):undefined,'CampaignId':_0x3ff150['id']});})['catch'](function(_0x49ad7a){_0x55f058(_0x49ad7a);});});};var _0x3e0491=function(_0x57bf6e){return new BPromise(function(_0x4d9213,_0x2ad503){_0x9684b9[_0xbb31('0x1e')][_0xbb31('0x29')]({'where':{'phone':_0x43218d[_0xbb31('0xb')],'CampaignId':_0x57bf6e['id']}})[_0xbb31('0x1a')](function(_0x42df25){if(!_[_0xbb31('0x1b')](_0x42df25)){throw new Error(_0xbb31('0x1c')+_0x43218d[_0xbb31('0xb')]+_0xbb31('0x2d')+_0x57bf6e['id']);}return _0x9684b9[_0xbb31('0x28')][_0xbb31('0x29')]({'where':{'calleridnum':_0x43218d[_0xbb31('0xb')],'CampaignId':_0x57bf6e['id']}});})['then'](function(_0x124598){if(!_[_0xbb31('0x1b')](_0x124598)){throw new Error(_0xbb31('0x2a')+_0x43218d[_0xbb31('0xb')]+_0xbb31('0x2e')+_0x57bf6e['id']);}return _0x9684b9[_0xbb31('0x1e')][_0xbb31('0x1f')]({'phone':_0x43218d[_0xbb31('0xb')],'ContactId':_0x43218d['id'],'ListId':_0x43218d[_0xbb31('0x20')],'priority':_0x43218d[_0xbb31('0x21')]?_0x43218d[_0xbb31('0x21')]:0x2,'scheduledat':_0x43218d[_0xbb31('0x22')]?_0x43218d[_0xbb31('0x22')]:moment()[_0xbb31('0x23')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x43218d[_0xbb31('0x25')]?!![]:![],'callbackuniqueid':_0x43218d[_0xbb31('0x25')]?_0x43218d['callbackUniqueid']:undefined,'callbackat':_0x43218d['callbackUniqueid']?moment()[_0xbb31('0x23')](_0xbb31('0x24')):undefined,'CampaignId':_0x57bf6e['id']});})[_0xbb31('0x26')](function(_0x338f7d){_0x2ad503(_0x338f7d);});});};if(_0x43218d[_0xbb31('0x20')]){_0x9684b9[_0xbb31('0x2f')][_0xbb31('0x30')]({'where':{'type':_0xbb31('0x31')},'attributes':['id',_0xbb31('0x32')],'include':[{'model':_0x9684b9[_0xbb31('0x33')],'as':_0xbb31('0x34'),'where':{'id':_0x43218d[_0xbb31('0x20')]}}]})[_0xbb31('0x1a')](function(_0x226268){if(_0x226268){var _0x4ff236=[];for(var _0x3b959f=0x0,_0x402748;_0x3b959f<_0x226268[_0xbb31('0x35')];_0x3b959f+=0x1){_0x402748=_0x226268[_0x3b959f][_0xbb31('0x36')]({'plain':!![]});switch(_0x402748[_0xbb31('0x32')]){case _0xbb31('0x37'):_0x5327b8(_0x402748)[_0xbb31('0x26')](_0xa7cc95());break;case'onlyIfOpen':_0x4b8a44(_0x402748)['catch'](_0xa7cc95());break;default:_0x9684b9[_0xbb31('0x1e')]['create']({'phone':_0x43218d[_0xbb31('0xb')],'ContactId':_0x43218d['id'],'ListId':_0x43218d['ListId'],'scheduledat':_0x43218d['scheduledat']?_0x43218d[_0xbb31('0x22')]:moment()['format'](_0xbb31('0x24')),'priority':_0x43218d[_0xbb31('0x21')]?_0x43218d[_0xbb31('0x21')]:0x2,'callback':_0x43218d['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x43218d[_0xbb31('0x25')]?_0x43218d['callbackUniqueid']:undefined,'callbackat':_0x43218d['callbackUniqueid']?moment()[_0xbb31('0x23')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x402748['id']})[_0xbb31('0x26')](_0xa7cc95());}}}})[_0xbb31('0x1a')](function(){return _0x9684b9['VoiceQueue'][_0xbb31('0x30')]({'where':{'type':_0xbb31('0x31')},'attributes':['id'],'include':[{'model':_0x9684b9[_0xbb31('0x33')],'as':_0xbb31('0x38'),'where':{'id':_0x43218d['ListId']}}]})[_0xbb31('0x1a')](function(_0x15fbc8){if(_0x15fbc8){var _0x9a151f=[];for(var _0x1f1f6c=0x0,_0x50febe;_0x1f1f6c<_0x15fbc8['length'];_0x1f1f6c+=0x1){_0x50febe=_0x15fbc8[_0x1f1f6c][_0xbb31('0x36')]({'plain':!![]});_0x9684b9['CmHopperBlack']['create']({'phone':_0x43218d[_0xbb31('0xb')],'ContactId':_0x43218d['id'],'ListId':_0x43218d[_0xbb31('0x20')],'VoiceQueueId':_0x50febe['id']})['catch'](function(_0x229288){logger[_0xbb31('0x16')](_0xbb31('0x39'),_0xbb31('0x18'),_0x229288[_0xbb31('0x3a')]);});}}});})[_0xbb31('0x1a')](function(){return _0x9684b9[_0xbb31('0x3b')][_0xbb31('0x30')]({'attributes':['id',_0xbb31('0x32')],'include':[{'model':_0x9684b9['CmList'],'as':'Lists','where':{'id':_0x43218d[_0xbb31('0x20')]}}]})[_0xbb31('0x1a')](function(_0x419080){if(_0x419080){var _0xa3dda3=[];for(var _0x3eec7f=0x0,_0x1b20f3;_0x3eec7f<_0x419080['length'];_0x3eec7f+=0x1){_0x1b20f3=_0x419080[_0x3eec7f]['get']({'plain':!![]});switch(_0x1b20f3['dialCheckDuplicateType']){case _0xbb31('0x37'):_0x3e0491(_0x1b20f3)[_0xbb31('0x26')](_0x7b9db5());break;case'onlyIfOpen':_0x5893e7(_0x1b20f3)[_0xbb31('0x26')](_0x7b9db5());break;default:_0x9684b9[_0xbb31('0x1e')][_0xbb31('0x1f')]({'phone':_0x43218d['phone'],'ContactId':_0x43218d['id'],'ListId':_0x43218d['ListId'],'scheduledat':_0x43218d[_0xbb31('0x22')]?_0x43218d[_0xbb31('0x22')]:moment()[_0xbb31('0x23')](_0xbb31('0x24')),'priority':_0x43218d[_0xbb31('0x21')]?_0x43218d['priority']:0x2,'callback':_0x43218d[_0xbb31('0x25')]?!![]:![],'callbackuniqueid':_0x43218d['callbackUniqueid']?_0x43218d[_0xbb31('0x25')]:undefined,'callbackat':_0x43218d[_0xbb31('0x25')]?moment()[_0xbb31('0x23')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x1b20f3['id']})[_0xbb31('0x26')](_0x7b9db5());}}}});})[_0xbb31('0x1a')](function(){return _0x9684b9[_0xbb31('0x3b')]['findAll']({'attributes':['id'],'include':[{'model':_0x9684b9['CmList'],'as':'BlackLists','where':{'id':_0x43218d[_0xbb31('0x20')]}}]})['then'](function(_0x4c2dc3){if(_0x4c2dc3){var _0x59d0b7=[];for(var _0x44c228=0x0,_0x898171;_0x44c228<_0x4c2dc3['length'];_0x44c228+=0x1){_0x898171=_0x4c2dc3[_0x44c228][_0xbb31('0x36')]({'plain':!![]});_0x9684b9[_0xbb31('0x3c')][_0xbb31('0x1f')]({'phone':_0x43218d[_0xbb31('0xb')],'ContactId':_0x43218d['id'],'ListId':_0x43218d['ListId'],'CampaignId':_0x898171['id']})['catch'](function(_0x252332){logger['error'](_0xbb31('0x39'),'afterCreate',_0x252332[_0xbb31('0x3a')]);});}}});})[_0xbb31('0x1a')](function(){_0x21ecd8();})[_0xbb31('0x26')](function(_0x5c4cbc){logger[_0xbb31('0x16')](_0xbb31('0x39'),_0xbb31('0x18'),_0x5c4cbc['message']);_0x21ecd8(_0x5c4cbc);});}else{_0x21ecd8(new Error(_0xbb31('0x3d')));}},'afterDestroy':function(_0x9a4c7,_0x55320b,_0x1dda91){var _0x3b2928=_0x5646d9[_0xbb31('0x15')];var _0x4c3d91=_0x9a4c7[_0xbb31('0x36')]({'plain':!![]});return _0x3b2928[_0xbb31('0x1e')][_0xbb31('0x30')]({'raw':!![],'where':{'ListId':_0x4c3d91[_0xbb31('0x20')],'ContactId':_0x4c3d91['id']}})[_0xbb31('0x1a')](function(_0x26ceb2){if(!_[_0xbb31('0x3e')](_0x26ceb2)){var _0x20fc5b=[];for(var _0xa998ce=0x0;_0xa998ce<_0x26ceb2[_0xbb31('0x35')];_0xa998ce+=0x1){var _0x3bf5ae=_0x3b2928[_0xbb31('0x1e')][_0xbb31('0x3f')]({'where':{'ListId':_0x26ceb2[_0xa998ce][_0xbb31('0x20')],'ContactId':_0x26ceb2[_0xa998ce][_0xbb31('0x40')],'VoiceQueueId':_0x26ceb2[_0xa998ce][_0xbb31('0x41')],'CampaignId':_0x26ceb2[_0xa998ce][_0xbb31('0x42')]}});_0x20fc5b['push'](_0x3bf5ae);}return BPromise['all'](_0x20fc5b);}})['then'](function(_0x5337e8){logger[_0xbb31('0x43')]('[CmContact][afterDestroy][Succesfull]',util[_0xbb31('0x19')](_0x5337e8,{'showHidden':![],'depth':null}));_0x1dda91();})[_0xbb31('0x26')](function(_0x1aa606){logger[_0xbb31('0x16')](_0xbb31('0x44'),util[_0xbb31('0x19')](_0x1aa606,{'showHidden':![],'depth':null}));_0x1dda91(_0x1aa606);});}}});};