Built motion from commit (unavailable).|2.5.3
[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 _0x2547=['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','cmContact','\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','VoiceQueue','findAll','outbound','Lists','dialCheckDuplicateType','always','onlyIfOpen','CmList','CmHopperBlack','message','Campaign','BlackLists','length','cmContact,\x20%s,\x20%s','ContactId','VoiceQueueId','CampaignId','push','all','info','[CmContact][afterDestroy][Succesfull]','inspect','[CmContact][afterDestroy][Error]','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./cmContact.attributes','exports','CmContact','cm_contacts','phone','models','get','error','afterCreate','CmHopper','findOne','then','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create','ListId','priority','scheduledat'];(function(_0x3ec110,_0x437fa6){var _0x1c510c=function(_0xdb0f81){while(--_0xdb0f81){_0x3ec110['push'](_0x3ec110['shift']());}};_0x1c510c(++_0x437fa6);}(_0x2547,0x1cd));var _0x7254=function(_0x2de4ca,_0x477f72){_0x2de4ca=_0x2de4ca-0x0;var _0x509ce6=_0x2547[_0x2de4ca];return _0x509ce6;};'use strict';var _=require('lodash');var util=require(_0x7254('0x0'));var logger=require(_0x7254('0x1'))(_0x7254('0x2'));var moment=require(_0x7254('0x3'));var BPromise=require(_0x7254('0x4'));var rp=require(_0x7254('0x5'));var fs=require('fs');var path=require(_0x7254('0x6'));var rimraf=require(_0x7254('0x7'));var config=require('../../config/environment');var attributes=require(_0x7254('0x8'));module[_0x7254('0x9')]=function(_0x67f427,_0x119f66){return _0x67f427['define'](_0x7254('0xa'),attributes,{'tableName':_0x7254('0xb'),'paranoid':!![],'indexes':[{'name':_0x7254('0xc'),'fields':['phone']}],'timestamps':!![],'hooks':{'afterCreate':function(_0x2a2f82,_0x555b2e,_0x50925f){var _0x51a750=_0x67f427[_0x7254('0xd')];var _0x30086e=_0x2a2f82[_0x7254('0xe')]({'plain':!![]});function _0x310c21(){return function(_0x6828b6){logger[_0x7254('0xf')]('cmContact',_0x7254('0x10'),util['inspect'](_0x6828b6,{'showHidden':![],'depth':null}));};}var _0x1be372=function(_0x53fc4f){return new BPromise(function(_0x16c08e,_0x2bfff8){_0x51a750[_0x7254('0x11')][_0x7254('0x12')]({'where':{'phone':_0x30086e[_0x7254('0xc')],'VoiceQueueId':_0x53fc4f['id']}})[_0x7254('0x13')](function(_0x124192){if(!_[_0x7254('0x14')](_0x124192)){throw new Error(_0x7254('0x15')+_0x30086e[_0x7254('0xc')]+_0x7254('0x16')+_0x53fc4f['id']);}return _0x51a750[_0x7254('0x11')][_0x7254('0x17')]({'phone':_0x30086e['phone'],'ContactId':_0x30086e['id'],'ListId':_0x30086e[_0x7254('0x18')],'priority':_0x30086e[_0x7254('0x19')]?_0x30086e[_0x7254('0x19')]:0x2,'scheduledat':_0x30086e[_0x7254('0x1a')]?_0x30086e[_0x7254('0x1a')]:moment()[_0x7254('0x1b')](_0x7254('0x1c')),'callback':_0x30086e['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x30086e[_0x7254('0x1d')]?_0x30086e[_0x7254('0x1d')]:undefined,'callbackat':_0x30086e[_0x7254('0x1d')]?moment()[_0x7254('0x1b')](_0x7254('0x1c')):undefined,'VoiceQueueId':_0x53fc4f['id']});})[_0x7254('0x1e')](function(_0x3e3856){_0x2bfff8(_0x3e3856);});});};var _0x43b152=function(_0x5a37f7){return new BPromise(function(_0x3b6cb6,_0x2594b8){_0x51a750[_0x7254('0x11')][_0x7254('0x12')]({'where':{'phone':_0x30086e[_0x7254('0xc')],'VoiceQueueId':_0x5a37f7['id']}})[_0x7254('0x13')](function(_0x95ceaa){if(!_[_0x7254('0x14')](_0x95ceaa)){throw new Error(_0x7254('0x15')+_0x30086e[_0x7254('0xc')]+_0x7254('0x1f')+_0x5a37f7['id']);}return _0x51a750[_0x7254('0x20')]['findOne']({'where':{'calleridnum':_0x30086e['phone'],'VoiceQueueId':_0x5a37f7['id']}});})[_0x7254('0x13')](function(_0xd91c1f){if(!_[_0x7254('0x14')](_0xd91c1f)){throw new Error(_0x7254('0x21')+_0x30086e[_0x7254('0xc')]+_0x7254('0x22')+_0x5a37f7['id']);}return _0x51a750[_0x7254('0x11')]['create']({'phone':_0x30086e[_0x7254('0xc')],'ContactId':_0x30086e['id'],'ListId':_0x30086e[_0x7254('0x18')],'priority':_0x30086e[_0x7254('0x19')]?_0x30086e['priority']:0x2,'scheduledat':_0x30086e[_0x7254('0x1a')]?_0x30086e['scheduledat']:moment()[_0x7254('0x1b')](_0x7254('0x1c')),'callback':_0x30086e['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x30086e[_0x7254('0x1d')]?_0x30086e[_0x7254('0x1d')]:undefined,'callbackat':_0x30086e['callbackUniqueid']?moment()[_0x7254('0x1b')](_0x7254('0x1c')):undefined,'VoiceQueueId':_0x5a37f7['id']});})[_0x7254('0x1e')](function(_0xb9198b){_0x2594b8(_0xb9198b);});});};function _0x43bf02(){return function(_0xfe02ea){logger['error'](_0x7254('0x23'),_0x7254('0x10'),util['inspect'](_0xfe02ea,{'showHidden':![],'depth':null}));};}var _0x2f75ea=function(_0x1279cd){return new BPromise(function(_0x2be5fc,_0x4d9ea9){_0x51a750[_0x7254('0x11')][_0x7254('0x12')]({'where':{'phone':_0x30086e[_0x7254('0xc')],'CampaignId':_0x1279cd['id']}})[_0x7254('0x13')](function(_0x40a137){if(!_[_0x7254('0x14')](_0x40a137)){throw new Error(_0x7254('0x15')+_0x30086e['phone']+_0x7254('0x24')+_0x1279cd['id']);}return _0x51a750['CmHopper']['create']({'phone':_0x30086e[_0x7254('0xc')],'ContactId':_0x30086e['id'],'ListId':_0x30086e[_0x7254('0x18')],'priority':_0x30086e[_0x7254('0x19')]?_0x30086e[_0x7254('0x19')]:0x2,'scheduledat':_0x30086e[_0x7254('0x1a')]?_0x30086e[_0x7254('0x1a')]:moment()[_0x7254('0x1b')](_0x7254('0x1c')),'callback':_0x30086e[_0x7254('0x1d')]?!![]:![],'callbackuniqueid':_0x30086e[_0x7254('0x1d')]?_0x30086e[_0x7254('0x1d')]:undefined,'callbackat':_0x30086e[_0x7254('0x1d')]?moment()[_0x7254('0x1b')](_0x7254('0x1c')):undefined,'CampaignId':_0x1279cd['id']});})['catch'](function(_0x1fd417){_0x4d9ea9(_0x1fd417);});});};var _0x359aaa=function(_0x2ea976){return new BPromise(function(_0x3a6cf7,_0x92b0e3){_0x51a750['CmHopper'][_0x7254('0x12')]({'where':{'phone':_0x30086e['phone'],'CampaignId':_0x2ea976['id']}})[_0x7254('0x13')](function(_0xb7716a){if(!_[_0x7254('0x14')](_0xb7716a)){throw new Error(_0x7254('0x15')+_0x30086e[_0x7254('0xc')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x2ea976['id']);}return _0x51a750[_0x7254('0x20')]['findOne']({'where':{'calleridnum':_0x30086e[_0x7254('0xc')],'CampaignId':_0x2ea976['id']}});})[_0x7254('0x13')](function(_0x49ea48){if(!_[_0x7254('0x14')](_0x49ea48)){throw new Error(_0x7254('0x21')+_0x30086e[_0x7254('0xc')]+_0x7254('0x25')+_0x2ea976['id']);}return _0x51a750[_0x7254('0x11')][_0x7254('0x17')]({'phone':_0x30086e['phone'],'ContactId':_0x30086e['id'],'ListId':_0x30086e[_0x7254('0x18')],'priority':_0x30086e[_0x7254('0x19')]?_0x30086e[_0x7254('0x19')]:0x2,'scheduledat':_0x30086e['scheduledat']?_0x30086e[_0x7254('0x1a')]:moment()[_0x7254('0x1b')](_0x7254('0x1c')),'callback':_0x30086e['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x30086e[_0x7254('0x1d')]?_0x30086e[_0x7254('0x1d')]:undefined,'callbackat':_0x30086e[_0x7254('0x1d')]?moment()[_0x7254('0x1b')](_0x7254('0x1c')):undefined,'CampaignId':_0x2ea976['id']});})['catch'](function(_0x4e442f){_0x92b0e3(_0x4e442f);});});};if(_0x30086e[_0x7254('0x18')]){_0x51a750[_0x7254('0x26')][_0x7254('0x27')]({'where':{'type':_0x7254('0x28')},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0x51a750['CmList'],'as':_0x7254('0x29'),'where':{'id':_0x30086e['ListId']}}]})[_0x7254('0x13')](function(_0x3187b0){if(_0x3187b0){var _0x106fb0=[];for(var _0xe8c0c1=0x0,_0x5e75e9;_0xe8c0c1<_0x3187b0['length'];_0xe8c0c1+=0x1){_0x5e75e9=_0x3187b0[_0xe8c0c1][_0x7254('0xe')]({'plain':!![]});switch(_0x5e75e9[_0x7254('0x2a')]){case _0x7254('0x2b'):_0x43b152(_0x5e75e9)[_0x7254('0x1e')](_0x310c21());break;case _0x7254('0x2c'):_0x1be372(_0x5e75e9)['catch'](_0x310c21());break;default:_0x51a750['CmHopper'][_0x7254('0x17')]({'phone':_0x30086e[_0x7254('0xc')],'ContactId':_0x30086e['id'],'ListId':_0x30086e[_0x7254('0x18')],'scheduledat':_0x30086e['scheduledat']?_0x30086e[_0x7254('0x1a')]:moment()[_0x7254('0x1b')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x30086e[_0x7254('0x19')]?_0x30086e[_0x7254('0x19')]:0x2,'callback':_0x30086e[_0x7254('0x1d')]?!![]:![],'callbackuniqueid':_0x30086e[_0x7254('0x1d')]?_0x30086e['callbackUniqueid']:undefined,'callbackat':_0x30086e[_0x7254('0x1d')]?moment()[_0x7254('0x1b')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x5e75e9['id']})[_0x7254('0x1e')](_0x310c21());}}}})[_0x7254('0x13')](function(){return _0x51a750[_0x7254('0x26')]['findAll']({'where':{'type':_0x7254('0x28')},'attributes':['id'],'include':[{'model':_0x51a750[_0x7254('0x2d')],'as':'BlackLists','where':{'id':_0x30086e['ListId']}}]})[_0x7254('0x13')](function(_0x54c792){if(_0x54c792){var _0x2e437c=[];for(var _0x2aca51=0x0,_0x5c4d0b;_0x2aca51<_0x54c792['length'];_0x2aca51+=0x1){_0x5c4d0b=_0x54c792[_0x2aca51][_0x7254('0xe')]({'plain':!![]});_0x51a750[_0x7254('0x2e')][_0x7254('0x17')]({'phone':_0x30086e[_0x7254('0xc')],'ContactId':_0x30086e['id'],'ListId':_0x30086e[_0x7254('0x18')],'VoiceQueueId':_0x5c4d0b['id']})[_0x7254('0x1e')](function(_0x4fe2ae){logger[_0x7254('0xf')]('cmContact,\x20%s,\x20%s',_0x7254('0x10'),_0x4fe2ae[_0x7254('0x2f')]);});}}});})[_0x7254('0x13')](function(){return _0x51a750['Campaign'][_0x7254('0x27')]({'attributes':['id',_0x7254('0x2a')],'include':[{'model':_0x51a750[_0x7254('0x2d')],'as':'Lists','where':{'id':_0x30086e[_0x7254('0x18')]}}]})[_0x7254('0x13')](function(_0x38e296){if(_0x38e296){var _0x385b0f=[];for(var _0x9c1c1=0x0,_0x4e1e38;_0x9c1c1<_0x38e296['length'];_0x9c1c1+=0x1){_0x4e1e38=_0x38e296[_0x9c1c1][_0x7254('0xe')]({'plain':!![]});switch(_0x4e1e38[_0x7254('0x2a')]){case _0x7254('0x2b'):_0x359aaa(_0x4e1e38)[_0x7254('0x1e')](_0x43bf02());break;case _0x7254('0x2c'):_0x2f75ea(_0x4e1e38)['catch'](_0x43bf02());break;default:_0x51a750['CmHopper'][_0x7254('0x17')]({'phone':_0x30086e[_0x7254('0xc')],'ContactId':_0x30086e['id'],'ListId':_0x30086e[_0x7254('0x18')],'scheduledat':_0x30086e[_0x7254('0x1a')]?_0x30086e['scheduledat']:moment()[_0x7254('0x1b')](_0x7254('0x1c')),'priority':_0x30086e['priority']?_0x30086e[_0x7254('0x19')]:0x2,'callback':_0x30086e['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x30086e[_0x7254('0x1d')]?_0x30086e['callbackUniqueid']:undefined,'callbackat':_0x30086e[_0x7254('0x1d')]?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x4e1e38['id']})[_0x7254('0x1e')](_0x43bf02());}}}});})[_0x7254('0x13')](function(){return _0x51a750[_0x7254('0x30')][_0x7254('0x27')]({'attributes':['id'],'include':[{'model':_0x51a750['CmList'],'as':_0x7254('0x31'),'where':{'id':_0x30086e['ListId']}}]})[_0x7254('0x13')](function(_0x7e26af){if(_0x7e26af){var _0x3145c2=[];for(var _0x25cb48=0x0,_0x1bb429;_0x25cb48<_0x7e26af[_0x7254('0x32')];_0x25cb48+=0x1){_0x1bb429=_0x7e26af[_0x25cb48]['get']({'plain':!![]});_0x51a750[_0x7254('0x2e')][_0x7254('0x17')]({'phone':_0x30086e[_0x7254('0xc')],'ContactId':_0x30086e['id'],'ListId':_0x30086e[_0x7254('0x18')],'CampaignId':_0x1bb429['id']})[_0x7254('0x1e')](function(_0x3c387a){logger['error'](_0x7254('0x33'),_0x7254('0x10'),_0x3c387a[_0x7254('0x2f')]);});}}});})[_0x7254('0x13')](function(){_0x50925f();})[_0x7254('0x1e')](function(_0x2396ce){logger[_0x7254('0xf')]('cmContact,\x20%s,\x20%s','afterCreate',_0x2396ce[_0x7254('0x2f')]);_0x50925f(_0x2396ce);});}else{_0x50925f(new Error('List\x20not\x20found'));}},'afterDestroy':function(_0x4b8837,_0xbd4dbf,_0xbddcbb){var _0x3d4dd0=_0x67f427['models'];var _0x1821f0=_0x4b8837['get']({'plain':!![]});return _0x3d4dd0[_0x7254('0x11')][_0x7254('0x27')]({'raw':!![],'where':{'ListId':_0x1821f0[_0x7254('0x18')],'ContactId':_0x1821f0['id']}})[_0x7254('0x13')](function(_0xb8ac1f){if(!_['isEmpty'](_0xb8ac1f)){var _0x35882b=[];for(var _0x3ab117=0x0;_0x3ab117<_0xb8ac1f[_0x7254('0x32')];_0x3ab117+=0x1){var _0x638790=_0x3d4dd0['CmHopper']['destroy']({'where':{'ListId':_0xb8ac1f[_0x3ab117][_0x7254('0x18')],'ContactId':_0xb8ac1f[_0x3ab117][_0x7254('0x34')],'VoiceQueueId':_0xb8ac1f[_0x3ab117][_0x7254('0x35')],'CampaignId':_0xb8ac1f[_0x3ab117][_0x7254('0x36')]}});_0x35882b[_0x7254('0x37')](_0x638790);}return BPromise[_0x7254('0x38')](_0x35882b);}})[_0x7254('0x13')](function(_0x38cba1){logger[_0x7254('0x39')](_0x7254('0x3a'),util[_0x7254('0x3b')](_0x38cba1,{'showHidden':![],'depth':null}));_0xbddcbb();})[_0x7254('0x1e')](function(_0xf924a3){logger['error'](_0x7254('0x3c'),util[_0x7254('0x3b')](_0xf924a3,{'showHidden':![],'depth':null}));_0xbddcbb(_0xf924a3);});}}});};