Built motion from commit (unavailable).|2.5.0
[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 _0x2032=['cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','error','afterCreate','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','findOne','CmHopperFinal','VoiceQueue','dialCheckDuplicateType','CmList','Lists','length','always','onlyIfOpen','findAll','outbound','Campaign','BlackLists','cmContact,\x20%s,\x20%s','message','List\x20not\x20found','isEmpty','destroy','ContactId','VoiceQueueId','CampaignId','push','all','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','util','../../config/logger','api','bluebird','request-promise','rimraf','../../config/environment','./cmContact.attributes','exports','define','CmContact','cm_contacts','phone','models','get','cmContact','inspect','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopper','create','ListId','priority','scheduledat','format','callbackUniqueid','YYYY-MM-DD\x20HH:mm:ss','catch','then','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'];(function(_0x53cb8b,_0x1074de){var _0x5a7658=function(_0xc3b5c9){while(--_0xc3b5c9){_0x53cb8b['push'](_0x53cb8b['shift']());}};_0x5a7658(++_0x1074de);}(_0x2032,0xd9));var _0x2203=function(_0x52730d,_0x3d53e3){_0x52730d=_0x52730d-0x0;var _0x2dd7b1=_0x2032[_0x52730d];return _0x2dd7b1;};'use strict';var _=require('lodash');var util=require(_0x2203('0x0'));var logger=require(_0x2203('0x1'))(_0x2203('0x2'));var moment=require('moment');var BPromise=require(_0x2203('0x3'));var rp=require(_0x2203('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x2203('0x5'));var config=require(_0x2203('0x6'));var attributes=require(_0x2203('0x7'));module[_0x2203('0x8')]=function(_0x3f7ba1,_0x13367a){return _0x3f7ba1[_0x2203('0x9')](_0x2203('0xa'),attributes,{'tableName':_0x2203('0xb'),'paranoid':!![],'indexes':[{'name':_0x2203('0xc'),'fields':[_0x2203('0xc')]}],'timestamps':!![],'hooks':{'afterCreate':function(_0x5ecf9e,_0x526ae0,_0x10f055){var _0x549908=_0x3f7ba1[_0x2203('0xd')];var _0x2972f3=_0x5ecf9e[_0x2203('0xe')]({'plain':!![]});function _0x5b19df(){return function(_0x849049){logger['error'](_0x2203('0xf'),'afterCreate',util[_0x2203('0x10')](_0x849049,{'showHidden':![],'depth':null}));};}var _0x1abb51=function(_0x4b9376){return new BPromise(function(_0x583bc7,_0x585c76){_0x549908['CmHopper']['findOne']({'where':{'phone':_0x2972f3[_0x2203('0xc')],'VoiceQueueId':_0x4b9376['id']}})['then'](function(_0x592e47){if(!_[_0x2203('0x11')](_0x592e47)){throw new Error(_0x2203('0x12')+_0x2972f3[_0x2203('0xc')]+_0x2203('0x13')+_0x4b9376['id']);}return _0x549908[_0x2203('0x14')][_0x2203('0x15')]({'phone':_0x2972f3[_0x2203('0xc')],'ContactId':_0x2972f3['id'],'ListId':_0x2972f3[_0x2203('0x16')],'priority':_0x2972f3[_0x2203('0x17')]?_0x2972f3[_0x2203('0x17')]:0x2,'scheduledat':_0x2972f3['scheduledat']?_0x2972f3[_0x2203('0x18')]:moment()[_0x2203('0x19')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x2972f3[_0x2203('0x1a')]?!![]:![],'callbackuniqueid':_0x2972f3[_0x2203('0x1a')]?_0x2972f3['callbackUniqueid']:undefined,'callbackat':_0x2972f3[_0x2203('0x1a')]?moment()['format'](_0x2203('0x1b')):undefined,'VoiceQueueId':_0x4b9376['id']});})[_0x2203('0x1c')](function(_0x3c8c34){_0x585c76(_0x3c8c34);});});};var _0x3b4034=function(_0x15cb1a){return new BPromise(function(_0x449039,_0x538c23){_0x549908[_0x2203('0x14')]['findOne']({'where':{'phone':_0x2972f3['phone'],'VoiceQueueId':_0x15cb1a['id']}})[_0x2203('0x1d')](function(_0x496d82){if(!_[_0x2203('0x11')](_0x496d82)){throw new Error(_0x2203('0x12')+_0x2972f3['phone']+_0x2203('0x1e')+_0x15cb1a['id']);}return _0x549908['CmHopperFinal']['findOne']({'where':{'calleridnum':_0x2972f3[_0x2203('0xc')],'VoiceQueueId':_0x15cb1a['id']}});})[_0x2203('0x1d')](function(_0x21f930){if(!_[_0x2203('0x11')](_0x21f930)){throw new Error(_0x2203('0x1f')+_0x2972f3[_0x2203('0xc')]+_0x2203('0x20')+_0x15cb1a['id']);}return _0x549908[_0x2203('0x14')]['create']({'phone':_0x2972f3[_0x2203('0xc')],'ContactId':_0x2972f3['id'],'ListId':_0x2972f3[_0x2203('0x16')],'priority':_0x2972f3[_0x2203('0x17')]?_0x2972f3['priority']:0x2,'scheduledat':_0x2972f3[_0x2203('0x18')]?_0x2972f3[_0x2203('0x18')]:moment()['format'](_0x2203('0x1b')),'callback':_0x2972f3[_0x2203('0x1a')]?!![]:![],'callbackuniqueid':_0x2972f3[_0x2203('0x1a')]?_0x2972f3[_0x2203('0x1a')]:undefined,'callbackat':_0x2972f3[_0x2203('0x1a')]?moment()[_0x2203('0x19')](_0x2203('0x1b')):undefined,'VoiceQueueId':_0x15cb1a['id']});})['catch'](function(_0x34b8ba){_0x538c23(_0x34b8ba);});});};function _0x616ed8(){return function(_0x406ce9){logger[_0x2203('0x21')]('cmContact',_0x2203('0x22'),util[_0x2203('0x10')](_0x406ce9,{'showHidden':![],'depth':null}));};}var _0x287c95=function(_0xf59954){return new BPromise(function(_0x520602,_0xea1637){_0x549908[_0x2203('0x14')]['findOne']({'where':{'phone':_0x2972f3['phone'],'CampaignId':_0xf59954['id']}})[_0x2203('0x1d')](function(_0x52fafc){if(!_['isNil'](_0x52fafc)){throw new Error(_0x2203('0x12')+_0x2972f3[_0x2203('0xc')]+_0x2203('0x23')+_0xf59954['id']);}return _0x549908[_0x2203('0x14')][_0x2203('0x15')]({'phone':_0x2972f3['phone'],'ContactId':_0x2972f3['id'],'ListId':_0x2972f3[_0x2203('0x16')],'priority':_0x2972f3[_0x2203('0x17')]?_0x2972f3['priority']:0x2,'scheduledat':_0x2972f3[_0x2203('0x18')]?_0x2972f3[_0x2203('0x18')]:moment()[_0x2203('0x19')](_0x2203('0x1b')),'callback':_0x2972f3[_0x2203('0x1a')]?!![]:![],'callbackuniqueid':_0x2972f3[_0x2203('0x1a')]?_0x2972f3[_0x2203('0x1a')]:undefined,'callbackat':_0x2972f3[_0x2203('0x1a')]?moment()[_0x2203('0x19')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0xf59954['id']});})[_0x2203('0x1c')](function(_0x347d3e){_0xea1637(_0x347d3e);});});};var _0x56f9b2=function(_0x54b90b){return new BPromise(function(_0x2c58b1,_0x5e9841){_0x549908[_0x2203('0x14')][_0x2203('0x24')]({'where':{'phone':_0x2972f3[_0x2203('0xc')],'CampaignId':_0x54b90b['id']}})['then'](function(_0x5a2b90){if(!_[_0x2203('0x11')](_0x5a2b90)){throw new Error('cmContact,\x20afterCreate\x20'+_0x2972f3[_0x2203('0xc')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x54b90b['id']);}return _0x549908[_0x2203('0x25')]['findOne']({'where':{'calleridnum':_0x2972f3[_0x2203('0xc')],'CampaignId':_0x54b90b['id']}});})[_0x2203('0x1d')](function(_0x4311d1){if(!_[_0x2203('0x11')](_0x4311d1)){throw new Error(_0x2203('0x1f')+_0x2972f3['phone']+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20'+_0x54b90b['id']);}return _0x549908['CmHopper'][_0x2203('0x15')]({'phone':_0x2972f3[_0x2203('0xc')],'ContactId':_0x2972f3['id'],'ListId':_0x2972f3[_0x2203('0x16')],'priority':_0x2972f3[_0x2203('0x17')]?_0x2972f3[_0x2203('0x17')]:0x2,'scheduledat':_0x2972f3[_0x2203('0x18')]?_0x2972f3[_0x2203('0x18')]:moment()['format'](_0x2203('0x1b')),'callback':_0x2972f3[_0x2203('0x1a')]?!![]:![],'callbackuniqueid':_0x2972f3[_0x2203('0x1a')]?_0x2972f3[_0x2203('0x1a')]:undefined,'callbackat':_0x2972f3['callbackUniqueid']?moment()['format'](_0x2203('0x1b')):undefined,'CampaignId':_0x54b90b['id']});})['catch'](function(_0x330303){_0x5e9841(_0x330303);});});};if(_0x2972f3[_0x2203('0x16')]){_0x549908[_0x2203('0x26')]['findAll']({'where':{'type':'outbound'},'attributes':['id',_0x2203('0x27')],'include':[{'model':_0x549908[_0x2203('0x28')],'as':_0x2203('0x29'),'where':{'id':_0x2972f3[_0x2203('0x16')]}}]})[_0x2203('0x1d')](function(_0x1fa734){if(_0x1fa734){var _0x5cd573=[];for(var _0x15d3b6=0x0,_0x165a3f;_0x15d3b6<_0x1fa734[_0x2203('0x2a')];_0x15d3b6+=0x1){_0x165a3f=_0x1fa734[_0x15d3b6][_0x2203('0xe')]({'plain':!![]});switch(_0x165a3f[_0x2203('0x27')]){case _0x2203('0x2b'):_0x3b4034(_0x165a3f)[_0x2203('0x1c')](_0x5b19df());break;case _0x2203('0x2c'):_0x1abb51(_0x165a3f)[_0x2203('0x1c')](_0x5b19df());break;default:_0x549908[_0x2203('0x14')]['create']({'phone':_0x2972f3[_0x2203('0xc')],'ContactId':_0x2972f3['id'],'ListId':_0x2972f3[_0x2203('0x16')],'scheduledat':_0x2972f3[_0x2203('0x18')]?_0x2972f3[_0x2203('0x18')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x2972f3[_0x2203('0x17')]?_0x2972f3['priority']:0x2,'callback':_0x2972f3[_0x2203('0x1a')]?!![]:![],'callbackuniqueid':_0x2972f3[_0x2203('0x1a')]?_0x2972f3[_0x2203('0x1a')]:undefined,'callbackat':_0x2972f3[_0x2203('0x1a')]?moment()['format'](_0x2203('0x1b')):undefined,'VoiceQueueId':_0x165a3f['id']})[_0x2203('0x1c')](_0x5b19df());}}}})['then'](function(){return _0x549908[_0x2203('0x26')][_0x2203('0x2d')]({'where':{'type':_0x2203('0x2e')},'attributes':['id'],'include':[{'model':_0x549908[_0x2203('0x28')],'as':'BlackLists','where':{'id':_0x2972f3['ListId']}}]})[_0x2203('0x1d')](function(_0x5707c8){if(_0x5707c8){var _0x543fde=[];for(var _0x450082=0x0,_0x33b7b5;_0x450082<_0x5707c8[_0x2203('0x2a')];_0x450082+=0x1){_0x33b7b5=_0x5707c8[_0x450082]['get']({'plain':!![]});_0x549908['CmHopperBlack'][_0x2203('0x15')]({'phone':_0x2972f3[_0x2203('0xc')],'ContactId':_0x2972f3['id'],'ListId':_0x2972f3[_0x2203('0x16')],'VoiceQueueId':_0x33b7b5['id']})[_0x2203('0x1c')](function(_0x225b0e){logger[_0x2203('0x21')]('cmContact,\x20%s,\x20%s',_0x2203('0x22'),_0x225b0e['message']);});}}});})[_0x2203('0x1d')](function(){return _0x549908[_0x2203('0x2f')][_0x2203('0x2d')]({'attributes':['id',_0x2203('0x27')],'include':[{'model':_0x549908['CmList'],'as':'Lists','where':{'id':_0x2972f3[_0x2203('0x16')]}}]})[_0x2203('0x1d')](function(_0x126aad){if(_0x126aad){var _0x1a1c00=[];for(var _0x559370=0x0,_0x4de47a;_0x559370<_0x126aad['length'];_0x559370+=0x1){_0x4de47a=_0x126aad[_0x559370][_0x2203('0xe')]({'plain':!![]});switch(_0x4de47a[_0x2203('0x27')]){case'always':_0x56f9b2(_0x4de47a)[_0x2203('0x1c')](_0x616ed8());break;case _0x2203('0x2c'):_0x287c95(_0x4de47a)['catch'](_0x616ed8());break;default:_0x549908[_0x2203('0x14')][_0x2203('0x15')]({'phone':_0x2972f3[_0x2203('0xc')],'ContactId':_0x2972f3['id'],'ListId':_0x2972f3[_0x2203('0x16')],'scheduledat':_0x2972f3['scheduledat']?_0x2972f3[_0x2203('0x18')]:moment()['format'](_0x2203('0x1b')),'priority':_0x2972f3[_0x2203('0x17')]?_0x2972f3['priority']:0x2,'callback':_0x2972f3[_0x2203('0x1a')]?!![]:![],'callbackuniqueid':_0x2972f3[_0x2203('0x1a')]?_0x2972f3[_0x2203('0x1a')]:undefined,'callbackat':_0x2972f3[_0x2203('0x1a')]?moment()[_0x2203('0x19')](_0x2203('0x1b')):undefined,'CampaignId':_0x4de47a['id']})['catch'](_0x616ed8());}}}});})['then'](function(){return _0x549908[_0x2203('0x2f')]['findAll']({'attributes':['id'],'include':[{'model':_0x549908['CmList'],'as':_0x2203('0x30'),'where':{'id':_0x2972f3[_0x2203('0x16')]}}]})[_0x2203('0x1d')](function(_0x542296){if(_0x542296){var _0x213c24=[];for(var _0x4b2788=0x0,_0x5ddf9e;_0x4b2788<_0x542296[_0x2203('0x2a')];_0x4b2788+=0x1){_0x5ddf9e=_0x542296[_0x4b2788]['get']({'plain':!![]});_0x549908['CmHopperBlack']['create']({'phone':_0x2972f3[_0x2203('0xc')],'ContactId':_0x2972f3['id'],'ListId':_0x2972f3[_0x2203('0x16')],'CampaignId':_0x5ddf9e['id']})[_0x2203('0x1c')](function(_0x1c6c90){logger[_0x2203('0x21')](_0x2203('0x31'),_0x2203('0x22'),_0x1c6c90[_0x2203('0x32')]);});}}});})[_0x2203('0x1d')](function(){_0x10f055();})[_0x2203('0x1c')](function(_0x384a59){logger[_0x2203('0x21')]('cmContact,\x20%s,\x20%s','afterCreate',_0x384a59[_0x2203('0x32')]);_0x10f055(_0x384a59);});}else{_0x10f055(new Error(_0x2203('0x33')));}},'afterDestroy':function(_0x2511bd,_0x2446be,_0x26382f){var _0x147196=_0x3f7ba1['models'];var _0x5486f9=_0x2511bd[_0x2203('0xe')]({'plain':!![]});return _0x147196[_0x2203('0x14')][_0x2203('0x2d')]({'raw':!![],'where':{'ListId':_0x5486f9[_0x2203('0x16')],'ContactId':_0x5486f9['id']}})[_0x2203('0x1d')](function(_0x7b0b9c){if(!_[_0x2203('0x34')](_0x7b0b9c)){var _0x191b67=[];for(var _0x2c6bcc=0x0;_0x2c6bcc<_0x7b0b9c[_0x2203('0x2a')];_0x2c6bcc+=0x1){var _0x134908=_0x147196['CmHopper'][_0x2203('0x35')]({'where':{'ListId':_0x7b0b9c[_0x2c6bcc][_0x2203('0x16')],'ContactId':_0x7b0b9c[_0x2c6bcc][_0x2203('0x36')],'VoiceQueueId':_0x7b0b9c[_0x2c6bcc][_0x2203('0x37')],'CampaignId':_0x7b0b9c[_0x2c6bcc][_0x2203('0x38')]}});_0x191b67[_0x2203('0x39')](_0x134908);}return BPromise[_0x2203('0x3a')](_0x191b67);}})[_0x2203('0x1d')](function(_0x286121){logger[_0x2203('0x3b')](_0x2203('0x3c'),util[_0x2203('0x10')](_0x286121,{'showHidden':![],'depth':null}));_0x26382f();})[_0x2203('0x1c')](function(_0x24179a){logger[_0x2203('0x21')](_0x2203('0x3d'),util[_0x2203('0x10')](_0x24179a,{'showHidden':![],'depth':null}));_0x26382f(_0x24179a);});}}});};