Built motion from commit (unavailable).|2.5.22
[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 _0x1ab1=['exports','define','CmContact','cm_contacts','phone','fti_cm_contacts','lastName','mobile','fax','email','FULLTEXT','models','error','cmContact','afterCreate','findOne','then','isNil','cmContact,\x20afterCreate\x20','CmHopper','create','ListId','priority','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','catch','CmHopperFinal','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','inspect','\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','VoiceQueue','findAll','outbound','dialCheckDuplicateType','Lists','onlyIfOpen','length','get','CmHopperBlack','cmContact,\x20%s,\x20%s','Campaign','CmList','always','BlackLists','message','List\x20not\x20found','isEmpty','ContactId','VoiceQueueId','all','info','[CmContact][afterDestroy][Error]','lodash','api','path','../../config/environment','./cmContact.attributes'];(function(_0x51a03c,_0x28e37a){var _0x4d9b98=function(_0x3aa944){while(--_0x3aa944){_0x51a03c['push'](_0x51a03c['shift']());}};_0x4d9b98(++_0x28e37a);}(_0x1ab1,0x12c));var _0x11ab=function(_0x5dbc65,_0x27acb2){_0x5dbc65=_0x5dbc65-0x0;var _0x107a6f=_0x1ab1[_0x5dbc65];return _0x107a6f;};'use strict';var _=require(_0x11ab('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x11ab('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x11ab('0x2'));var rimraf=require('rimraf');var config=require(_0x11ab('0x3'));var attributes=require(_0x11ab('0x4'));module[_0x11ab('0x5')]=function(_0x1399f4,_0x5758c5){return _0x1399f4[_0x11ab('0x6')](_0x11ab('0x7'),attributes,{'tableName':_0x11ab('0x8'),'paranoid':!![],'indexes':[{'name':_0x11ab('0x9'),'fields':[_0x11ab('0x9')]},{'name':_0x11ab('0xa'),'fields':['firstName',_0x11ab('0xb'),'phone',_0x11ab('0xc'),_0x11ab('0xd'),_0x11ab('0xe')],'type':_0x11ab('0xf')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x57cb21,_0x1ab643,_0x225793){var _0x410ab0=_0x1399f4[_0x11ab('0x10')];var _0x5e6436=_0x57cb21['get']({'plain':!![]});function _0x45202d(){return function(_0x2d772f){logger[_0x11ab('0x11')](_0x11ab('0x12'),_0x11ab('0x13'),util['inspect'](_0x2d772f,{'showHidden':![],'depth':null}));};}var _0x33b5a8=function(_0x43f5d6){return new BPromise(function(_0x215b33,_0x1d8a39){_0x410ab0['CmHopper'][_0x11ab('0x14')]({'where':{'phone':_0x5e6436[_0x11ab('0x9')],'VoiceQueueId':_0x43f5d6['id']}})[_0x11ab('0x15')](function(_0x223b80){if(!_[_0x11ab('0x16')](_0x223b80)){throw new Error(_0x11ab('0x17')+_0x5e6436[_0x11ab('0x9')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x43f5d6['id']);}return _0x410ab0[_0x11ab('0x18')][_0x11ab('0x19')]({'phone':_0x5e6436[_0x11ab('0x9')],'ContactId':_0x5e6436['id'],'ListId':_0x5e6436[_0x11ab('0x1a')],'priority':_0x5e6436[_0x11ab('0x1b')]?_0x5e6436[_0x11ab('0x1b')]:0x2,'scheduledat':_0x5e6436[_0x11ab('0x1c')]?_0x5e6436['scheduledat']:moment()[_0x11ab('0x1d')](_0x11ab('0x1e')),'callback':_0x5e6436[_0x11ab('0x1f')]?!![]:![],'callbackuniqueid':_0x5e6436[_0x11ab('0x1f')]?_0x5e6436[_0x11ab('0x1f')]:undefined,'callbackat':_0x5e6436['callbackUniqueid']?moment()['format'](_0x11ab('0x1e')):undefined,'VoiceQueueId':_0x43f5d6['id']});})[_0x11ab('0x20')](function(_0x2752d3){_0x1d8a39(_0x2752d3);});});};var _0x27fdfd=function(_0x22b406){return new BPromise(function(_0x333b18,_0x9df86e){_0x410ab0['CmHopper']['findOne']({'where':{'phone':_0x5e6436[_0x11ab('0x9')],'VoiceQueueId':_0x22b406['id']}})[_0x11ab('0x15')](function(_0x1bae08){if(!_[_0x11ab('0x16')](_0x1bae08)){throw new Error(_0x11ab('0x17')+_0x5e6436[_0x11ab('0x9')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x22b406['id']);}return _0x410ab0[_0x11ab('0x21')][_0x11ab('0x14')]({'where':{'calleridnum':_0x5e6436[_0x11ab('0x9')],'VoiceQueueId':_0x22b406['id']}});})[_0x11ab('0x15')](function(_0x3aeaee){if(!_['isNil'](_0x3aeaee)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x5e6436[_0x11ab('0x9')]+_0x11ab('0x22')+_0x22b406['id']);}return _0x410ab0[_0x11ab('0x18')][_0x11ab('0x19')]({'phone':_0x5e6436[_0x11ab('0x9')],'ContactId':_0x5e6436['id'],'ListId':_0x5e6436[_0x11ab('0x1a')],'priority':_0x5e6436[_0x11ab('0x1b')]?_0x5e6436['priority']:0x2,'scheduledat':_0x5e6436[_0x11ab('0x1c')]?_0x5e6436[_0x11ab('0x1c')]:moment()[_0x11ab('0x1d')](_0x11ab('0x1e')),'callback':_0x5e6436[_0x11ab('0x1f')]?!![]:![],'callbackuniqueid':_0x5e6436[_0x11ab('0x1f')]?_0x5e6436[_0x11ab('0x1f')]:undefined,'callbackat':_0x5e6436['callbackUniqueid']?moment()[_0x11ab('0x1d')](_0x11ab('0x1e')):undefined,'VoiceQueueId':_0x22b406['id']});})[_0x11ab('0x20')](function(_0x46fc84){_0x9df86e(_0x46fc84);});});};function _0x224bca(){return function(_0x41ccc1){logger['error'](_0x11ab('0x12'),'afterCreate',util[_0x11ab('0x23')](_0x41ccc1,{'showHidden':![],'depth':null}));};}var _0x2ced09=function(_0x34f805){return new BPromise(function(_0xdc3177,_0x313fc4){_0x410ab0[_0x11ab('0x18')]['findOne']({'where':{'phone':_0x5e6436[_0x11ab('0x9')],'CampaignId':_0x34f805['id']}})[_0x11ab('0x15')](function(_0x5c5832){if(!_[_0x11ab('0x16')](_0x5c5832)){throw new Error(_0x11ab('0x17')+_0x5e6436[_0x11ab('0x9')]+_0x11ab('0x24')+_0x34f805['id']);}return _0x410ab0[_0x11ab('0x18')]['create']({'phone':_0x5e6436[_0x11ab('0x9')],'ContactId':_0x5e6436['id'],'ListId':_0x5e6436[_0x11ab('0x1a')],'priority':_0x5e6436[_0x11ab('0x1b')]?_0x5e6436[_0x11ab('0x1b')]:0x2,'scheduledat':_0x5e6436[_0x11ab('0x1c')]?_0x5e6436[_0x11ab('0x1c')]:moment()[_0x11ab('0x1d')](_0x11ab('0x1e')),'callback':_0x5e6436[_0x11ab('0x1f')]?!![]:![],'callbackuniqueid':_0x5e6436[_0x11ab('0x1f')]?_0x5e6436['callbackUniqueid']:undefined,'callbackat':_0x5e6436[_0x11ab('0x1f')]?moment()['format'](_0x11ab('0x1e')):undefined,'CampaignId':_0x34f805['id']});})[_0x11ab('0x20')](function(_0x5a2956){_0x313fc4(_0x5a2956);});});};var _0x3763c1=function(_0x1c1efc){return new BPromise(function(_0x4b98d8,_0x40a783){_0x410ab0[_0x11ab('0x18')][_0x11ab('0x14')]({'where':{'phone':_0x5e6436[_0x11ab('0x9')],'CampaignId':_0x1c1efc['id']}})[_0x11ab('0x15')](function(_0x354307){if(!_[_0x11ab('0x16')](_0x354307)){throw new Error(_0x11ab('0x17')+_0x5e6436[_0x11ab('0x9')]+_0x11ab('0x25')+_0x1c1efc['id']);}return _0x410ab0['CmHopperFinal'][_0x11ab('0x14')]({'where':{'calleridnum':_0x5e6436[_0x11ab('0x9')],'CampaignId':_0x1c1efc['id']}});})[_0x11ab('0x15')](function(_0x138fbc){if(!_[_0x11ab('0x16')](_0x138fbc)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x5e6436[_0x11ab('0x9')]+_0x11ab('0x26')+_0x1c1efc['id']);}return _0x410ab0['CmHopper']['create']({'phone':_0x5e6436[_0x11ab('0x9')],'ContactId':_0x5e6436['id'],'ListId':_0x5e6436[_0x11ab('0x1a')],'priority':_0x5e6436[_0x11ab('0x1b')]?_0x5e6436['priority']:0x2,'scheduledat':_0x5e6436[_0x11ab('0x1c')]?_0x5e6436['scheduledat']:moment()[_0x11ab('0x1d')](_0x11ab('0x1e')),'callback':_0x5e6436['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x5e6436[_0x11ab('0x1f')]?_0x5e6436[_0x11ab('0x1f')]:undefined,'callbackat':_0x5e6436['callbackUniqueid']?moment()[_0x11ab('0x1d')](_0x11ab('0x1e')):undefined,'CampaignId':_0x1c1efc['id']});})[_0x11ab('0x20')](function(_0x38f585){_0x40a783(_0x38f585);});});};if(_0x5e6436[_0x11ab('0x1a')]){_0x410ab0[_0x11ab('0x27')][_0x11ab('0x28')]({'where':{'type':_0x11ab('0x29')},'attributes':['id',_0x11ab('0x2a')],'include':[{'model':_0x410ab0['CmList'],'as':_0x11ab('0x2b'),'where':{'id':_0x5e6436['ListId']}}]})[_0x11ab('0x15')](function(_0x18c7ad){if(_0x18c7ad){var _0x1a262f=[];for(var _0x31d637=0x0,_0x48d45a;_0x31d637<_0x18c7ad['length'];_0x31d637+=0x1){_0x48d45a=_0x18c7ad[_0x31d637]['get']({'plain':!![]});switch(_0x48d45a[_0x11ab('0x2a')]){case'always':_0x27fdfd(_0x48d45a)['catch'](_0x45202d());break;case _0x11ab('0x2c'):_0x33b5a8(_0x48d45a)[_0x11ab('0x20')](_0x45202d());break;default:_0x410ab0[_0x11ab('0x18')][_0x11ab('0x19')]({'phone':_0x5e6436['phone'],'ContactId':_0x5e6436['id'],'ListId':_0x5e6436['ListId'],'scheduledat':_0x5e6436[_0x11ab('0x1c')]?_0x5e6436[_0x11ab('0x1c')]:moment()[_0x11ab('0x1d')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x5e6436['priority']?_0x5e6436[_0x11ab('0x1b')]:0x2,'callback':_0x5e6436[_0x11ab('0x1f')]?!![]:![],'callbackuniqueid':_0x5e6436[_0x11ab('0x1f')]?_0x5e6436[_0x11ab('0x1f')]:undefined,'callbackat':_0x5e6436['callbackUniqueid']?moment()[_0x11ab('0x1d')](_0x11ab('0x1e')):undefined,'VoiceQueueId':_0x48d45a['id']})[_0x11ab('0x20')](_0x45202d());}}}})['then'](function(){return _0x410ab0['VoiceQueue']['findAll']({'where':{'type':_0x11ab('0x29')},'attributes':['id'],'include':[{'model':_0x410ab0['CmList'],'as':'BlackLists','where':{'id':_0x5e6436[_0x11ab('0x1a')]}}]})[_0x11ab('0x15')](function(_0x1f965e){if(_0x1f965e){var _0xcbe5c7=[];for(var _0x27f875=0x0,_0x51ff46;_0x27f875<_0x1f965e[_0x11ab('0x2d')];_0x27f875+=0x1){_0x51ff46=_0x1f965e[_0x27f875][_0x11ab('0x2e')]({'plain':!![]});_0x410ab0[_0x11ab('0x2f')]['create']({'phone':_0x5e6436[_0x11ab('0x9')],'ContactId':_0x5e6436['id'],'ListId':_0x5e6436[_0x11ab('0x1a')],'VoiceQueueId':_0x51ff46['id']})[_0x11ab('0x20')](function(_0x627714){logger[_0x11ab('0x11')](_0x11ab('0x30'),_0x11ab('0x13'),_0x627714['message']);});}}});})['then'](function(){return _0x410ab0[_0x11ab('0x31')]['findAll']({'attributes':['id',_0x11ab('0x2a')],'include':[{'model':_0x410ab0[_0x11ab('0x32')],'as':'Lists','where':{'id':_0x5e6436[_0x11ab('0x1a')]}}]})[_0x11ab('0x15')](function(_0x2c286e){if(_0x2c286e){var _0x2ed9db=[];for(var _0xc3a3d0=0x0,_0x23d80e;_0xc3a3d0<_0x2c286e[_0x11ab('0x2d')];_0xc3a3d0+=0x1){_0x23d80e=_0x2c286e[_0xc3a3d0][_0x11ab('0x2e')]({'plain':!![]});switch(_0x23d80e[_0x11ab('0x2a')]){case _0x11ab('0x33'):_0x3763c1(_0x23d80e)[_0x11ab('0x20')](_0x224bca());break;case _0x11ab('0x2c'):_0x2ced09(_0x23d80e)['catch'](_0x224bca());break;default:_0x410ab0[_0x11ab('0x18')][_0x11ab('0x19')]({'phone':_0x5e6436[_0x11ab('0x9')],'ContactId':_0x5e6436['id'],'ListId':_0x5e6436[_0x11ab('0x1a')],'scheduledat':_0x5e6436[_0x11ab('0x1c')]?_0x5e6436['scheduledat']:moment()[_0x11ab('0x1d')](_0x11ab('0x1e')),'priority':_0x5e6436[_0x11ab('0x1b')]?_0x5e6436[_0x11ab('0x1b')]:0x2,'callback':_0x5e6436[_0x11ab('0x1f')]?!![]:![],'callbackuniqueid':_0x5e6436[_0x11ab('0x1f')]?_0x5e6436[_0x11ab('0x1f')]:undefined,'callbackat':_0x5e6436[_0x11ab('0x1f')]?moment()[_0x11ab('0x1d')](_0x11ab('0x1e')):undefined,'CampaignId':_0x23d80e['id']})[_0x11ab('0x20')](_0x224bca());}}}});})[_0x11ab('0x15')](function(){return _0x410ab0['Campaign'][_0x11ab('0x28')]({'attributes':['id'],'include':[{'model':_0x410ab0[_0x11ab('0x32')],'as':_0x11ab('0x34'),'where':{'id':_0x5e6436[_0x11ab('0x1a')]}}]})[_0x11ab('0x15')](function(_0x5d8a9d){if(_0x5d8a9d){var _0x14625f=[];for(var _0x36369a=0x0,_0x2b227e;_0x36369a<_0x5d8a9d[_0x11ab('0x2d')];_0x36369a+=0x1){_0x2b227e=_0x5d8a9d[_0x36369a][_0x11ab('0x2e')]({'plain':!![]});_0x410ab0['CmHopperBlack'][_0x11ab('0x19')]({'phone':_0x5e6436['phone'],'ContactId':_0x5e6436['id'],'ListId':_0x5e6436[_0x11ab('0x1a')],'CampaignId':_0x2b227e['id']})[_0x11ab('0x20')](function(_0x3c9337){logger[_0x11ab('0x11')](_0x11ab('0x30'),_0x11ab('0x13'),_0x3c9337[_0x11ab('0x35')]);});}}});})[_0x11ab('0x15')](function(){_0x225793();})[_0x11ab('0x20')](function(_0x42b4a2){logger['error'](_0x11ab('0x30'),_0x11ab('0x13'),_0x42b4a2['message']);_0x225793(_0x42b4a2);});}else{_0x225793(new Error(_0x11ab('0x36')));}},'afterDestroy':function(_0x20cef5,_0x2b7755,_0x2eb9cd){var _0x2c52f1=_0x1399f4[_0x11ab('0x10')];var _0x2c6abe=_0x20cef5[_0x11ab('0x2e')]({'plain':!![]});return _0x2c52f1['CmHopper']['findAll']({'raw':!![],'where':{'ListId':_0x2c6abe[_0x11ab('0x1a')],'ContactId':_0x2c6abe['id']}})['then'](function(_0x4a0010){if(!_[_0x11ab('0x37')](_0x4a0010)){var _0xf7799a=[];for(var _0x5f4cbf=0x0;_0x5f4cbf<_0x4a0010['length'];_0x5f4cbf+=0x1){var _0x2f0daa=_0x2c52f1[_0x11ab('0x18')]['destroy']({'where':{'ListId':_0x4a0010[_0x5f4cbf]['ListId'],'ContactId':_0x4a0010[_0x5f4cbf][_0x11ab('0x38')],'VoiceQueueId':_0x4a0010[_0x5f4cbf][_0x11ab('0x39')],'CampaignId':_0x4a0010[_0x5f4cbf]['CampaignId']}});_0xf7799a['push'](_0x2f0daa);}return BPromise[_0x11ab('0x3a')](_0xf7799a);}})[_0x11ab('0x15')](function(_0x2411e7){logger[_0x11ab('0x3b')]('[CmContact][afterDestroy][Succesfull]',util[_0x11ab('0x23')](_0x2411e7,{'showHidden':![],'depth':null}));_0x2eb9cd();})['catch'](function(_0x2eb9cf){logger[_0x11ab('0x11')](_0x11ab('0x3c'),util[_0x11ab('0x23')](_0x2eb9cf,{'showHidden':![],'depth':null}));_0x2eb9cd(_0x2eb9cf);});}}});};