b616f15e6bf1098177ee20596cde5f03f66f09eb
[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 _0x6cb4=['message','models','isEmpty','ContactId','VoiceQueueId','CampaignId','push','all','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./cmContact.attributes','define','CmContact','cm_contacts','phone','get','error','findOne','then','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopper','create','priority','scheduledat','callbackUniqueid','format','YYYY-MM-DD\x20HH:mm:ss','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','ListId','inspect','\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','outbound','dialCheckDuplicateType','Lists','length','always','onlyIfOpen','findAll','CmList','cmContact,\x20%s,\x20%s','afterCreate','Campaign','CmHopperBlack'];(function(_0x256b67,_0x14e47b){var _0x3e2d99=function(_0x4a4c5f){while(--_0x4a4c5f){_0x256b67['push'](_0x256b67['shift']());}};_0x3e2d99(++_0x14e47b);}(_0x6cb4,0xff));var _0x46cb=function(_0x262ea7,_0x475d76){_0x262ea7=_0x262ea7-0x0;var _0x4abc55=_0x6cb4[_0x262ea7];return _0x4abc55;};'use strict';var _=require(_0x46cb('0x0'));var util=require(_0x46cb('0x1'));var logger=require(_0x46cb('0x2'))(_0x46cb('0x3'));var moment=require(_0x46cb('0x4'));var BPromise=require(_0x46cb('0x5'));var rp=require(_0x46cb('0x6'));var fs=require('fs');var path=require(_0x46cb('0x7'));var rimraf=require(_0x46cb('0x8'));var config=require('../../config/environment');var attributes=require(_0x46cb('0x9'));module['exports']=function(_0x3d9d3c,_0x4d9f1d){return _0x3d9d3c[_0x46cb('0xa')](_0x46cb('0xb'),attributes,{'tableName':_0x46cb('0xc'),'paranoid':!![],'indexes':[{'name':_0x46cb('0xd'),'fields':[_0x46cb('0xd')]}],'timestamps':!![],'hooks':{'afterCreate':function(_0x196a93,_0x56258a,_0x3d7663){var _0x34f9e9=_0x3d9d3c['models'];var _0x206f10=_0x196a93[_0x46cb('0xe')]({'plain':!![]});function _0x4a60b2(){return function(_0x21c79b){logger[_0x46cb('0xf')]('cmContact','afterCreate',util['inspect'](_0x21c79b,{'showHidden':![],'depth':null}));};}var _0x1e5f96=function(_0x323ac2){return new BPromise(function(_0x1058a8,_0xf22158){_0x34f9e9['CmHopper'][_0x46cb('0x10')]({'where':{'phone':_0x206f10[_0x46cb('0xd')],'VoiceQueueId':_0x323ac2['id']}})[_0x46cb('0x11')](function(_0x3c0071){if(!_[_0x46cb('0x12')](_0x3c0071)){throw new Error(_0x46cb('0x13')+_0x206f10[_0x46cb('0xd')]+_0x46cb('0x14')+_0x323ac2['id']);}return _0x34f9e9[_0x46cb('0x15')][_0x46cb('0x16')]({'phone':_0x206f10[_0x46cb('0xd')],'ContactId':_0x206f10['id'],'ListId':_0x206f10['ListId'],'priority':_0x206f10[_0x46cb('0x17')]?_0x206f10['priority']:0x2,'scheduledat':_0x206f10[_0x46cb('0x18')]?_0x206f10['scheduledat']:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x206f10[_0x46cb('0x19')]?!![]:![],'callbackuniqueid':_0x206f10[_0x46cb('0x19')]?_0x206f10[_0x46cb('0x19')]:undefined,'callbackat':_0x206f10[_0x46cb('0x19')]?moment()[_0x46cb('0x1a')](_0x46cb('0x1b')):undefined,'VoiceQueueId':_0x323ac2['id']});})[_0x46cb('0x1c')](function(_0x32e9fe){_0xf22158(_0x32e9fe);});});};var _0x90cd50=function(_0xfc9064){return new BPromise(function(_0x149483,_0x46e541){_0x34f9e9[_0x46cb('0x15')][_0x46cb('0x10')]({'where':{'phone':_0x206f10[_0x46cb('0xd')],'VoiceQueueId':_0xfc9064['id']}})[_0x46cb('0x11')](function(_0x7084b2){if(!_[_0x46cb('0x12')](_0x7084b2)){throw new Error(_0x46cb('0x13')+_0x206f10[_0x46cb('0xd')]+_0x46cb('0x1d')+_0xfc9064['id']);}return _0x34f9e9[_0x46cb('0x1e')][_0x46cb('0x10')]({'where':{'calleridnum':_0x206f10[_0x46cb('0xd')],'VoiceQueueId':_0xfc9064['id']}});})[_0x46cb('0x11')](function(_0x5a1338){if(!_['isNil'](_0x5a1338)){throw new Error(_0x46cb('0x1f')+_0x206f10[_0x46cb('0xd')]+_0x46cb('0x20')+_0xfc9064['id']);}return _0x34f9e9[_0x46cb('0x15')][_0x46cb('0x16')]({'phone':_0x206f10['phone'],'ContactId':_0x206f10['id'],'ListId':_0x206f10[_0x46cb('0x21')],'priority':_0x206f10['priority']?_0x206f10['priority']:0x2,'scheduledat':_0x206f10['scheduledat']?_0x206f10[_0x46cb('0x18')]:moment()[_0x46cb('0x1a')](_0x46cb('0x1b')),'callback':_0x206f10[_0x46cb('0x19')]?!![]:![],'callbackuniqueid':_0x206f10[_0x46cb('0x19')]?_0x206f10[_0x46cb('0x19')]:undefined,'callbackat':_0x206f10[_0x46cb('0x19')]?moment()[_0x46cb('0x1a')](_0x46cb('0x1b')):undefined,'VoiceQueueId':_0xfc9064['id']});})[_0x46cb('0x1c')](function(_0x4620ef){_0x46e541(_0x4620ef);});});};function _0x4a1517(){return function(_0x1ce88f){logger[_0x46cb('0xf')]('cmContact','afterCreate',util[_0x46cb('0x22')](_0x1ce88f,{'showHidden':![],'depth':null}));};}var _0x5cbb22=function(_0x27c22d){return new BPromise(function(_0x6f7953,_0xe7c112){_0x34f9e9[_0x46cb('0x15')][_0x46cb('0x10')]({'where':{'phone':_0x206f10[_0x46cb('0xd')],'CampaignId':_0x27c22d['id']}})['then'](function(_0x2e2d36){if(!_['isNil'](_0x2e2d36)){throw new Error(_0x46cb('0x13')+_0x206f10[_0x46cb('0xd')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x27c22d['id']);}return _0x34f9e9[_0x46cb('0x15')][_0x46cb('0x16')]({'phone':_0x206f10[_0x46cb('0xd')],'ContactId':_0x206f10['id'],'ListId':_0x206f10[_0x46cb('0x21')],'priority':_0x206f10[_0x46cb('0x17')]?_0x206f10['priority']:0x2,'scheduledat':_0x206f10[_0x46cb('0x18')]?_0x206f10['scheduledat']:moment()[_0x46cb('0x1a')](_0x46cb('0x1b')),'callback':_0x206f10[_0x46cb('0x19')]?!![]:![],'callbackuniqueid':_0x206f10['callbackUniqueid']?_0x206f10[_0x46cb('0x19')]:undefined,'callbackat':_0x206f10[_0x46cb('0x19')]?moment()['format'](_0x46cb('0x1b')):undefined,'CampaignId':_0x27c22d['id']});})[_0x46cb('0x1c')](function(_0x3ba467){_0xe7c112(_0x3ba467);});});};var _0x2e0375=function(_0x25be2d){return new BPromise(function(_0x11077c,_0x244084){_0x34f9e9[_0x46cb('0x15')][_0x46cb('0x10')]({'where':{'phone':_0x206f10[_0x46cb('0xd')],'CampaignId':_0x25be2d['id']}})[_0x46cb('0x11')](function(_0x4f0fb6){if(!_['isNil'](_0x4f0fb6)){throw new Error('cmContact,\x20afterCreate\x20'+_0x206f10[_0x46cb('0xd')]+_0x46cb('0x23')+_0x25be2d['id']);}return _0x34f9e9[_0x46cb('0x1e')][_0x46cb('0x10')]({'where':{'calleridnum':_0x206f10[_0x46cb('0xd')],'CampaignId':_0x25be2d['id']}});})[_0x46cb('0x11')](function(_0x56d685){if(!_[_0x46cb('0x12')](_0x56d685)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x206f10['phone']+_0x46cb('0x24')+_0x25be2d['id']);}return _0x34f9e9['CmHopper']['create']({'phone':_0x206f10[_0x46cb('0xd')],'ContactId':_0x206f10['id'],'ListId':_0x206f10['ListId'],'priority':_0x206f10['priority']?_0x206f10[_0x46cb('0x17')]:0x2,'scheduledat':_0x206f10[_0x46cb('0x18')]?_0x206f10[_0x46cb('0x18')]:moment()[_0x46cb('0x1a')](_0x46cb('0x1b')),'callback':_0x206f10[_0x46cb('0x19')]?!![]:![],'callbackuniqueid':_0x206f10[_0x46cb('0x19')]?_0x206f10['callbackUniqueid']:undefined,'callbackat':_0x206f10[_0x46cb('0x19')]?moment()['format'](_0x46cb('0x1b')):undefined,'CampaignId':_0x25be2d['id']});})['catch'](function(_0x19d7ed){_0x244084(_0x19d7ed);});});};if(_0x206f10[_0x46cb('0x21')]){_0x34f9e9[_0x46cb('0x25')]['findAll']({'where':{'type':_0x46cb('0x26')},'attributes':['id',_0x46cb('0x27')],'include':[{'model':_0x34f9e9['CmList'],'as':_0x46cb('0x28'),'where':{'id':_0x206f10[_0x46cb('0x21')]}}]})[_0x46cb('0x11')](function(_0x66e602){if(_0x66e602){var _0x34fbdd=[];for(var _0x524558=0x0,_0x582905;_0x524558<_0x66e602[_0x46cb('0x29')];_0x524558+=0x1){_0x582905=_0x66e602[_0x524558]['get']({'plain':!![]});switch(_0x582905[_0x46cb('0x27')]){case _0x46cb('0x2a'):_0x90cd50(_0x582905)['catch'](_0x4a60b2());break;case _0x46cb('0x2b'):_0x1e5f96(_0x582905)[_0x46cb('0x1c')](_0x4a60b2());break;default:_0x34f9e9[_0x46cb('0x15')]['create']({'phone':_0x206f10['phone'],'ContactId':_0x206f10['id'],'ListId':_0x206f10['ListId'],'scheduledat':_0x206f10['scheduledat']?_0x206f10[_0x46cb('0x18')]:moment()[_0x46cb('0x1a')](_0x46cb('0x1b')),'priority':_0x206f10[_0x46cb('0x17')]?_0x206f10[_0x46cb('0x17')]:0x2,'callback':_0x206f10['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x206f10['callbackUniqueid']?_0x206f10[_0x46cb('0x19')]:undefined,'callbackat':_0x206f10[_0x46cb('0x19')]?moment()['format'](_0x46cb('0x1b')):undefined,'VoiceQueueId':_0x582905['id']})[_0x46cb('0x1c')](_0x4a60b2());}}}})[_0x46cb('0x11')](function(){return _0x34f9e9[_0x46cb('0x25')][_0x46cb('0x2c')]({'where':{'type':_0x46cb('0x26')},'attributes':['id'],'include':[{'model':_0x34f9e9[_0x46cb('0x2d')],'as':'BlackLists','where':{'id':_0x206f10['ListId']}}]})[_0x46cb('0x11')](function(_0x52ed52){if(_0x52ed52){var _0x2c4ecb=[];for(var _0x44989a=0x0,_0x1e3f80;_0x44989a<_0x52ed52['length'];_0x44989a+=0x1){_0x1e3f80=_0x52ed52[_0x44989a][_0x46cb('0xe')]({'plain':!![]});_0x34f9e9['CmHopperBlack']['create']({'phone':_0x206f10[_0x46cb('0xd')],'ContactId':_0x206f10['id'],'ListId':_0x206f10[_0x46cb('0x21')],'VoiceQueueId':_0x1e3f80['id']})[_0x46cb('0x1c')](function(_0x4748b9){logger[_0x46cb('0xf')](_0x46cb('0x2e'),_0x46cb('0x2f'),_0x4748b9['message']);});}}});})['then'](function(){return _0x34f9e9[_0x46cb('0x30')][_0x46cb('0x2c')]({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0x34f9e9[_0x46cb('0x2d')],'as':_0x46cb('0x28'),'where':{'id':_0x206f10[_0x46cb('0x21')]}}]})[_0x46cb('0x11')](function(_0x2bef6f){if(_0x2bef6f){var _0x5e0a49=[];for(var _0xb9a15d=0x0,_0x202910;_0xb9a15d<_0x2bef6f[_0x46cb('0x29')];_0xb9a15d+=0x1){_0x202910=_0x2bef6f[_0xb9a15d]['get']({'plain':!![]});switch(_0x202910[_0x46cb('0x27')]){case'always':_0x2e0375(_0x202910)['catch'](_0x4a1517());break;case _0x46cb('0x2b'):_0x5cbb22(_0x202910)[_0x46cb('0x1c')](_0x4a1517());break;default:_0x34f9e9[_0x46cb('0x15')][_0x46cb('0x16')]({'phone':_0x206f10[_0x46cb('0xd')],'ContactId':_0x206f10['id'],'ListId':_0x206f10['ListId'],'scheduledat':_0x206f10[_0x46cb('0x18')]?_0x206f10[_0x46cb('0x18')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x206f10[_0x46cb('0x17')]?_0x206f10[_0x46cb('0x17')]:0x2,'callback':_0x206f10[_0x46cb('0x19')]?!![]:![],'callbackuniqueid':_0x206f10['callbackUniqueid']?_0x206f10[_0x46cb('0x19')]:undefined,'callbackat':_0x206f10[_0x46cb('0x19')]?moment()[_0x46cb('0x1a')](_0x46cb('0x1b')):undefined,'CampaignId':_0x202910['id']})[_0x46cb('0x1c')](_0x4a1517());}}}});})[_0x46cb('0x11')](function(){return _0x34f9e9[_0x46cb('0x30')][_0x46cb('0x2c')]({'attributes':['id'],'include':[{'model':_0x34f9e9[_0x46cb('0x2d')],'as':'BlackLists','where':{'id':_0x206f10[_0x46cb('0x21')]}}]})['then'](function(_0xc8894f){if(_0xc8894f){var _0x1796ef=[];for(var _0x3cf969=0x0,_0x166987;_0x3cf969<_0xc8894f['length'];_0x3cf969+=0x1){_0x166987=_0xc8894f[_0x3cf969][_0x46cb('0xe')]({'plain':!![]});_0x34f9e9[_0x46cb('0x31')][_0x46cb('0x16')]({'phone':_0x206f10[_0x46cb('0xd')],'ContactId':_0x206f10['id'],'ListId':_0x206f10[_0x46cb('0x21')],'CampaignId':_0x166987['id']})[_0x46cb('0x1c')](function(_0x2b0799){logger[_0x46cb('0xf')]('cmContact,\x20%s,\x20%s','afterCreate',_0x2b0799['message']);});}}});})['then'](function(){_0x3d7663();})[_0x46cb('0x1c')](function(_0xdb582b){logger['error'](_0x46cb('0x2e'),_0x46cb('0x2f'),_0xdb582b[_0x46cb('0x32')]);_0x3d7663(_0xdb582b);});}else{_0x3d7663(new Error('List\x20not\x20found'));}},'afterDestroy':function(_0x59d461,_0x1ad6fc,_0x57acfc){var _0x11466e=_0x3d9d3c[_0x46cb('0x33')];var _0x1eb392=_0x59d461[_0x46cb('0xe')]({'plain':!![]});return _0x11466e[_0x46cb('0x15')][_0x46cb('0x2c')]({'raw':!![],'where':{'ListId':_0x1eb392[_0x46cb('0x21')],'ContactId':_0x1eb392['id']}})[_0x46cb('0x11')](function(_0x42fd75){if(!_[_0x46cb('0x34')](_0x42fd75)){var _0x5109d=[];for(var _0x472bb2=0x0;_0x472bb2<_0x42fd75[_0x46cb('0x29')];_0x472bb2+=0x1){var _0x489e3f=_0x11466e[_0x46cb('0x15')]['destroy']({'where':{'ListId':_0x42fd75[_0x472bb2][_0x46cb('0x21')],'ContactId':_0x42fd75[_0x472bb2][_0x46cb('0x35')],'VoiceQueueId':_0x42fd75[_0x472bb2][_0x46cb('0x36')],'CampaignId':_0x42fd75[_0x472bb2][_0x46cb('0x37')]}});_0x5109d[_0x46cb('0x38')](_0x489e3f);}return BPromise[_0x46cb('0x39')](_0x5109d);}})[_0x46cb('0x11')](function(_0x598a41){logger[_0x46cb('0x3a')](_0x46cb('0x3b'),util[_0x46cb('0x22')](_0x598a41,{'showHidden':![],'depth':null}));_0x57acfc();})[_0x46cb('0x1c')](function(_0x4f65f9){logger[_0x46cb('0xf')](_0x46cb('0x3c'),util[_0x46cb('0x22')](_0x4f65f9,{'showHidden':![],'depth':null}));_0x57acfc(_0x4f65f9);});}}});};