69e5efd1659b98172c58213ce452326e3adacb41
[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 _0xd2f5=['length','get','CmHopperBlack','cmContact,\x20%s,\x20%s','message','onlyIfOpen','Campaign','List\x20not\x20found','destroy','CampaignId','push','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','../../config/logger','moment','request-promise','path','rimraf','../../config/environment','./cmContact.attributes','exports','CmContact','cm_contacts','phone','fti_cm_contacts','firstName','mobile','email','FULLTEXT','models','error','cmContact','inspect','findOne','then','isNil','\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','cmContact,\x20afterCreate\x20','CmHopperFinal','cmContact,\x20afterCreate,\x20','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','VoiceQueue','findAll','outbound','CmList','Lists','dialCheckDuplicateType','always','BlackLists'];(function(_0xa8d025,_0x3a5cbe){var _0x29e44e=function(_0x57a178){while(--_0x57a178){_0xa8d025['push'](_0xa8d025['shift']());}};_0x29e44e(++_0x3a5cbe);}(_0xd2f5,0x144));var _0x5d2f=function(_0x26eb67,_0x1f7574){_0x26eb67=_0x26eb67-0x0;var _0x15a706=_0xd2f5[_0x26eb67];return _0x15a706;};'use strict';var _=require(_0x5d2f('0x0'));var util=require('util');var logger=require(_0x5d2f('0x1'))('api');var moment=require(_0x5d2f('0x2'));var BPromise=require('bluebird');var rp=require(_0x5d2f('0x3'));var fs=require('fs');var path=require(_0x5d2f('0x4'));var rimraf=require(_0x5d2f('0x5'));var config=require(_0x5d2f('0x6'));var attributes=require(_0x5d2f('0x7'));module[_0x5d2f('0x8')]=function(_0x2392df,_0x16e9fa){return _0x2392df['define'](_0x5d2f('0x9'),attributes,{'tableName':_0x5d2f('0xa'),'paranoid':!![],'indexes':[{'name':_0x5d2f('0xb'),'fields':[_0x5d2f('0xb')]},{'name':_0x5d2f('0xc'),'fields':[_0x5d2f('0xd'),'lastName',_0x5d2f('0xb'),_0x5d2f('0xe'),'fax',_0x5d2f('0xf')],'type':_0x5d2f('0x10')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x2a74a2,_0x47cbfc,_0x39b43b){var _0x401bdb=_0x2392df[_0x5d2f('0x11')];var _0x5d07f4=_0x2a74a2['get']({'plain':!![]});function _0x15530f(){return function(_0x4bc97f){logger[_0x5d2f('0x12')](_0x5d2f('0x13'),'afterCreate',util[_0x5d2f('0x14')](_0x4bc97f,{'showHidden':![],'depth':null}));};}var _0x4b0bf6=function(_0x6ce2d1){return new BPromise(function(_0x158375,_0x309985){_0x401bdb['CmHopper'][_0x5d2f('0x15')]({'where':{'phone':_0x5d07f4[_0x5d2f('0xb')],'VoiceQueueId':_0x6ce2d1['id']}})[_0x5d2f('0x16')](function(_0x2876fb){if(!_[_0x5d2f('0x17')](_0x2876fb)){throw new Error('cmContact,\x20afterCreate\x20'+_0x5d07f4[_0x5d2f('0xb')]+_0x5d2f('0x18')+_0x6ce2d1['id']);}return _0x401bdb[_0x5d2f('0x19')][_0x5d2f('0x1a')]({'phone':_0x5d07f4['phone'],'ContactId':_0x5d07f4['id'],'ListId':_0x5d07f4[_0x5d2f('0x1b')],'priority':_0x5d07f4[_0x5d2f('0x1c')]?_0x5d07f4[_0x5d2f('0x1c')]:0x2,'scheduledat':_0x5d07f4[_0x5d2f('0x1d')]?_0x5d07f4[_0x5d2f('0x1d')]:moment()[_0x5d2f('0x1e')](_0x5d2f('0x1f')),'callback':_0x5d07f4['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x5d07f4['callbackUniqueid']?_0x5d07f4['callbackUniqueid']:undefined,'callbackat':_0x5d07f4[_0x5d2f('0x20')]?moment()[_0x5d2f('0x1e')](_0x5d2f('0x1f')):undefined,'VoiceQueueId':_0x6ce2d1['id']});})[_0x5d2f('0x21')](function(_0x215f0c){_0x309985(_0x215f0c);});});};var _0x5c6dae=function(_0x5cc8d6){return new BPromise(function(_0x368693,_0x572365){_0x401bdb[_0x5d2f('0x19')][_0x5d2f('0x15')]({'where':{'phone':_0x5d07f4[_0x5d2f('0xb')],'VoiceQueueId':_0x5cc8d6['id']}})[_0x5d2f('0x16')](function(_0x6d4ad2){if(!_[_0x5d2f('0x17')](_0x6d4ad2)){throw new Error(_0x5d2f('0x22')+_0x5d07f4[_0x5d2f('0xb')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x5cc8d6['id']);}return _0x401bdb[_0x5d2f('0x23')][_0x5d2f('0x15')]({'where':{'calleridnum':_0x5d07f4[_0x5d2f('0xb')],'VoiceQueueId':_0x5cc8d6['id']}});})[_0x5d2f('0x16')](function(_0x213744){if(!_[_0x5d2f('0x17')](_0x213744)){throw new Error(_0x5d2f('0x24')+_0x5d07f4[_0x5d2f('0xb')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20'+_0x5cc8d6['id']);}return _0x401bdb[_0x5d2f('0x19')][_0x5d2f('0x1a')]({'phone':_0x5d07f4[_0x5d2f('0xb')],'ContactId':_0x5d07f4['id'],'ListId':_0x5d07f4[_0x5d2f('0x1b')],'priority':_0x5d07f4[_0x5d2f('0x1c')]?_0x5d07f4['priority']:0x2,'scheduledat':_0x5d07f4[_0x5d2f('0x1d')]?_0x5d07f4[_0x5d2f('0x1d')]:moment()[_0x5d2f('0x1e')](_0x5d2f('0x1f')),'callback':_0x5d07f4['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x5d07f4[_0x5d2f('0x20')]?_0x5d07f4[_0x5d2f('0x20')]:undefined,'callbackat':_0x5d07f4['callbackUniqueid']?moment()[_0x5d2f('0x1e')](_0x5d2f('0x1f')):undefined,'VoiceQueueId':_0x5cc8d6['id']});})[_0x5d2f('0x21')](function(_0x4ff711){_0x572365(_0x4ff711);});});};function _0x3391b1(){return function(_0x18058a){logger[_0x5d2f('0x12')](_0x5d2f('0x13'),_0x5d2f('0x25'),util[_0x5d2f('0x14')](_0x18058a,{'showHidden':![],'depth':null}));};}var _0x53c987=function(_0x20f2d4){return new BPromise(function(_0x9bb510,_0x37cc21){_0x401bdb['CmHopper']['findOne']({'where':{'phone':_0x5d07f4[_0x5d2f('0xb')],'CampaignId':_0x20f2d4['id']}})[_0x5d2f('0x16')](function(_0xb45328){if(!_[_0x5d2f('0x17')](_0xb45328)){throw new Error(_0x5d2f('0x22')+_0x5d07f4[_0x5d2f('0xb')]+_0x5d2f('0x26')+_0x20f2d4['id']);}return _0x401bdb[_0x5d2f('0x19')][_0x5d2f('0x1a')]({'phone':_0x5d07f4[_0x5d2f('0xb')],'ContactId':_0x5d07f4['id'],'ListId':_0x5d07f4[_0x5d2f('0x1b')],'priority':_0x5d07f4[_0x5d2f('0x1c')]?_0x5d07f4[_0x5d2f('0x1c')]:0x2,'scheduledat':_0x5d07f4[_0x5d2f('0x1d')]?_0x5d07f4[_0x5d2f('0x1d')]:moment()['format'](_0x5d2f('0x1f')),'callback':_0x5d07f4[_0x5d2f('0x20')]?!![]:![],'callbackuniqueid':_0x5d07f4[_0x5d2f('0x20')]?_0x5d07f4[_0x5d2f('0x20')]:undefined,'callbackat':_0x5d07f4[_0x5d2f('0x20')]?moment()[_0x5d2f('0x1e')](_0x5d2f('0x1f')):undefined,'CampaignId':_0x20f2d4['id']});})[_0x5d2f('0x21')](function(_0x2afa2c){_0x37cc21(_0x2afa2c);});});};var _0x557d42=function(_0x253f53){return new BPromise(function(_0x49eb55,_0x216c35){_0x401bdb[_0x5d2f('0x19')][_0x5d2f('0x15')]({'where':{'phone':_0x5d07f4[_0x5d2f('0xb')],'CampaignId':_0x253f53['id']}})[_0x5d2f('0x16')](function(_0x11e863){if(!_['isNil'](_0x11e863)){throw new Error(_0x5d2f('0x22')+_0x5d07f4['phone']+_0x5d2f('0x27')+_0x253f53['id']);}return _0x401bdb[_0x5d2f('0x23')][_0x5d2f('0x15')]({'where':{'calleridnum':_0x5d07f4[_0x5d2f('0xb')],'CampaignId':_0x253f53['id']}});})[_0x5d2f('0x16')](function(_0x117d5d){if(!_[_0x5d2f('0x17')](_0x117d5d)){throw new Error(_0x5d2f('0x24')+_0x5d07f4[_0x5d2f('0xb')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20'+_0x253f53['id']);}return _0x401bdb[_0x5d2f('0x19')]['create']({'phone':_0x5d07f4['phone'],'ContactId':_0x5d07f4['id'],'ListId':_0x5d07f4[_0x5d2f('0x1b')],'priority':_0x5d07f4[_0x5d2f('0x1c')]?_0x5d07f4[_0x5d2f('0x1c')]:0x2,'scheduledat':_0x5d07f4[_0x5d2f('0x1d')]?_0x5d07f4[_0x5d2f('0x1d')]:moment()[_0x5d2f('0x1e')](_0x5d2f('0x1f')),'callback':_0x5d07f4['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x5d07f4['callbackUniqueid']?_0x5d07f4['callbackUniqueid']:undefined,'callbackat':_0x5d07f4[_0x5d2f('0x20')]?moment()[_0x5d2f('0x1e')](_0x5d2f('0x1f')):undefined,'CampaignId':_0x253f53['id']});})[_0x5d2f('0x21')](function(_0x2cd120){_0x216c35(_0x2cd120);});});};if(_0x5d07f4['ListId']){_0x401bdb[_0x5d2f('0x28')][_0x5d2f('0x29')]({'where':{'type':_0x5d2f('0x2a')},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0x401bdb[_0x5d2f('0x2b')],'as':_0x5d2f('0x2c'),'where':{'id':_0x5d07f4[_0x5d2f('0x1b')]}}]})[_0x5d2f('0x16')](function(_0xe61ece){if(_0xe61ece){var _0x417ef1=[];for(var _0x57572b=0x0,_0x3d1fd0;_0x57572b<_0xe61ece['length'];_0x57572b+=0x1){_0x3d1fd0=_0xe61ece[_0x57572b]['get']({'plain':!![]});switch(_0x3d1fd0[_0x5d2f('0x2d')]){case _0x5d2f('0x2e'):_0x5c6dae(_0x3d1fd0)[_0x5d2f('0x21')](_0x15530f());break;case'onlyIfOpen':_0x4b0bf6(_0x3d1fd0)[_0x5d2f('0x21')](_0x15530f());break;default:_0x401bdb[_0x5d2f('0x19')][_0x5d2f('0x1a')]({'phone':_0x5d07f4[_0x5d2f('0xb')],'ContactId':_0x5d07f4['id'],'ListId':_0x5d07f4['ListId'],'scheduledat':_0x5d07f4[_0x5d2f('0x1d')]?_0x5d07f4[_0x5d2f('0x1d')]:moment()[_0x5d2f('0x1e')](_0x5d2f('0x1f')),'priority':_0x5d07f4[_0x5d2f('0x1c')]?_0x5d07f4[_0x5d2f('0x1c')]:0x2,'callback':_0x5d07f4[_0x5d2f('0x20')]?!![]:![],'callbackuniqueid':_0x5d07f4[_0x5d2f('0x20')]?_0x5d07f4[_0x5d2f('0x20')]:undefined,'callbackat':_0x5d07f4[_0x5d2f('0x20')]?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x3d1fd0['id']})['catch'](_0x15530f());}}}})[_0x5d2f('0x16')](function(){return _0x401bdb['VoiceQueue'][_0x5d2f('0x29')]({'where':{'type':_0x5d2f('0x2a')},'attributes':['id'],'include':[{'model':_0x401bdb[_0x5d2f('0x2b')],'as':_0x5d2f('0x2f'),'where':{'id':_0x5d07f4[_0x5d2f('0x1b')]}}]})[_0x5d2f('0x16')](function(_0x59dc3f){if(_0x59dc3f){var _0x50f2ff=[];for(var _0x45f8dc=0x0,_0x1eb915;_0x45f8dc<_0x59dc3f[_0x5d2f('0x30')];_0x45f8dc+=0x1){_0x1eb915=_0x59dc3f[_0x45f8dc][_0x5d2f('0x31')]({'plain':!![]});_0x401bdb[_0x5d2f('0x32')][_0x5d2f('0x1a')]({'phone':_0x5d07f4[_0x5d2f('0xb')],'ContactId':_0x5d07f4['id'],'ListId':_0x5d07f4['ListId'],'VoiceQueueId':_0x1eb915['id']})[_0x5d2f('0x21')](function(_0x42d79d){logger['error'](_0x5d2f('0x33'),_0x5d2f('0x25'),_0x42d79d[_0x5d2f('0x34')]);});}}});})[_0x5d2f('0x16')](function(){return _0x401bdb['Campaign'][_0x5d2f('0x29')]({'attributes':['id',_0x5d2f('0x2d')],'include':[{'model':_0x401bdb[_0x5d2f('0x2b')],'as':_0x5d2f('0x2c'),'where':{'id':_0x5d07f4[_0x5d2f('0x1b')]}}]})[_0x5d2f('0x16')](function(_0x177946){if(_0x177946){var _0x4e471f=[];for(var _0x464460=0x0,_0x1b4cee;_0x464460<_0x177946[_0x5d2f('0x30')];_0x464460+=0x1){_0x1b4cee=_0x177946[_0x464460]['get']({'plain':!![]});switch(_0x1b4cee['dialCheckDuplicateType']){case _0x5d2f('0x2e'):_0x557d42(_0x1b4cee)[_0x5d2f('0x21')](_0x3391b1());break;case _0x5d2f('0x35'):_0x53c987(_0x1b4cee)[_0x5d2f('0x21')](_0x3391b1());break;default:_0x401bdb[_0x5d2f('0x19')][_0x5d2f('0x1a')]({'phone':_0x5d07f4[_0x5d2f('0xb')],'ContactId':_0x5d07f4['id'],'ListId':_0x5d07f4[_0x5d2f('0x1b')],'scheduledat':_0x5d07f4[_0x5d2f('0x1d')]?_0x5d07f4[_0x5d2f('0x1d')]:moment()[_0x5d2f('0x1e')](_0x5d2f('0x1f')),'priority':_0x5d07f4[_0x5d2f('0x1c')]?_0x5d07f4['priority']:0x2,'callback':_0x5d07f4['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x5d07f4['callbackUniqueid']?_0x5d07f4[_0x5d2f('0x20')]:undefined,'callbackat':_0x5d07f4[_0x5d2f('0x20')]?moment()[_0x5d2f('0x1e')](_0x5d2f('0x1f')):undefined,'CampaignId':_0x1b4cee['id']})[_0x5d2f('0x21')](_0x3391b1());}}}});})['then'](function(){return _0x401bdb[_0x5d2f('0x36')][_0x5d2f('0x29')]({'attributes':['id'],'include':[{'model':_0x401bdb[_0x5d2f('0x2b')],'as':_0x5d2f('0x2f'),'where':{'id':_0x5d07f4['ListId']}}]})[_0x5d2f('0x16')](function(_0x44bd66){if(_0x44bd66){var _0x5949ac=[];for(var _0x362445=0x0,_0x5001bd;_0x362445<_0x44bd66[_0x5d2f('0x30')];_0x362445+=0x1){_0x5001bd=_0x44bd66[_0x362445][_0x5d2f('0x31')]({'plain':!![]});_0x401bdb[_0x5d2f('0x32')][_0x5d2f('0x1a')]({'phone':_0x5d07f4['phone'],'ContactId':_0x5d07f4['id'],'ListId':_0x5d07f4[_0x5d2f('0x1b')],'CampaignId':_0x5001bd['id']})[_0x5d2f('0x21')](function(_0x48064d){logger[_0x5d2f('0x12')](_0x5d2f('0x33'),'afterCreate',_0x48064d[_0x5d2f('0x34')]);});}}});})[_0x5d2f('0x16')](function(){_0x39b43b();})['catch'](function(_0x182d5f){logger[_0x5d2f('0x12')]('cmContact,\x20%s,\x20%s',_0x5d2f('0x25'),_0x182d5f[_0x5d2f('0x34')]);_0x39b43b(_0x182d5f);});}else{_0x39b43b(new Error(_0x5d2f('0x37')));}},'afterDestroy':function(_0x167e7f,_0x5d3771,_0x46f2f2){var _0x198477=_0x2392df['models'];var _0x53eb2a=_0x167e7f[_0x5d2f('0x31')]({'plain':!![]});return _0x198477[_0x5d2f('0x19')][_0x5d2f('0x29')]({'raw':!![],'where':{'ListId':_0x53eb2a[_0x5d2f('0x1b')],'ContactId':_0x53eb2a['id']}})[_0x5d2f('0x16')](function(_0x545507){if(!_['isEmpty'](_0x545507)){var _0x12ebc1=[];for(var _0x267da7=0x0;_0x267da7<_0x545507['length'];_0x267da7+=0x1){var _0x49ebf3=_0x198477[_0x5d2f('0x19')][_0x5d2f('0x38')]({'where':{'ListId':_0x545507[_0x267da7][_0x5d2f('0x1b')],'ContactId':_0x545507[_0x267da7]['ContactId'],'VoiceQueueId':_0x545507[_0x267da7]['VoiceQueueId'],'CampaignId':_0x545507[_0x267da7][_0x5d2f('0x39')]}});_0x12ebc1[_0x5d2f('0x3a')](_0x49ebf3);}return BPromise['all'](_0x12ebc1);}})[_0x5d2f('0x16')](function(_0x56ef06){logger[_0x5d2f('0x3b')](_0x5d2f('0x3c'),util[_0x5d2f('0x14')](_0x56ef06,{'showHidden':![],'depth':null}));_0x46f2f2();})['catch'](function(_0x35ecb8){logger[_0x5d2f('0x12')](_0x5d2f('0x3d'),util[_0x5d2f('0x14')](_0x35ecb8,{'showHidden':![],'depth':null}));_0x46f2f2(_0x35ecb8);});}}});};