Built motion from commit (unavailable).|2.5.10
[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 _0xffc0=['\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','inspect','YYYY-MM-DD\x20HH:mm:ss','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20','CmHopperFinal','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','VoiceQueue','outbound','dialCheckDuplicateType','length','always','CmList','CmHopperBlack','error','cmContact,\x20%s,\x20%s','message','findAll','Lists','onlyIfOpen','Campaign','List\x20not\x20found','isEmpty','destroy','ContactId','VoiceQueueId','all','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','cm_contacts','phone','fti_cm_contacts','lastName','mobile','fax','email','FULLTEXT','models','get','cmContact','afterCreate','CmHopper','isNil','ListId','priority','scheduledat','callbackUniqueid','format','catch','findOne','then','cmContact,\x20afterCreate\x20'];(function(_0x663ad7,_0x326bab){var _0xf471e9=function(_0x50ba21){while(--_0x50ba21){_0x663ad7['push'](_0x663ad7['shift']());}};_0xf471e9(++_0x326bab);}(_0xffc0,0x1a0));var _0x0ffc=function(_0x4703ba,_0x2ac7d4){_0x4703ba=_0x4703ba-0x0;var _0x24447b=_0xffc0[_0x4703ba];return _0x24447b;};'use strict';var _=require('lodash');var util=require(_0x0ffc('0x0'));var logger=require('../../config/logger')(_0x0ffc('0x1'));var moment=require(_0x0ffc('0x2'));var BPromise=require(_0x0ffc('0x3'));var rp=require(_0x0ffc('0x4'));var fs=require('fs');var path=require(_0x0ffc('0x5'));var rimraf=require(_0x0ffc('0x6'));var config=require(_0x0ffc('0x7'));var attributes=require('./cmContact.attributes');module[_0x0ffc('0x8')]=function(_0x23d3e0,_0x426ce2){return _0x23d3e0['define']('CmContact',attributes,{'tableName':_0x0ffc('0x9'),'paranoid':!![],'indexes':[{'name':_0x0ffc('0xa'),'fields':[_0x0ffc('0xa')]},{'name':_0x0ffc('0xb'),'fields':['firstName',_0x0ffc('0xc'),_0x0ffc('0xa'),_0x0ffc('0xd'),_0x0ffc('0xe'),_0x0ffc('0xf')],'type':_0x0ffc('0x10')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x252444,_0x3547c0,_0x481a0f){var _0x25d7f6=_0x23d3e0[_0x0ffc('0x11')];var _0x5657f8=_0x252444[_0x0ffc('0x12')]({'plain':!![]});function _0xbf12d1(){return function(_0x9622fe){logger['error'](_0x0ffc('0x13'),_0x0ffc('0x14'),util['inspect'](_0x9622fe,{'showHidden':![],'depth':null}));};}var _0x2095df=function(_0x137908){return new BPromise(function(_0x1e32b4,_0x11a5ee){_0x25d7f6[_0x0ffc('0x15')]['findOne']({'where':{'phone':_0x5657f8[_0x0ffc('0xa')],'VoiceQueueId':_0x137908['id']}})['then'](function(_0x7f401){if(!_[_0x0ffc('0x16')](_0x7f401)){throw new Error('cmContact,\x20afterCreate\x20'+_0x5657f8[_0x0ffc('0xa')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x137908['id']);}return _0x25d7f6['CmHopper']['create']({'phone':_0x5657f8['phone'],'ContactId':_0x5657f8['id'],'ListId':_0x5657f8[_0x0ffc('0x17')],'priority':_0x5657f8[_0x0ffc('0x18')]?_0x5657f8[_0x0ffc('0x18')]:0x2,'scheduledat':_0x5657f8[_0x0ffc('0x19')]?_0x5657f8[_0x0ffc('0x19')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x5657f8[_0x0ffc('0x1a')]?!![]:![],'callbackuniqueid':_0x5657f8['callbackUniqueid']?_0x5657f8['callbackUniqueid']:undefined,'callbackat':_0x5657f8[_0x0ffc('0x1a')]?moment()[_0x0ffc('0x1b')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x137908['id']});})[_0x0ffc('0x1c')](function(_0x18bc34){_0x11a5ee(_0x18bc34);});});};var _0x27ae43=function(_0x527fd4){return new BPromise(function(_0x4ffd80,_0x15fd93){_0x25d7f6[_0x0ffc('0x15')][_0x0ffc('0x1d')]({'where':{'phone':_0x5657f8[_0x0ffc('0xa')],'VoiceQueueId':_0x527fd4['id']}})[_0x0ffc('0x1e')](function(_0x4d4294){if(!_['isNil'](_0x4d4294)){throw new Error(_0x0ffc('0x1f')+_0x5657f8['phone']+_0x0ffc('0x20')+_0x527fd4['id']);}return _0x25d7f6['CmHopperFinal'][_0x0ffc('0x1d')]({'where':{'calleridnum':_0x5657f8[_0x0ffc('0xa')],'VoiceQueueId':_0x527fd4['id']}});})[_0x0ffc('0x1e')](function(_0x1265f5){if(!_[_0x0ffc('0x16')](_0x1265f5)){throw new Error(_0x0ffc('0x21')+_0x5657f8[_0x0ffc('0xa')]+_0x0ffc('0x22')+_0x527fd4['id']);}return _0x25d7f6['CmHopper'][_0x0ffc('0x23')]({'phone':_0x5657f8[_0x0ffc('0xa')],'ContactId':_0x5657f8['id'],'ListId':_0x5657f8['ListId'],'priority':_0x5657f8['priority']?_0x5657f8[_0x0ffc('0x18')]:0x2,'scheduledat':_0x5657f8['scheduledat']?_0x5657f8[_0x0ffc('0x19')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x5657f8[_0x0ffc('0x1a')]?!![]:![],'callbackuniqueid':_0x5657f8['callbackUniqueid']?_0x5657f8[_0x0ffc('0x1a')]:undefined,'callbackat':_0x5657f8[_0x0ffc('0x1a')]?moment()[_0x0ffc('0x1b')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x527fd4['id']});})[_0x0ffc('0x1c')](function(_0x2c87d0){_0x15fd93(_0x2c87d0);});});};function _0x11f4e2(){return function(_0x10e86d){logger['error'](_0x0ffc('0x13'),_0x0ffc('0x14'),util[_0x0ffc('0x24')](_0x10e86d,{'showHidden':![],'depth':null}));};}var _0x5a1d7e=function(_0x256d86){return new BPromise(function(_0x5a3a13,_0x321fa9){_0x25d7f6['CmHopper'][_0x0ffc('0x1d')]({'where':{'phone':_0x5657f8[_0x0ffc('0xa')],'CampaignId':_0x256d86['id']}})['then'](function(_0x473d6c){if(!_[_0x0ffc('0x16')](_0x473d6c)){throw new Error(_0x0ffc('0x1f')+_0x5657f8[_0x0ffc('0xa')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x256d86['id']);}return _0x25d7f6[_0x0ffc('0x15')][_0x0ffc('0x23')]({'phone':_0x5657f8[_0x0ffc('0xa')],'ContactId':_0x5657f8['id'],'ListId':_0x5657f8[_0x0ffc('0x17')],'priority':_0x5657f8[_0x0ffc('0x18')]?_0x5657f8[_0x0ffc('0x18')]:0x2,'scheduledat':_0x5657f8[_0x0ffc('0x19')]?_0x5657f8['scheduledat']:moment()[_0x0ffc('0x1b')](_0x0ffc('0x25')),'callback':_0x5657f8[_0x0ffc('0x1a')]?!![]:![],'callbackuniqueid':_0x5657f8[_0x0ffc('0x1a')]?_0x5657f8['callbackUniqueid']:undefined,'callbackat':_0x5657f8[_0x0ffc('0x1a')]?moment()[_0x0ffc('0x1b')](_0x0ffc('0x25')):undefined,'CampaignId':_0x256d86['id']});})[_0x0ffc('0x1c')](function(_0x526efb){_0x321fa9(_0x526efb);});});};var _0x11b5bf=function(_0xc78a1d){return new BPromise(function(_0x3da309,_0x1ec4b7){_0x25d7f6[_0x0ffc('0x15')][_0x0ffc('0x1d')]({'where':{'phone':_0x5657f8[_0x0ffc('0xa')],'CampaignId':_0xc78a1d['id']}})[_0x0ffc('0x1e')](function(_0x8a5389){if(!_['isNil'](_0x8a5389)){throw new Error(_0x0ffc('0x1f')+_0x5657f8[_0x0ffc('0xa')]+_0x0ffc('0x26')+_0xc78a1d['id']);}return _0x25d7f6[_0x0ffc('0x27')]['findOne']({'where':{'calleridnum':_0x5657f8[_0x0ffc('0xa')],'CampaignId':_0xc78a1d['id']}});})[_0x0ffc('0x1e')](function(_0x4de256){if(!_[_0x0ffc('0x16')](_0x4de256)){throw new Error(_0x0ffc('0x21')+_0x5657f8[_0x0ffc('0xa')]+_0x0ffc('0x28')+_0xc78a1d['id']);}return _0x25d7f6[_0x0ffc('0x15')][_0x0ffc('0x23')]({'phone':_0x5657f8['phone'],'ContactId':_0x5657f8['id'],'ListId':_0x5657f8[_0x0ffc('0x17')],'priority':_0x5657f8[_0x0ffc('0x18')]?_0x5657f8[_0x0ffc('0x18')]:0x2,'scheduledat':_0x5657f8[_0x0ffc('0x19')]?_0x5657f8['scheduledat']:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x5657f8[_0x0ffc('0x1a')]?!![]:![],'callbackuniqueid':_0x5657f8['callbackUniqueid']?_0x5657f8[_0x0ffc('0x1a')]:undefined,'callbackat':_0x5657f8['callbackUniqueid']?moment()[_0x0ffc('0x1b')](_0x0ffc('0x25')):undefined,'CampaignId':_0xc78a1d['id']});})['catch'](function(_0x54070c){_0x1ec4b7(_0x54070c);});});};if(_0x5657f8[_0x0ffc('0x17')]){_0x25d7f6[_0x0ffc('0x29')]['findAll']({'where':{'type':_0x0ffc('0x2a')},'attributes':['id',_0x0ffc('0x2b')],'include':[{'model':_0x25d7f6['CmList'],'as':'Lists','where':{'id':_0x5657f8[_0x0ffc('0x17')]}}]})['then'](function(_0x19ce54){if(_0x19ce54){var _0x4928ef=[];for(var _0x5bf451=0x0,_0x499ad0;_0x5bf451<_0x19ce54[_0x0ffc('0x2c')];_0x5bf451+=0x1){_0x499ad0=_0x19ce54[_0x5bf451]['get']({'plain':!![]});switch(_0x499ad0[_0x0ffc('0x2b')]){case _0x0ffc('0x2d'):_0x27ae43(_0x499ad0)[_0x0ffc('0x1c')](_0xbf12d1());break;case'onlyIfOpen':_0x2095df(_0x499ad0)[_0x0ffc('0x1c')](_0xbf12d1());break;default:_0x25d7f6[_0x0ffc('0x15')][_0x0ffc('0x23')]({'phone':_0x5657f8[_0x0ffc('0xa')],'ContactId':_0x5657f8['id'],'ListId':_0x5657f8[_0x0ffc('0x17')],'scheduledat':_0x5657f8[_0x0ffc('0x19')]?_0x5657f8[_0x0ffc('0x19')]:moment()[_0x0ffc('0x1b')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x5657f8[_0x0ffc('0x18')]?_0x5657f8[_0x0ffc('0x18')]:0x2,'callback':_0x5657f8[_0x0ffc('0x1a')]?!![]:![],'callbackuniqueid':_0x5657f8['callbackUniqueid']?_0x5657f8[_0x0ffc('0x1a')]:undefined,'callbackat':_0x5657f8[_0x0ffc('0x1a')]?moment()[_0x0ffc('0x1b')](_0x0ffc('0x25')):undefined,'VoiceQueueId':_0x499ad0['id']})['catch'](_0xbf12d1());}}}})[_0x0ffc('0x1e')](function(){return _0x25d7f6[_0x0ffc('0x29')]['findAll']({'where':{'type':_0x0ffc('0x2a')},'attributes':['id'],'include':[{'model':_0x25d7f6[_0x0ffc('0x2e')],'as':'BlackLists','where':{'id':_0x5657f8['ListId']}}]})[_0x0ffc('0x1e')](function(_0x34e244){if(_0x34e244){var _0x3ca3cd=[];for(var _0x57d0c5=0x0,_0x531469;_0x57d0c5<_0x34e244[_0x0ffc('0x2c')];_0x57d0c5+=0x1){_0x531469=_0x34e244[_0x57d0c5]['get']({'plain':!![]});_0x25d7f6[_0x0ffc('0x2f')][_0x0ffc('0x23')]({'phone':_0x5657f8[_0x0ffc('0xa')],'ContactId':_0x5657f8['id'],'ListId':_0x5657f8[_0x0ffc('0x17')],'VoiceQueueId':_0x531469['id']})[_0x0ffc('0x1c')](function(_0x4a879a){logger[_0x0ffc('0x30')](_0x0ffc('0x31'),_0x0ffc('0x14'),_0x4a879a[_0x0ffc('0x32')]);});}}});})['then'](function(){return _0x25d7f6['Campaign'][_0x0ffc('0x33')]({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0x25d7f6[_0x0ffc('0x2e')],'as':_0x0ffc('0x34'),'where':{'id':_0x5657f8['ListId']}}]})['then'](function(_0x263552){if(_0x263552){var _0x4679b7=[];for(var _0x4bbbfe=0x0,_0x3394a9;_0x4bbbfe<_0x263552[_0x0ffc('0x2c')];_0x4bbbfe+=0x1){_0x3394a9=_0x263552[_0x4bbbfe][_0x0ffc('0x12')]({'plain':!![]});switch(_0x3394a9[_0x0ffc('0x2b')]){case _0x0ffc('0x2d'):_0x11b5bf(_0x3394a9)[_0x0ffc('0x1c')](_0x11f4e2());break;case _0x0ffc('0x35'):_0x5a1d7e(_0x3394a9)['catch'](_0x11f4e2());break;default:_0x25d7f6['CmHopper'][_0x0ffc('0x23')]({'phone':_0x5657f8[_0x0ffc('0xa')],'ContactId':_0x5657f8['id'],'ListId':_0x5657f8['ListId'],'scheduledat':_0x5657f8[_0x0ffc('0x19')]?_0x5657f8[_0x0ffc('0x19')]:moment()[_0x0ffc('0x1b')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x5657f8[_0x0ffc('0x18')]?_0x5657f8['priority']:0x2,'callback':_0x5657f8['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x5657f8[_0x0ffc('0x1a')]?_0x5657f8['callbackUniqueid']:undefined,'callbackat':_0x5657f8['callbackUniqueid']?moment()[_0x0ffc('0x1b')](_0x0ffc('0x25')):undefined,'CampaignId':_0x3394a9['id']})[_0x0ffc('0x1c')](_0x11f4e2());}}}});})['then'](function(){return _0x25d7f6[_0x0ffc('0x36')][_0x0ffc('0x33')]({'attributes':['id'],'include':[{'model':_0x25d7f6['CmList'],'as':'BlackLists','where':{'id':_0x5657f8[_0x0ffc('0x17')]}}]})[_0x0ffc('0x1e')](function(_0x38b7f5){if(_0x38b7f5){var _0x23d0c2=[];for(var _0x67c709=0x0,_0x5b0416;_0x67c709<_0x38b7f5[_0x0ffc('0x2c')];_0x67c709+=0x1){_0x5b0416=_0x38b7f5[_0x67c709]['get']({'plain':!![]});_0x25d7f6['CmHopperBlack'][_0x0ffc('0x23')]({'phone':_0x5657f8[_0x0ffc('0xa')],'ContactId':_0x5657f8['id'],'ListId':_0x5657f8[_0x0ffc('0x17')],'CampaignId':_0x5b0416['id']})['catch'](function(_0x5c83d3){logger['error'](_0x0ffc('0x31'),_0x0ffc('0x14'),_0x5c83d3['message']);});}}});})[_0x0ffc('0x1e')](function(){_0x481a0f();})[_0x0ffc('0x1c')](function(_0x50b955){logger[_0x0ffc('0x30')](_0x0ffc('0x31'),_0x0ffc('0x14'),_0x50b955['message']);_0x481a0f(_0x50b955);});}else{_0x481a0f(new Error(_0x0ffc('0x37')));}},'afterDestroy':function(_0x468088,_0x42372d,_0x10c0df){var _0x584961=_0x23d3e0['models'];var _0x13a739=_0x468088['get']({'plain':!![]});return _0x584961[_0x0ffc('0x15')][_0x0ffc('0x33')]({'raw':!![],'where':{'ListId':_0x13a739['ListId'],'ContactId':_0x13a739['id']}})[_0x0ffc('0x1e')](function(_0x5f2301){if(!_[_0x0ffc('0x38')](_0x5f2301)){var _0x44397e=[];for(var _0x501bb3=0x0;_0x501bb3<_0x5f2301['length'];_0x501bb3+=0x1){var _0x24493f=_0x584961[_0x0ffc('0x15')][_0x0ffc('0x39')]({'where':{'ListId':_0x5f2301[_0x501bb3][_0x0ffc('0x17')],'ContactId':_0x5f2301[_0x501bb3][_0x0ffc('0x3a')],'VoiceQueueId':_0x5f2301[_0x501bb3][_0x0ffc('0x3b')],'CampaignId':_0x5f2301[_0x501bb3]['CampaignId']}});_0x44397e['push'](_0x24493f);}return BPromise[_0x0ffc('0x3c')](_0x44397e);}})[_0x0ffc('0x1e')](function(_0x2fdda5){logger[_0x0ffc('0x3d')](_0x0ffc('0x3e'),util['inspect'](_0x2fdda5,{'showHidden':![],'depth':null}));_0x10c0df();})['catch'](function(_0x12fd65){logger[_0x0ffc('0x30')](_0x0ffc('0x3f'),util['inspect'](_0x12fd65,{'showHidden':![],'depth':null}));_0x10c0df(_0x12fd65);});}}});};