c5f8c35700db7a99d97dc42d6eed936779874ffb
[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 _0x02b2=['CmHopperFinal','ListId','afterCreate','\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','cmContact,\x20afterCreate,\x20','VoiceQueue','findAll','outbound','CmList','Lists','length','get','dialCheckDuplicateType','BlackLists','CmHopperBlack','cmContact,\x20%s,\x20%s','always','onlyIfOpen','Campaign','message','List\x20not\x20found','isEmpty','ContactId','VoiceQueueId','CampaignId','all','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','define','CmContact','cm_contacts','phone','fti_cm_contacts','firstName','lastName','fax','FULLTEXT','utf8mb4','models','error','cmContact','inspect','scheduledat','isNil','findOne','then','timezones','dialTimezone','utcOffset','add','minutes','YYYY-MM-DD\x20HH:mm:ss','ret','CmHopper','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create','priority','format','callbackUniqueid','catch','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'];(function(_0x50414a,_0x1c1ae8){var _0x8fa39f=function(_0x4bc487){while(--_0x4bc487){_0x50414a['push'](_0x50414a['shift']());}};_0x8fa39f(++_0x1c1ae8);}(_0x02b2,0xb4));var _0x202b=function(_0x3a63a6,_0x4ae69f){_0x3a63a6=_0x3a63a6-0x0;var _0x511cc1=_0x02b2[_0x3a63a6];return _0x511cc1;};'use strict';var _=require(_0x202b('0x0'));var util=require(_0x202b('0x1'));var logger=require(_0x202b('0x2'))(_0x202b('0x3'));var moment=require(_0x202b('0x4'));var BPromise=require(_0x202b('0x5'));var rp=require(_0x202b('0x6'));var fs=require('fs');var path=require(_0x202b('0x7'));var rimraf=require(_0x202b('0x8'));var config=require(_0x202b('0x9'));var shared=require('../../config/environment/shared');var attributes=require('./cmContact.attributes');module[_0x202b('0xa')]=function(_0x1a3064,_0x4800b1){return _0x1a3064[_0x202b('0xb')](_0x202b('0xc'),attributes,{'tableName':_0x202b('0xd'),'paranoid':!![],'indexes':[{'name':_0x202b('0xe'),'fields':['phone']},{'name':_0x202b('0xf'),'fields':[_0x202b('0x10'),_0x202b('0x11'),_0x202b('0xe'),'mobile',_0x202b('0x12'),'email'],'type':_0x202b('0x13')}],'timestamps':!![],'charset':_0x202b('0x14'),'collate':'utf8mb4_unicode_ci','hooks':{'afterCreate':function(_0x18d4b0,_0x29dada,_0x1aafb8){var _0x507b38=_0x1a3064[_0x202b('0x15')];var _0x54e578=_0x18d4b0['get']({'plain':!![]});function _0x4d52ce(){return function(_0x11a69b){logger[_0x202b('0x16')](_0x202b('0x17'),'afterCreate',util[_0x202b('0x18')](_0x11a69b,{'showHidden':![],'depth':null}));};}function _0xc984e9(_0x1038e3,_0x183ac7){var _0x70565e=_0x183ac7[_0x202b('0x19')]?_0x183ac7[_0x202b('0x19')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss');return new BPromise(function(_0x968a41,_0x6438d9){if(_[_0x202b('0x1a')](_0x183ac7['dialTimezone'])){_0x968a41({'ret':_0x70565e});}else{_0x507b38['VoiceQueue'][_0x202b('0x1b')]({'where':{'id':_0x1038e3['id']}})[_0x202b('0x1c')](function(_0x21c206){if(!_[_0x202b('0x1a')](_0x21c206)){var _0x5ea7e8=_0x21c206['dialTimezone'];if(!_[_0x202b('0x1a')](_0x5ea7e8)){var _0x50c62e=shared[_0x202b('0x1d')];var _0x3623bb=_0x50c62e[_0x5ea7e8];var _0xe7caae=_0x50c62e[_0x183ac7[_0x202b('0x1e')]];if(!_['isNil'](_0x3623bb)&&!_[_0x202b('0x1a')](_0xe7caae)){var _0x583a7b=_0x3623bb[_0x202b('0x1f')]-_0xe7caae['utcOffset'];_0x70565e=_0x183ac7[_0x202b('0x19')]?_0x183ac7[_0x202b('0x19')]:moment();var _0x3a424b=moment(_0x70565e)[_0x202b('0x20')](_0x583a7b,_0x202b('0x21'));_0x968a41({'ret':_0x3a424b['format'](_0x202b('0x22'))});}else _0x968a41({'ret':_0x70565e});}else _0x968a41({'ret':_0x70565e});}else{_0x968a41({'ret':_0x70565e});}});}});return 0xa;}var _0x314d54=function(_0x34f3d8){return new BPromise(function(_0x3d898c,_0x43a60e){_0xc984e9(_0x34f3d8,_0x54e578)[_0x202b('0x1c')](function(_0x452799){_0x54e578[_0x202b('0x19')]=_0x452799[_0x202b('0x23')];_0x507b38[_0x202b('0x24')][_0x202b('0x1b')]({'where':{'phone':_0x54e578[_0x202b('0xe')],'VoiceQueueId':_0x34f3d8['id']}})[_0x202b('0x1c')](function(_0x17a0ec){if(!_[_0x202b('0x1a')](_0x17a0ec)){throw new Error(_0x202b('0x25')+_0x54e578[_0x202b('0xe')]+_0x202b('0x26')+_0x34f3d8['id']);}return _0x507b38['CmHopper'][_0x202b('0x27')]({'phone':_0x54e578[_0x202b('0xe')],'ContactId':_0x54e578['id'],'ListId':_0x54e578['ListId'],'priority':_0x54e578[_0x202b('0x28')]?_0x54e578[_0x202b('0x28')]:0x2,'scheduledat':_0x54e578[_0x202b('0x19')]?_0x54e578[_0x202b('0x19')]:moment()[_0x202b('0x29')](_0x202b('0x22')),'callback':_0x54e578['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x54e578[_0x202b('0x2a')]?_0x54e578[_0x202b('0x2a')]:undefined,'callbackat':_0x54e578[_0x202b('0x2a')]?moment()[_0x202b('0x29')](_0x202b('0x22')):undefined,'VoiceQueueId':_0x34f3d8['id']});})[_0x202b('0x2b')](function(_0x376038){_0x43a60e(_0x376038);});});});};var _0x3aa144=function(_0x5009a4){return new BPromise(function(_0x4139a9,_0x29739d){_0xc984e9(_0x5009a4,_0x54e578)[_0x202b('0x1c')](function(_0x4e1131){_0x54e578[_0x202b('0x19')]=_0x4e1131['ret'];_0x507b38[_0x202b('0x24')]['findOne']({'where':{'phone':_0x54e578[_0x202b('0xe')],'VoiceQueueId':_0x5009a4['id']}})[_0x202b('0x1c')](function(_0x5ca47b){if(!_[_0x202b('0x1a')](_0x5ca47b)){throw new Error(_0x202b('0x25')+_0x54e578['phone']+_0x202b('0x2c')+_0x5009a4['id']);}return _0x507b38[_0x202b('0x2d')]['findOne']({'where':{'calleridnum':_0x54e578['phone'],'VoiceQueueId':_0x5009a4['id']}});})[_0x202b('0x1c')](function(_0x29c85d){if(!_[_0x202b('0x1a')](_0x29c85d)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x54e578[_0x202b('0xe')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20'+_0x5009a4['id']);}return _0x507b38[_0x202b('0x24')][_0x202b('0x27')]({'phone':_0x54e578[_0x202b('0xe')],'ContactId':_0x54e578['id'],'ListId':_0x54e578[_0x202b('0x2e')],'priority':_0x54e578[_0x202b('0x28')]?_0x54e578[_0x202b('0x28')]:0x2,'scheduledat':_0x54e578['scheduledat']?_0x54e578[_0x202b('0x19')]:moment()[_0x202b('0x29')](_0x202b('0x22')),'callback':_0x54e578[_0x202b('0x2a')]?!![]:![],'callbackuniqueid':_0x54e578[_0x202b('0x2a')]?_0x54e578['callbackUniqueid']:undefined,'callbackat':_0x54e578[_0x202b('0x2a')]?moment()['format'](_0x202b('0x22')):undefined,'VoiceQueueId':_0x5009a4['id']});})[_0x202b('0x2b')](function(_0xdece8d){_0x29739d(_0xdece8d);});});});};function _0xbd2bee(){return function(_0x342c52){logger['error'](_0x202b('0x17'),_0x202b('0x2f'),util[_0x202b('0x18')](_0x342c52,{'showHidden':![],'depth':null}));};}function _0xd883d0(_0x23a639,_0x88d87e){var _0x4b241f=_0x88d87e[_0x202b('0x19')]?_0x88d87e[_0x202b('0x19')]:moment()[_0x202b('0x29')]('YYYY-MM-DD\x20HH:mm:ss');return new BPromise(function(_0x4c524b,_0x32ec5d){if(_[_0x202b('0x1a')](_0x88d87e['dialTimezone'])){_0x4c524b({'ret':_0x4b241f});}else{_0x507b38['Campaign'][_0x202b('0x1b')]({'where':{'id':_0x23a639['id']}})['then'](function(_0x4867ee){if(!_[_0x202b('0x1a')](_0x4867ee)){var _0xd05752=_0x4867ee[_0x202b('0x1e')];if(!_[_0x202b('0x1a')](_0xd05752)){var _0x1c572d=shared[_0x202b('0x1d')];var _0x4419c9=_0x1c572d[_0xd05752];var _0x30873a=_0x1c572d[_0x88d87e[_0x202b('0x1e')]];if(!_[_0x202b('0x1a')](_0x4419c9)&&!_[_0x202b('0x1a')](_0x30873a)){var _0x31c293=_0x4419c9[_0x202b('0x1f')]-_0x30873a[_0x202b('0x1f')];_0x4b241f=_0x88d87e[_0x202b('0x19')]?_0x88d87e[_0x202b('0x19')]:moment();var _0x2c561f=moment(_0x4b241f)[_0x202b('0x20')](_0x31c293,_0x202b('0x21'));_0x4c524b({'ret':_0x2c561f['format'](_0x202b('0x22'))});}else _0x4c524b({'ret':_0x4b241f});}else _0x4c524b({'ret':_0x4b241f});}else{_0x4c524b({'ret':_0x4b241f});}});}});return 0xa;}var _0x54dff8=function(_0x1f5d98){return new BPromise(function(_0x3d5509,_0x2e5846){_0xd883d0(_0x1f5d98,_0x54e578)[_0x202b('0x1c')](function(_0x500a7a){_0x54e578[_0x202b('0x19')]=_0x500a7a[_0x202b('0x23')];_0x507b38[_0x202b('0x24')][_0x202b('0x1b')]({'where':{'phone':_0x54e578['phone'],'CampaignId':_0x1f5d98['id']}})[_0x202b('0x1c')](function(_0xe2e450){if(!_[_0x202b('0x1a')](_0xe2e450)){throw new Error(_0x202b('0x25')+_0x54e578[_0x202b('0xe')]+_0x202b('0x30')+_0x1f5d98['id']);}return _0x507b38[_0x202b('0x24')][_0x202b('0x27')]({'phone':_0x54e578['phone'],'ContactId':_0x54e578['id'],'ListId':_0x54e578[_0x202b('0x2e')],'priority':_0x54e578['priority']?_0x54e578[_0x202b('0x28')]:0x2,'scheduledat':_0x54e578[_0x202b('0x19')]?_0x54e578[_0x202b('0x19')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x54e578[_0x202b('0x2a')]?!![]:![],'callbackuniqueid':_0x54e578[_0x202b('0x2a')]?_0x54e578[_0x202b('0x2a')]:undefined,'callbackat':_0x54e578[_0x202b('0x2a')]?moment()['format'](_0x202b('0x22')):undefined,'CampaignId':_0x1f5d98['id']});})[_0x202b('0x2b')](function(_0x5c9e9c){_0x2e5846(_0x5c9e9c);});});});};var _0x389a62=function(_0x426b9d){return new BPromise(function(_0x33ea6a,_0x37f0fc){_0xd883d0(_0x426b9d,_0x54e578)[_0x202b('0x1c')](function(_0x43499d){_0x54e578[_0x202b('0x19')]=_0x43499d['ret'];_0x507b38[_0x202b('0x24')][_0x202b('0x1b')]({'where':{'phone':_0x54e578['phone'],'CampaignId':_0x426b9d['id']}})['then'](function(_0x10e63e){if(!_[_0x202b('0x1a')](_0x10e63e)){throw new Error('cmContact,\x20afterCreate\x20'+_0x54e578[_0x202b('0xe')]+_0x202b('0x31')+_0x426b9d['id']);}return _0x507b38[_0x202b('0x2d')][_0x202b('0x1b')]({'where':{'calleridnum':_0x54e578[_0x202b('0xe')],'CampaignId':_0x426b9d['id']}});})[_0x202b('0x1c')](function(_0x3522b7){if(!_[_0x202b('0x1a')](_0x3522b7)){throw new Error(_0x202b('0x32')+_0x54e578[_0x202b('0xe')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20'+_0x426b9d['id']);}return _0x507b38[_0x202b('0x24')][_0x202b('0x27')]({'phone':_0x54e578['phone'],'ContactId':_0x54e578['id'],'ListId':_0x54e578[_0x202b('0x2e')],'priority':_0x54e578[_0x202b('0x28')]?_0x54e578['priority']:0x2,'scheduledat':_0x54e578[_0x202b('0x19')]?_0x54e578[_0x202b('0x19')]:moment()[_0x202b('0x29')](_0x202b('0x22')),'callback':_0x54e578[_0x202b('0x2a')]?!![]:![],'callbackuniqueid':_0x54e578['callbackUniqueid']?_0x54e578[_0x202b('0x2a')]:undefined,'callbackat':_0x54e578[_0x202b('0x2a')]?moment()[_0x202b('0x29')](_0x202b('0x22')):undefined,'CampaignId':_0x426b9d['id']});})[_0x202b('0x2b')](function(_0xad3829){_0x37f0fc(_0xad3829);});});});};if(_0x54e578[_0x202b('0x2e')]){_0x507b38[_0x202b('0x33')][_0x202b('0x34')]({'where':{'type':_0x202b('0x35')},'attributes':['id','dialCheckDuplicateType',_0x202b('0x1e')],'include':[{'model':_0x507b38[_0x202b('0x36')],'as':_0x202b('0x37'),'where':{'id':_0x54e578[_0x202b('0x2e')]}}]})['then'](function(_0x55a352){if(_0x55a352){var _0x840e3b=[];for(var _0x1f9155=0x0,_0x130472;_0x1f9155<_0x55a352[_0x202b('0x38')];_0x1f9155+=0x1){_0x130472=_0x55a352[_0x1f9155][_0x202b('0x39')]({'plain':!![]});switch(_0x130472[_0x202b('0x3a')]){case'always':_0x3aa144(_0x130472)[_0x202b('0x2b')](_0x4d52ce());break;case'onlyIfOpen':_0x314d54(_0x130472)[_0x202b('0x2b')](_0x4d52ce());break;default:_0xd883d0(_0x130472,_0x54e578)[_0x202b('0x1c')](function(_0x4b002a){_0x54e578[_0x202b('0x19')]=_0x4b002a['ret'];_0x507b38[_0x202b('0x24')][_0x202b('0x27')]({'phone':_0x54e578[_0x202b('0xe')],'ContactId':_0x54e578['id'],'ListId':_0x54e578[_0x202b('0x2e')],'scheduledat':_0x54e578[_0x202b('0x19')]?_0x54e578[_0x202b('0x19')]:moment()[_0x202b('0x29')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x54e578['priority']?_0x54e578[_0x202b('0x28')]:0x2,'callback':_0x54e578[_0x202b('0x2a')]?!![]:![],'callbackuniqueid':_0x54e578[_0x202b('0x2a')]?_0x54e578[_0x202b('0x2a')]:undefined,'callbackat':_0x54e578[_0x202b('0x2a')]?moment()[_0x202b('0x29')](_0x202b('0x22')):undefined,'VoiceQueueId':_0x130472['id']})[_0x202b('0x2b')](_0x4d52ce());});}}}})['then'](function(){return _0x507b38[_0x202b('0x33')][_0x202b('0x34')]({'where':{'type':_0x202b('0x35')},'attributes':['id'],'include':[{'model':_0x507b38[_0x202b('0x36')],'as':_0x202b('0x3b'),'where':{'id':_0x54e578[_0x202b('0x2e')]}}]})[_0x202b('0x1c')](function(_0x58b6cb){if(_0x58b6cb){var _0x547db8=[];for(var _0x19f3ab=0x0,_0x35b99f;_0x19f3ab<_0x58b6cb[_0x202b('0x38')];_0x19f3ab+=0x1){_0x35b99f=_0x58b6cb[_0x19f3ab][_0x202b('0x39')]({'plain':!![]});_0x507b38[_0x202b('0x3c')][_0x202b('0x27')]({'phone':_0x54e578[_0x202b('0xe')],'ContactId':_0x54e578['id'],'ListId':_0x54e578['ListId'],'VoiceQueueId':_0x35b99f['id']})[_0x202b('0x2b')](function(_0x4add17){logger[_0x202b('0x16')](_0x202b('0x3d'),_0x202b('0x2f'),_0x4add17['message']);});}}});})[_0x202b('0x1c')](function(){return _0x507b38['Campaign'][_0x202b('0x34')]({'attributes':['id',_0x202b('0x3a'),_0x202b('0x1e')],'include':[{'model':_0x507b38[_0x202b('0x36')],'as':'Lists','where':{'id':_0x54e578[_0x202b('0x2e')]}}]})[_0x202b('0x1c')](function(_0x144bd9){if(_0x144bd9){var _0x60c437=[];for(var _0x4898b2=0x0,_0x356c90;_0x4898b2<_0x144bd9[_0x202b('0x38')];_0x4898b2+=0x1){_0x356c90=_0x144bd9[_0x4898b2][_0x202b('0x39')]({'plain':!![]});switch(_0x356c90[_0x202b('0x3a')]){case _0x202b('0x3e'):_0x389a62(_0x356c90)[_0x202b('0x2b')](_0xbd2bee());break;case _0x202b('0x3f'):_0x54dff8(_0x356c90)[_0x202b('0x2b')](_0xbd2bee());break;default:_0x507b38[_0x202b('0x24')][_0x202b('0x27')]({'phone':_0x54e578[_0x202b('0xe')],'ContactId':_0x54e578['id'],'ListId':_0x54e578[_0x202b('0x2e')],'scheduledat':_0x54e578['scheduledat']?_0x54e578['scheduledat']:moment()['format'](_0x202b('0x22')),'priority':_0x54e578[_0x202b('0x28')]?_0x54e578[_0x202b('0x28')]:0x2,'callback':_0x54e578[_0x202b('0x2a')]?!![]:![],'callbackuniqueid':_0x54e578[_0x202b('0x2a')]?_0x54e578[_0x202b('0x2a')]:undefined,'callbackat':_0x54e578[_0x202b('0x2a')]?moment()[_0x202b('0x29')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x356c90['id']})['catch'](_0xbd2bee());}}}});})[_0x202b('0x1c')](function(){return _0x507b38[_0x202b('0x40')][_0x202b('0x34')]({'attributes':['id'],'include':[{'model':_0x507b38[_0x202b('0x36')],'as':'BlackLists','where':{'id':_0x54e578[_0x202b('0x2e')]}}]})['then'](function(_0x4eb2cb){if(_0x4eb2cb){var _0x7898df=[];for(var _0x3d9780=0x0,_0x156e95;_0x3d9780<_0x4eb2cb[_0x202b('0x38')];_0x3d9780+=0x1){_0x156e95=_0x4eb2cb[_0x3d9780][_0x202b('0x39')]({'plain':!![]});_0x507b38['CmHopperBlack'][_0x202b('0x27')]({'phone':_0x54e578['phone'],'ContactId':_0x54e578['id'],'ListId':_0x54e578[_0x202b('0x2e')],'CampaignId':_0x156e95['id']})[_0x202b('0x2b')](function(_0x587aab){logger['error'](_0x202b('0x3d'),_0x202b('0x2f'),_0x587aab[_0x202b('0x41')]);});}}});})[_0x202b('0x1c')](function(){_0x1aafb8();})[_0x202b('0x2b')](function(_0x224dbc){logger[_0x202b('0x16')](_0x202b('0x3d'),_0x202b('0x2f'),_0x224dbc['message']);_0x1aafb8(_0x224dbc);});}else{_0x1aafb8(new Error(_0x202b('0x42')));}},'afterDestroy':function(_0x565c61,_0x354a5a,_0xb77e7e){var _0x2af3c8=_0x1a3064[_0x202b('0x15')];var _0x7d0cc6=_0x565c61['get']({'plain':!![]});return _0x2af3c8[_0x202b('0x24')][_0x202b('0x34')]({'raw':!![],'where':{'ListId':_0x7d0cc6[_0x202b('0x2e')],'ContactId':_0x7d0cc6['id']}})[_0x202b('0x1c')](function(_0xf62356){if(!_[_0x202b('0x43')](_0xf62356)){var _0x1022d9=[];for(var _0x1fea22=0x0;_0x1fea22<_0xf62356[_0x202b('0x38')];_0x1fea22+=0x1){var _0xdcfc8e=_0x2af3c8['CmHopper']['destroy']({'where':{'ListId':_0xf62356[_0x1fea22][_0x202b('0x2e')],'ContactId':_0xf62356[_0x1fea22][_0x202b('0x44')],'VoiceQueueId':_0xf62356[_0x1fea22][_0x202b('0x45')],'CampaignId':_0xf62356[_0x1fea22][_0x202b('0x46')]}});_0x1022d9['push'](_0xdcfc8e);}return BPromise[_0x202b('0x47')](_0x1022d9);}})[_0x202b('0x1c')](function(_0xc5c654){logger[_0x202b('0x48')](_0x202b('0x49'),util[_0x202b('0x18')](_0xc5c654,{'showHidden':![],'depth':null}));_0xb77e7e();})[_0x202b('0x2b')](function(_0x16ad2a){logger[_0x202b('0x16')](_0x202b('0x4a'),util['inspect'](_0x16ad2a,{'showHidden':![],'depth':null}));_0xb77e7e(_0x16ad2a);});}}});};