Built motion from commit fade34fd.|2.5.41
[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 _0xa3e1=['fax','email','FULLTEXT','utf8mb4','get','cmContact','inspect','CmHopper','then','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','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','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','create','error','afterCreate','findOne','\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','findAll','outbound','CmList','Lists','length','onlyIfOpen','VoiceQueue','BlackLists','CmHopperBlack','cmContact,\x20%s,\x20%s','message','Campaign','dialCheckDuplicateType','List\x20not\x20found','models','destroy','ContactId','CampaignId','all','info','[CmContact][afterDestroy][Error]','util','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','define','CmContact','cm_contacts','phone','fti_cm_contacts','firstName','lastName'];(function(_0x188aff,_0x3b2cb9){var _0x4c0c92=function(_0x5854e){while(--_0x5854e){_0x188aff['push'](_0x188aff['shift']());}};_0x4c0c92(++_0x3b2cb9);}(_0xa3e1,0x13b));var _0x1a3e=function(_0x270ce0,_0x3bd2d9){_0x270ce0=_0x270ce0-0x0;var _0x11b688=_0xa3e1[_0x270ce0];return _0x11b688;};'use strict';var _=require('lodash');var util=require(_0x1a3e('0x0'));var logger=require(_0x1a3e('0x1'))(_0x1a3e('0x2'));var moment=require(_0x1a3e('0x3'));var BPromise=require(_0x1a3e('0x4'));var rp=require(_0x1a3e('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x1a3e('0x6'));var config=require(_0x1a3e('0x7'));var attributes=require('./cmContact.attributes');module['exports']=function(_0x4cbdc5,_0x3f5ce8){return _0x4cbdc5[_0x1a3e('0x8')](_0x1a3e('0x9'),attributes,{'tableName':_0x1a3e('0xa'),'paranoid':!![],'indexes':[{'name':_0x1a3e('0xb'),'fields':[_0x1a3e('0xb')]},{'name':_0x1a3e('0xc'),'fields':[_0x1a3e('0xd'),_0x1a3e('0xe'),_0x1a3e('0xb'),'mobile',_0x1a3e('0xf'),_0x1a3e('0x10')],'type':_0x1a3e('0x11')}],'timestamps':!![],'charset':_0x1a3e('0x12'),'collate':'utf8mb4_unicode_ci','hooks':{'afterCreate':function(_0x1286c6,_0x2b1cd7,_0x3dea34){var _0x587a2a=_0x4cbdc5['models'];var _0x26e4a9=_0x1286c6[_0x1a3e('0x13')]({'plain':!![]});function _0x7e6b44(){return function(_0x288541){logger['error'](_0x1a3e('0x14'),'afterCreate',util[_0x1a3e('0x15')](_0x288541,{'showHidden':![],'depth':null}));};}var _0x58abde=function(_0x1ed3c0){return new BPromise(function(_0x253dab,_0x1a24ba){_0x587a2a[_0x1a3e('0x16')]['findOne']({'where':{'phone':_0x26e4a9['phone'],'VoiceQueueId':_0x1ed3c0['id']}})[_0x1a3e('0x17')](function(_0x4f3580){if(!_[_0x1a3e('0x18')](_0x4f3580)){throw new Error(_0x1a3e('0x19')+_0x26e4a9[_0x1a3e('0xb')]+_0x1a3e('0x1a')+_0x1ed3c0['id']);}return _0x587a2a[_0x1a3e('0x16')]['create']({'phone':_0x26e4a9[_0x1a3e('0xb')],'ContactId':_0x26e4a9['id'],'ListId':_0x26e4a9[_0x1a3e('0x1b')],'priority':_0x26e4a9[_0x1a3e('0x1c')]?_0x26e4a9[_0x1a3e('0x1c')]:0x2,'scheduledat':_0x26e4a9[_0x1a3e('0x1d')]?_0x26e4a9[_0x1a3e('0x1d')]:moment()[_0x1a3e('0x1e')](_0x1a3e('0x1f')),'callback':_0x26e4a9[_0x1a3e('0x20')]?!![]:![],'callbackuniqueid':_0x26e4a9[_0x1a3e('0x20')]?_0x26e4a9[_0x1a3e('0x20')]:undefined,'callbackat':_0x26e4a9[_0x1a3e('0x20')]?moment()[_0x1a3e('0x1e')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x1ed3c0['id']});})[_0x1a3e('0x21')](function(_0x23987c){_0x1a24ba(_0x23987c);});});};var _0x4684ff=function(_0x2e6081){return new BPromise(function(_0x5a94ea,_0x2f0edb){_0x587a2a[_0x1a3e('0x16')]['findOne']({'where':{'phone':_0x26e4a9['phone'],'VoiceQueueId':_0x2e6081['id']}})[_0x1a3e('0x17')](function(_0x1abdf2){if(!_[_0x1a3e('0x18')](_0x1abdf2)){throw new Error('cmContact,\x20afterCreate\x20'+_0x26e4a9[_0x1a3e('0xb')]+_0x1a3e('0x22')+_0x2e6081['id']);}return _0x587a2a[_0x1a3e('0x23')]['findOne']({'where':{'calleridnum':_0x26e4a9[_0x1a3e('0xb')],'VoiceQueueId':_0x2e6081['id']}});})[_0x1a3e('0x17')](function(_0x1cd3d2){if(!_[_0x1a3e('0x18')](_0x1cd3d2)){throw new Error(_0x1a3e('0x24')+_0x26e4a9[_0x1a3e('0xb')]+_0x1a3e('0x25')+_0x2e6081['id']);}return _0x587a2a[_0x1a3e('0x16')][_0x1a3e('0x26')]({'phone':_0x26e4a9[_0x1a3e('0xb')],'ContactId':_0x26e4a9['id'],'ListId':_0x26e4a9[_0x1a3e('0x1b')],'priority':_0x26e4a9[_0x1a3e('0x1c')]?_0x26e4a9[_0x1a3e('0x1c')]:0x2,'scheduledat':_0x26e4a9[_0x1a3e('0x1d')]?_0x26e4a9[_0x1a3e('0x1d')]:moment()[_0x1a3e('0x1e')](_0x1a3e('0x1f')),'callback':_0x26e4a9['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x26e4a9[_0x1a3e('0x20')]?_0x26e4a9[_0x1a3e('0x20')]:undefined,'callbackat':_0x26e4a9[_0x1a3e('0x20')]?moment()['format'](_0x1a3e('0x1f')):undefined,'VoiceQueueId':_0x2e6081['id']});})['catch'](function(_0x2a4257){_0x2f0edb(_0x2a4257);});});};function _0x4b5a2e(){return function(_0x394cce){logger[_0x1a3e('0x27')](_0x1a3e('0x14'),_0x1a3e('0x28'),util[_0x1a3e('0x15')](_0x394cce,{'showHidden':![],'depth':null}));};}var _0x3072d6=function(_0x37b63d){return new BPromise(function(_0x1a81e3,_0x88d58a){_0x587a2a[_0x1a3e('0x16')][_0x1a3e('0x29')]({'where':{'phone':_0x26e4a9[_0x1a3e('0xb')],'CampaignId':_0x37b63d['id']}})[_0x1a3e('0x17')](function(_0x3480ba){if(!_['isNil'](_0x3480ba)){throw new Error(_0x1a3e('0x19')+_0x26e4a9[_0x1a3e('0xb')]+_0x1a3e('0x2a')+_0x37b63d['id']);}return _0x587a2a[_0x1a3e('0x16')][_0x1a3e('0x26')]({'phone':_0x26e4a9[_0x1a3e('0xb')],'ContactId':_0x26e4a9['id'],'ListId':_0x26e4a9[_0x1a3e('0x1b')],'priority':_0x26e4a9['priority']?_0x26e4a9[_0x1a3e('0x1c')]:0x2,'scheduledat':_0x26e4a9[_0x1a3e('0x1d')]?_0x26e4a9[_0x1a3e('0x1d')]:moment()[_0x1a3e('0x1e')](_0x1a3e('0x1f')),'callback':_0x26e4a9[_0x1a3e('0x20')]?!![]:![],'callbackuniqueid':_0x26e4a9[_0x1a3e('0x20')]?_0x26e4a9[_0x1a3e('0x20')]:undefined,'callbackat':_0x26e4a9[_0x1a3e('0x20')]?moment()[_0x1a3e('0x1e')](_0x1a3e('0x1f')):undefined,'CampaignId':_0x37b63d['id']});})['catch'](function(_0x5e6774){_0x88d58a(_0x5e6774);});});};var _0x544976=function(_0x5ef28a){return new BPromise(function(_0xde8422,_0x11ffde){_0x587a2a[_0x1a3e('0x16')][_0x1a3e('0x29')]({'where':{'phone':_0x26e4a9[_0x1a3e('0xb')],'CampaignId':_0x5ef28a['id']}})[_0x1a3e('0x17')](function(_0x156248){if(!_[_0x1a3e('0x18')](_0x156248)){throw new Error('cmContact,\x20afterCreate\x20'+_0x26e4a9[_0x1a3e('0xb')]+_0x1a3e('0x2b')+_0x5ef28a['id']);}return _0x587a2a['CmHopperFinal'][_0x1a3e('0x29')]({'where':{'calleridnum':_0x26e4a9['phone'],'CampaignId':_0x5ef28a['id']}});})[_0x1a3e('0x17')](function(_0x412195){if(!_[_0x1a3e('0x18')](_0x412195)){throw new Error(_0x1a3e('0x24')+_0x26e4a9['phone']+_0x1a3e('0x2c')+_0x5ef28a['id']);}return _0x587a2a[_0x1a3e('0x16')][_0x1a3e('0x26')]({'phone':_0x26e4a9[_0x1a3e('0xb')],'ContactId':_0x26e4a9['id'],'ListId':_0x26e4a9['ListId'],'priority':_0x26e4a9[_0x1a3e('0x1c')]?_0x26e4a9[_0x1a3e('0x1c')]:0x2,'scheduledat':_0x26e4a9[_0x1a3e('0x1d')]?_0x26e4a9[_0x1a3e('0x1d')]:moment()['format'](_0x1a3e('0x1f')),'callback':_0x26e4a9['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x26e4a9[_0x1a3e('0x20')]?_0x26e4a9['callbackUniqueid']:undefined,'callbackat':_0x26e4a9[_0x1a3e('0x20')]?moment()[_0x1a3e('0x1e')](_0x1a3e('0x1f')):undefined,'CampaignId':_0x5ef28a['id']});})[_0x1a3e('0x21')](function(_0x3e2f9a){_0x11ffde(_0x3e2f9a);});});};if(_0x26e4a9[_0x1a3e('0x1b')]){_0x587a2a['VoiceQueue'][_0x1a3e('0x2d')]({'where':{'type':_0x1a3e('0x2e')},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0x587a2a[_0x1a3e('0x2f')],'as':_0x1a3e('0x30'),'where':{'id':_0x26e4a9[_0x1a3e('0x1b')]}}]})[_0x1a3e('0x17')](function(_0x2aa1da){if(_0x2aa1da){var _0x27cabc=[];for(var _0x28f41d=0x0,_0x47be74;_0x28f41d<_0x2aa1da[_0x1a3e('0x31')];_0x28f41d+=0x1){_0x47be74=_0x2aa1da[_0x28f41d]['get']({'plain':!![]});switch(_0x47be74['dialCheckDuplicateType']){case'always':_0x4684ff(_0x47be74)['catch'](_0x7e6b44());break;case _0x1a3e('0x32'):_0x58abde(_0x47be74)[_0x1a3e('0x21')](_0x7e6b44());break;default:_0x587a2a['CmHopper']['create']({'phone':_0x26e4a9[_0x1a3e('0xb')],'ContactId':_0x26e4a9['id'],'ListId':_0x26e4a9[_0x1a3e('0x1b')],'scheduledat':_0x26e4a9[_0x1a3e('0x1d')]?_0x26e4a9[_0x1a3e('0x1d')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x26e4a9[_0x1a3e('0x1c')]?_0x26e4a9[_0x1a3e('0x1c')]:0x2,'callback':_0x26e4a9['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x26e4a9[_0x1a3e('0x20')]?_0x26e4a9[_0x1a3e('0x20')]:undefined,'callbackat':_0x26e4a9['callbackUniqueid']?moment()[_0x1a3e('0x1e')](_0x1a3e('0x1f')):undefined,'VoiceQueueId':_0x47be74['id']})[_0x1a3e('0x21')](_0x7e6b44());}}}})[_0x1a3e('0x17')](function(){return _0x587a2a[_0x1a3e('0x33')][_0x1a3e('0x2d')]({'where':{'type':_0x1a3e('0x2e')},'attributes':['id'],'include':[{'model':_0x587a2a[_0x1a3e('0x2f')],'as':_0x1a3e('0x34'),'where':{'id':_0x26e4a9['ListId']}}]})[_0x1a3e('0x17')](function(_0x492397){if(_0x492397){var _0x101e5b=[];for(var _0x575d40=0x0,_0x9c6273;_0x575d40<_0x492397[_0x1a3e('0x31')];_0x575d40+=0x1){_0x9c6273=_0x492397[_0x575d40]['get']({'plain':!![]});_0x587a2a[_0x1a3e('0x35')]['create']({'phone':_0x26e4a9[_0x1a3e('0xb')],'ContactId':_0x26e4a9['id'],'ListId':_0x26e4a9[_0x1a3e('0x1b')],'VoiceQueueId':_0x9c6273['id']})[_0x1a3e('0x21')](function(_0x4c3641){logger[_0x1a3e('0x27')](_0x1a3e('0x36'),'afterCreate',_0x4c3641[_0x1a3e('0x37')]);});}}});})['then'](function(){return _0x587a2a[_0x1a3e('0x38')][_0x1a3e('0x2d')]({'attributes':['id',_0x1a3e('0x39')],'include':[{'model':_0x587a2a[_0x1a3e('0x2f')],'as':'Lists','where':{'id':_0x26e4a9['ListId']}}]})[_0x1a3e('0x17')](function(_0x4e1f79){if(_0x4e1f79){var _0x2694ee=[];for(var _0x5db6a1=0x0,_0x40d647;_0x5db6a1<_0x4e1f79[_0x1a3e('0x31')];_0x5db6a1+=0x1){_0x40d647=_0x4e1f79[_0x5db6a1][_0x1a3e('0x13')]({'plain':!![]});switch(_0x40d647[_0x1a3e('0x39')]){case'always':_0x544976(_0x40d647)[_0x1a3e('0x21')](_0x4b5a2e());break;case _0x1a3e('0x32'):_0x3072d6(_0x40d647)[_0x1a3e('0x21')](_0x4b5a2e());break;default:_0x587a2a[_0x1a3e('0x16')][_0x1a3e('0x26')]({'phone':_0x26e4a9[_0x1a3e('0xb')],'ContactId':_0x26e4a9['id'],'ListId':_0x26e4a9[_0x1a3e('0x1b')],'scheduledat':_0x26e4a9[_0x1a3e('0x1d')]?_0x26e4a9[_0x1a3e('0x1d')]:moment()[_0x1a3e('0x1e')](_0x1a3e('0x1f')),'priority':_0x26e4a9[_0x1a3e('0x1c')]?_0x26e4a9[_0x1a3e('0x1c')]:0x2,'callback':_0x26e4a9['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x26e4a9[_0x1a3e('0x20')]?_0x26e4a9[_0x1a3e('0x20')]:undefined,'callbackat':_0x26e4a9[_0x1a3e('0x20')]?moment()[_0x1a3e('0x1e')](_0x1a3e('0x1f')):undefined,'CampaignId':_0x40d647['id']})[_0x1a3e('0x21')](_0x4b5a2e());}}}});})[_0x1a3e('0x17')](function(){return _0x587a2a['Campaign'][_0x1a3e('0x2d')]({'attributes':['id'],'include':[{'model':_0x587a2a[_0x1a3e('0x2f')],'as':_0x1a3e('0x34'),'where':{'id':_0x26e4a9[_0x1a3e('0x1b')]}}]})[_0x1a3e('0x17')](function(_0x20dc38){if(_0x20dc38){var _0x3b314e=[];for(var _0x10e234=0x0,_0x24e28b;_0x10e234<_0x20dc38[_0x1a3e('0x31')];_0x10e234+=0x1){_0x24e28b=_0x20dc38[_0x10e234][_0x1a3e('0x13')]({'plain':!![]});_0x587a2a[_0x1a3e('0x35')][_0x1a3e('0x26')]({'phone':_0x26e4a9[_0x1a3e('0xb')],'ContactId':_0x26e4a9['id'],'ListId':_0x26e4a9[_0x1a3e('0x1b')],'CampaignId':_0x24e28b['id']})[_0x1a3e('0x21')](function(_0x1bca17){logger[_0x1a3e('0x27')](_0x1a3e('0x36'),_0x1a3e('0x28'),_0x1bca17['message']);});}}});})[_0x1a3e('0x17')](function(){_0x3dea34();})[_0x1a3e('0x21')](function(_0x5422b1){logger['error'](_0x1a3e('0x36'),'afterCreate',_0x5422b1[_0x1a3e('0x37')]);_0x3dea34(_0x5422b1);});}else{_0x3dea34(new Error(_0x1a3e('0x3a')));}},'afterDestroy':function(_0x332744,_0x481000,_0x198181){var _0x33049a=_0x4cbdc5[_0x1a3e('0x3b')];var _0xa5816e=_0x332744[_0x1a3e('0x13')]({'plain':!![]});return _0x33049a[_0x1a3e('0x16')][_0x1a3e('0x2d')]({'raw':!![],'where':{'ListId':_0xa5816e['ListId'],'ContactId':_0xa5816e['id']}})[_0x1a3e('0x17')](function(_0x53b11e){if(!_['isEmpty'](_0x53b11e)){var _0x80e4e0=[];for(var _0x3d7281=0x0;_0x3d7281<_0x53b11e[_0x1a3e('0x31')];_0x3d7281+=0x1){var _0x4faa91=_0x33049a[_0x1a3e('0x16')][_0x1a3e('0x3c')]({'where':{'ListId':_0x53b11e[_0x3d7281][_0x1a3e('0x1b')],'ContactId':_0x53b11e[_0x3d7281][_0x1a3e('0x3d')],'VoiceQueueId':_0x53b11e[_0x3d7281]['VoiceQueueId'],'CampaignId':_0x53b11e[_0x3d7281][_0x1a3e('0x3e')]}});_0x80e4e0['push'](_0x4faa91);}return BPromise[_0x1a3e('0x3f')](_0x80e4e0);}})['then'](function(_0x59f831){logger[_0x1a3e('0x40')]('[CmContact][afterDestroy][Succesfull]',util[_0x1a3e('0x15')](_0x59f831,{'showHidden':![],'depth':null}));_0x198181();})[_0x1a3e('0x21')](function(_0x9389a9){logger[_0x1a3e('0x27')](_0x1a3e('0x41'),util[_0x1a3e('0x15')](_0x9389a9,{'showHidden':![],'depth':null}));_0x198181(_0x9389a9);});}}});};