ee93160cb2fd99143bc773de0c3a3467cc7051c4
[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 _0x8c2d=['get','always','onlyIfOpen','VoiceQueue','BlackLists','cmContact,\x20%s,\x20%s','message','Campaign','CmHopperBlack','ContactId','VoiceQueueId','CampaignId','push','all','info','[CmContact][afterDestroy][Succesfull]','inspect','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','api','moment','bluebird','request-promise','rimraf','./cmContact.attributes','CmContact','phone','firstName','lastName','email','FULLTEXT','utf8mb4','utf8mb4_unicode_ci','models','error','cmContact','afterCreate','CmHopper','findOne','then','isNil','create','ListId','priority','scheduledat','format','callbackUniqueid','YYYY-MM-DD\x20HH:mm:ss','catch','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopperFinal','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','findAll','outbound','dialCheckDuplicateType','CmList','Lists','length'];(function(_0x3f4363,_0x113f04){var _0xdef79d=function(_0x5b93d9){while(--_0x5b93d9){_0x3f4363['push'](_0x3f4363['shift']());}};_0xdef79d(++_0x113f04);}(_0x8c2d,0x1cb));var _0xd8c2=function(_0x227c55,_0x49db56){_0x227c55=_0x227c55-0x0;var _0x49e02b=_0x8c2d[_0x227c55];return _0x49e02b;};'use strict';var _=require(_0xd8c2('0x0'));var util=require(_0xd8c2('0x1'));var logger=require(_0xd8c2('0x2'))(_0xd8c2('0x3'));var moment=require(_0xd8c2('0x4'));var BPromise=require(_0xd8c2('0x5'));var rp=require(_0xd8c2('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0xd8c2('0x7'));var config=require('../../config/environment');var attributes=require(_0xd8c2('0x8'));module['exports']=function(_0xa26ebd,_0x3fcd6b){return _0xa26ebd['define'](_0xd8c2('0x9'),attributes,{'tableName':'cm_contacts','paranoid':!![],'indexes':[{'name':_0xd8c2('0xa'),'fields':[_0xd8c2('0xa')]},{'name':'fti_cm_contacts','fields':[_0xd8c2('0xb'),_0xd8c2('0xc'),'phone','mobile','fax',_0xd8c2('0xd')],'type':_0xd8c2('0xe')}],'timestamps':!![],'charset':_0xd8c2('0xf'),'collate':_0xd8c2('0x10'),'hooks':{'afterCreate':function(_0x125145,_0x6077ff,_0x1efa3e){var _0x177109=_0xa26ebd[_0xd8c2('0x11')];var _0x7b7b70=_0x125145['get']({'plain':!![]});function _0x2f3dc2(){return function(_0x22da7b){logger[_0xd8c2('0x12')](_0xd8c2('0x13'),_0xd8c2('0x14'),util['inspect'](_0x22da7b,{'showHidden':![],'depth':null}));};}var _0x8d2527=function(_0x590b38){return new BPromise(function(_0x2cc9d4,_0x1fdf7a){_0x177109[_0xd8c2('0x15')][_0xd8c2('0x16')]({'where':{'phone':_0x7b7b70['phone'],'VoiceQueueId':_0x590b38['id']}})[_0xd8c2('0x17')](function(_0x145014){if(!_[_0xd8c2('0x18')](_0x145014)){throw new Error('cmContact,\x20afterCreate\x20'+_0x7b7b70[_0xd8c2('0xa')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x590b38['id']);}return _0x177109['CmHopper'][_0xd8c2('0x19')]({'phone':_0x7b7b70[_0xd8c2('0xa')],'ContactId':_0x7b7b70['id'],'ListId':_0x7b7b70[_0xd8c2('0x1a')],'priority':_0x7b7b70[_0xd8c2('0x1b')]?_0x7b7b70[_0xd8c2('0x1b')]:0x2,'scheduledat':_0x7b7b70[_0xd8c2('0x1c')]?_0x7b7b70[_0xd8c2('0x1c')]:moment()[_0xd8c2('0x1d')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x7b7b70[_0xd8c2('0x1e')]?!![]:![],'callbackuniqueid':_0x7b7b70[_0xd8c2('0x1e')]?_0x7b7b70[_0xd8c2('0x1e')]:undefined,'callbackat':_0x7b7b70[_0xd8c2('0x1e')]?moment()['format'](_0xd8c2('0x1f')):undefined,'VoiceQueueId':_0x590b38['id']});})[_0xd8c2('0x20')](function(_0x75ba41){_0x1fdf7a(_0x75ba41);});});};var _0x55bd29=function(_0x30e91f){return new BPromise(function(_0x11ed41,_0x460506){_0x177109[_0xd8c2('0x15')][_0xd8c2('0x16')]({'where':{'phone':_0x7b7b70[_0xd8c2('0xa')],'VoiceQueueId':_0x30e91f['id']}})[_0xd8c2('0x17')](function(_0x577c08){if(!_[_0xd8c2('0x18')](_0x577c08)){throw new Error(_0xd8c2('0x21')+_0x7b7b70[_0xd8c2('0xa')]+_0xd8c2('0x22')+_0x30e91f['id']);}return _0x177109[_0xd8c2('0x23')][_0xd8c2('0x16')]({'where':{'calleridnum':_0x7b7b70[_0xd8c2('0xa')],'VoiceQueueId':_0x30e91f['id']}});})[_0xd8c2('0x17')](function(_0x497cdf){if(!_['isNil'](_0x497cdf)){throw new Error(_0xd8c2('0x24')+_0x7b7b70[_0xd8c2('0xa')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20'+_0x30e91f['id']);}return _0x177109[_0xd8c2('0x15')][_0xd8c2('0x19')]({'phone':_0x7b7b70[_0xd8c2('0xa')],'ContactId':_0x7b7b70['id'],'ListId':_0x7b7b70['ListId'],'priority':_0x7b7b70[_0xd8c2('0x1b')]?_0x7b7b70[_0xd8c2('0x1b')]:0x2,'scheduledat':_0x7b7b70[_0xd8c2('0x1c')]?_0x7b7b70[_0xd8c2('0x1c')]:moment()[_0xd8c2('0x1d')](_0xd8c2('0x1f')),'callback':_0x7b7b70[_0xd8c2('0x1e')]?!![]:![],'callbackuniqueid':_0x7b7b70[_0xd8c2('0x1e')]?_0x7b7b70[_0xd8c2('0x1e')]:undefined,'callbackat':_0x7b7b70[_0xd8c2('0x1e')]?moment()[_0xd8c2('0x1d')](_0xd8c2('0x1f')):undefined,'VoiceQueueId':_0x30e91f['id']});})[_0xd8c2('0x20')](function(_0x26416b){_0x460506(_0x26416b);});});};function _0x4ec865(){return function(_0x5a3018){logger['error'](_0xd8c2('0x13'),_0xd8c2('0x14'),util['inspect'](_0x5a3018,{'showHidden':![],'depth':null}));};}var _0x20d30e=function(_0x579d20){return new BPromise(function(_0x572366,_0x1063d4){_0x177109[_0xd8c2('0x15')][_0xd8c2('0x16')]({'where':{'phone':_0x7b7b70[_0xd8c2('0xa')],'CampaignId':_0x579d20['id']}})[_0xd8c2('0x17')](function(_0x16723c){if(!_[_0xd8c2('0x18')](_0x16723c)){throw new Error('cmContact,\x20afterCreate\x20'+_0x7b7b70[_0xd8c2('0xa')]+_0xd8c2('0x25')+_0x579d20['id']);}return _0x177109['CmHopper'][_0xd8c2('0x19')]({'phone':_0x7b7b70['phone'],'ContactId':_0x7b7b70['id'],'ListId':_0x7b7b70[_0xd8c2('0x1a')],'priority':_0x7b7b70[_0xd8c2('0x1b')]?_0x7b7b70[_0xd8c2('0x1b')]:0x2,'scheduledat':_0x7b7b70[_0xd8c2('0x1c')]?_0x7b7b70[_0xd8c2('0x1c')]:moment()[_0xd8c2('0x1d')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x7b7b70[_0xd8c2('0x1e')]?!![]:![],'callbackuniqueid':_0x7b7b70[_0xd8c2('0x1e')]?_0x7b7b70[_0xd8c2('0x1e')]:undefined,'callbackat':_0x7b7b70[_0xd8c2('0x1e')]?moment()[_0xd8c2('0x1d')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x579d20['id']});})[_0xd8c2('0x20')](function(_0x2a8d93){_0x1063d4(_0x2a8d93);});});};var _0x3c8992=function(_0x5c8568){return new BPromise(function(_0xe80fab,_0x173a25){_0x177109['CmHopper'][_0xd8c2('0x16')]({'where':{'phone':_0x7b7b70['phone'],'CampaignId':_0x5c8568['id']}})[_0xd8c2('0x17')](function(_0x49cda8){if(!_['isNil'](_0x49cda8)){throw new Error(_0xd8c2('0x21')+_0x7b7b70[_0xd8c2('0xa')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x5c8568['id']);}return _0x177109['CmHopperFinal']['findOne']({'where':{'calleridnum':_0x7b7b70[_0xd8c2('0xa')],'CampaignId':_0x5c8568['id']}});})[_0xd8c2('0x17')](function(_0x2d0391){if(!_[_0xd8c2('0x18')](_0x2d0391)){throw new Error(_0xd8c2('0x24')+_0x7b7b70[_0xd8c2('0xa')]+_0xd8c2('0x26')+_0x5c8568['id']);}return _0x177109['CmHopper'][_0xd8c2('0x19')]({'phone':_0x7b7b70[_0xd8c2('0xa')],'ContactId':_0x7b7b70['id'],'ListId':_0x7b7b70[_0xd8c2('0x1a')],'priority':_0x7b7b70['priority']?_0x7b7b70['priority']:0x2,'scheduledat':_0x7b7b70[_0xd8c2('0x1c')]?_0x7b7b70[_0xd8c2('0x1c')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x7b7b70[_0xd8c2('0x1e')]?!![]:![],'callbackuniqueid':_0x7b7b70[_0xd8c2('0x1e')]?_0x7b7b70[_0xd8c2('0x1e')]:undefined,'callbackat':_0x7b7b70[_0xd8c2('0x1e')]?moment()[_0xd8c2('0x1d')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x5c8568['id']});})[_0xd8c2('0x20')](function(_0x4e81c1){_0x173a25(_0x4e81c1);});});};if(_0x7b7b70[_0xd8c2('0x1a')]){_0x177109['VoiceQueue'][_0xd8c2('0x27')]({'where':{'type':_0xd8c2('0x28')},'attributes':['id',_0xd8c2('0x29')],'include':[{'model':_0x177109[_0xd8c2('0x2a')],'as':_0xd8c2('0x2b'),'where':{'id':_0x7b7b70[_0xd8c2('0x1a')]}}]})[_0xd8c2('0x17')](function(_0x1b290f){if(_0x1b290f){var _0x5c4fa0=[];for(var _0x3eb7e4=0x0,_0x106103;_0x3eb7e4<_0x1b290f[_0xd8c2('0x2c')];_0x3eb7e4+=0x1){_0x106103=_0x1b290f[_0x3eb7e4][_0xd8c2('0x2d')]({'plain':!![]});switch(_0x106103['dialCheckDuplicateType']){case _0xd8c2('0x2e'):_0x55bd29(_0x106103)[_0xd8c2('0x20')](_0x2f3dc2());break;case _0xd8c2('0x2f'):_0x8d2527(_0x106103)['catch'](_0x2f3dc2());break;default:_0x177109[_0xd8c2('0x15')][_0xd8c2('0x19')]({'phone':_0x7b7b70[_0xd8c2('0xa')],'ContactId':_0x7b7b70['id'],'ListId':_0x7b7b70[_0xd8c2('0x1a')],'scheduledat':_0x7b7b70['scheduledat']?_0x7b7b70[_0xd8c2('0x1c')]:moment()[_0xd8c2('0x1d')](_0xd8c2('0x1f')),'priority':_0x7b7b70[_0xd8c2('0x1b')]?_0x7b7b70[_0xd8c2('0x1b')]:0x2,'callback':_0x7b7b70['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x7b7b70[_0xd8c2('0x1e')]?_0x7b7b70[_0xd8c2('0x1e')]:undefined,'callbackat':_0x7b7b70[_0xd8c2('0x1e')]?moment()['format'](_0xd8c2('0x1f')):undefined,'VoiceQueueId':_0x106103['id']})[_0xd8c2('0x20')](_0x2f3dc2());}}}})[_0xd8c2('0x17')](function(){return _0x177109[_0xd8c2('0x30')][_0xd8c2('0x27')]({'where':{'type':_0xd8c2('0x28')},'attributes':['id'],'include':[{'model':_0x177109[_0xd8c2('0x2a')],'as':_0xd8c2('0x31'),'where':{'id':_0x7b7b70['ListId']}}]})['then'](function(_0x2c09cd){if(_0x2c09cd){var _0x488364=[];for(var _0x42d5df=0x0,_0x5f0896;_0x42d5df<_0x2c09cd[_0xd8c2('0x2c')];_0x42d5df+=0x1){_0x5f0896=_0x2c09cd[_0x42d5df]['get']({'plain':!![]});_0x177109['CmHopperBlack'][_0xd8c2('0x19')]({'phone':_0x7b7b70[_0xd8c2('0xa')],'ContactId':_0x7b7b70['id'],'ListId':_0x7b7b70[_0xd8c2('0x1a')],'VoiceQueueId':_0x5f0896['id']})[_0xd8c2('0x20')](function(_0x4db1ce){logger[_0xd8c2('0x12')](_0xd8c2('0x32'),_0xd8c2('0x14'),_0x4db1ce[_0xd8c2('0x33')]);});}}});})[_0xd8c2('0x17')](function(){return _0x177109[_0xd8c2('0x34')]['findAll']({'attributes':['id',_0xd8c2('0x29')],'include':[{'model':_0x177109[_0xd8c2('0x2a')],'as':_0xd8c2('0x2b'),'where':{'id':_0x7b7b70[_0xd8c2('0x1a')]}}]})['then'](function(_0x361449){if(_0x361449){var _0x53974f=[];for(var _0x2e8cd8=0x0,_0x4babc0;_0x2e8cd8<_0x361449[_0xd8c2('0x2c')];_0x2e8cd8+=0x1){_0x4babc0=_0x361449[_0x2e8cd8]['get']({'plain':!![]});switch(_0x4babc0[_0xd8c2('0x29')]){case'always':_0x3c8992(_0x4babc0)[_0xd8c2('0x20')](_0x4ec865());break;case'onlyIfOpen':_0x20d30e(_0x4babc0)[_0xd8c2('0x20')](_0x4ec865());break;default:_0x177109[_0xd8c2('0x15')][_0xd8c2('0x19')]({'phone':_0x7b7b70[_0xd8c2('0xa')],'ContactId':_0x7b7b70['id'],'ListId':_0x7b7b70[_0xd8c2('0x1a')],'scheduledat':_0x7b7b70[_0xd8c2('0x1c')]?_0x7b7b70['scheduledat']:moment()[_0xd8c2('0x1d')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x7b7b70[_0xd8c2('0x1b')]?_0x7b7b70[_0xd8c2('0x1b')]:0x2,'callback':_0x7b7b70['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x7b7b70[_0xd8c2('0x1e')]?_0x7b7b70['callbackUniqueid']:undefined,'callbackat':_0x7b7b70['callbackUniqueid']?moment()[_0xd8c2('0x1d')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x4babc0['id']})[_0xd8c2('0x20')](_0x4ec865());}}}});})[_0xd8c2('0x17')](function(){return _0x177109[_0xd8c2('0x34')]['findAll']({'attributes':['id'],'include':[{'model':_0x177109[_0xd8c2('0x2a')],'as':_0xd8c2('0x31'),'where':{'id':_0x7b7b70['ListId']}}]})['then'](function(_0x41f5ed){if(_0x41f5ed){var _0x79c920=[];for(var _0x533517=0x0,_0x49e657;_0x533517<_0x41f5ed[_0xd8c2('0x2c')];_0x533517+=0x1){_0x49e657=_0x41f5ed[_0x533517][_0xd8c2('0x2d')]({'plain':!![]});_0x177109[_0xd8c2('0x35')][_0xd8c2('0x19')]({'phone':_0x7b7b70[_0xd8c2('0xa')],'ContactId':_0x7b7b70['id'],'ListId':_0x7b7b70['ListId'],'CampaignId':_0x49e657['id']})['catch'](function(_0x3ab694){logger[_0xd8c2('0x12')](_0xd8c2('0x32'),'afterCreate',_0x3ab694[_0xd8c2('0x33')]);});}}});})[_0xd8c2('0x17')](function(){_0x1efa3e();})[_0xd8c2('0x20')](function(_0x3ff518){logger[_0xd8c2('0x12')](_0xd8c2('0x32'),_0xd8c2('0x14'),_0x3ff518[_0xd8c2('0x33')]);_0x1efa3e(_0x3ff518);});}else{_0x1efa3e(new Error('List\x20not\x20found'));}},'afterDestroy':function(_0x109920,_0x436c14,_0x28f15c){var _0x59c7ef=_0xa26ebd[_0xd8c2('0x11')];var _0x51db75=_0x109920[_0xd8c2('0x2d')]({'plain':!![]});return _0x59c7ef['CmHopper'][_0xd8c2('0x27')]({'raw':!![],'where':{'ListId':_0x51db75[_0xd8c2('0x1a')],'ContactId':_0x51db75['id']}})[_0xd8c2('0x17')](function(_0x2d4fc6){if(!_['isEmpty'](_0x2d4fc6)){var _0x53718f=[];for(var _0x5909fb=0x0;_0x5909fb<_0x2d4fc6[_0xd8c2('0x2c')];_0x5909fb+=0x1){var _0x1edf2d=_0x59c7ef[_0xd8c2('0x15')]['destroy']({'where':{'ListId':_0x2d4fc6[_0x5909fb][_0xd8c2('0x1a')],'ContactId':_0x2d4fc6[_0x5909fb][_0xd8c2('0x36')],'VoiceQueueId':_0x2d4fc6[_0x5909fb][_0xd8c2('0x37')],'CampaignId':_0x2d4fc6[_0x5909fb][_0xd8c2('0x38')]}});_0x53718f[_0xd8c2('0x39')](_0x1edf2d);}return BPromise[_0xd8c2('0x3a')](_0x53718f);}})[_0xd8c2('0x17')](function(_0x11ce0f){logger[_0xd8c2('0x3b')](_0xd8c2('0x3c'),util[_0xd8c2('0x3d')](_0x11ce0f,{'showHidden':![],'depth':null}));_0x28f15c();})['catch'](function(_0x1a2b76){logger[_0xd8c2('0x12')](_0xd8c2('0x3e'),util[_0xd8c2('0x3d')](_0x1a2b76,{'showHidden':![],'depth':null}));_0x28f15c(_0x1a2b76);});}}});};