aadad47e55655b7488e664527ab2e539474b6ef9
[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 _0xa571=['findAll','dialCheckDuplicateType','CmList','Lists','length','always','VoiceQueue','outbound','BlackLists','CmHopperBlack','cmContact,\x20%s,\x20%s','message','onlyIfOpen','Campaign','List\x20not\x20found','isEmpty','ContactId','VoiceQueueId','CampaignId','push','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','api','bluebird','request-promise','../../config/environment','exports','define','CmContact','cm_contacts','phone','models','get','error','cmContact','CmHopper','findOne','then','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create','priority','scheduledat','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','ListId','afterCreate','inspect','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20'];(function(_0x284aee,_0x4b83cc){var _0x44e390=function(_0x4d27fe){while(--_0x4d27fe){_0x284aee['push'](_0x284aee['shift']());}};_0x44e390(++_0x4b83cc);}(_0xa571,0x107));var _0x1a57=function(_0xb698b6,_0x4b4011){_0xb698b6=_0xb698b6-0x0;var _0x3394fb=_0xa571[_0xb698b6];return _0x3394fb;};'use strict';var _=require(_0x1a57('0x0'));var util=require(_0x1a57('0x1'));var logger=require(_0x1a57('0x2'))(_0x1a57('0x3'));var moment=require('moment');var BPromise=require(_0x1a57('0x4'));var rp=require(_0x1a57('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x1a57('0x6'));var attributes=require('./cmContact.attributes');module[_0x1a57('0x7')]=function(_0xd97a33,_0x22ca20){return _0xd97a33[_0x1a57('0x8')](_0x1a57('0x9'),attributes,{'tableName':_0x1a57('0xa'),'paranoid':!![],'indexes':[{'name':'phone','fields':[_0x1a57('0xb')]}],'timestamps':!![],'hooks':{'afterCreate':function(_0x3d5770,_0x3631d6,_0x58e266){var _0x3c8182=_0xd97a33[_0x1a57('0xc')];var _0x4740ef=_0x3d5770[_0x1a57('0xd')]({'plain':!![]});function _0x831937(){return function(_0x2980b2){logger[_0x1a57('0xe')](_0x1a57('0xf'),'afterCreate',util['inspect'](_0x2980b2,{'showHidden':![],'depth':null}));};}var _0x2256af=function(_0x1911b2){return new BPromise(function(_0x202d9a,_0x5ae643){_0x3c8182[_0x1a57('0x10')][_0x1a57('0x11')]({'where':{'phone':_0x4740ef['phone'],'VoiceQueueId':_0x1911b2['id']}})[_0x1a57('0x12')](function(_0x587422){if(!_[_0x1a57('0x13')](_0x587422)){throw new Error(_0x1a57('0x14')+_0x4740ef[_0x1a57('0xb')]+_0x1a57('0x15')+_0x1911b2['id']);}return _0x3c8182['CmHopper'][_0x1a57('0x16')]({'phone':_0x4740ef['phone'],'ContactId':_0x4740ef['id'],'ListId':_0x4740ef['ListId'],'priority':_0x4740ef[_0x1a57('0x17')]?_0x4740ef[_0x1a57('0x17')]:0x2,'scheduledat':_0x4740ef[_0x1a57('0x18')]?_0x4740ef['scheduledat']:moment()[_0x1a57('0x19')](_0x1a57('0x1a')),'callback':_0x4740ef[_0x1a57('0x1b')]?!![]:![],'callbackuniqueid':_0x4740ef['callbackUniqueid']?_0x4740ef[_0x1a57('0x1b')]:undefined,'callbackat':_0x4740ef[_0x1a57('0x1b')]?moment()[_0x1a57('0x19')](_0x1a57('0x1a')):undefined,'VoiceQueueId':_0x1911b2['id']});})[_0x1a57('0x1c')](function(_0x52bc9e){_0x5ae643(_0x52bc9e);});});};var _0x53df95=function(_0x439844){return new BPromise(function(_0x21e811,_0x211c63){_0x3c8182['CmHopper']['findOne']({'where':{'phone':_0x4740ef['phone'],'VoiceQueueId':_0x439844['id']}})[_0x1a57('0x12')](function(_0x113ad4){if(!_[_0x1a57('0x13')](_0x113ad4)){throw new Error(_0x1a57('0x14')+_0x4740ef[_0x1a57('0xb')]+_0x1a57('0x1d')+_0x439844['id']);}return _0x3c8182[_0x1a57('0x1e')][_0x1a57('0x11')]({'where':{'calleridnum':_0x4740ef[_0x1a57('0xb')],'VoiceQueueId':_0x439844['id']}});})[_0x1a57('0x12')](function(_0x29e7cd){if(!_[_0x1a57('0x13')](_0x29e7cd)){throw new Error(_0x1a57('0x1f')+_0x4740ef[_0x1a57('0xb')]+_0x1a57('0x20')+_0x439844['id']);}return _0x3c8182[_0x1a57('0x10')][_0x1a57('0x16')]({'phone':_0x4740ef[_0x1a57('0xb')],'ContactId':_0x4740ef['id'],'ListId':_0x4740ef[_0x1a57('0x21')],'priority':_0x4740ef[_0x1a57('0x17')]?_0x4740ef[_0x1a57('0x17')]:0x2,'scheduledat':_0x4740ef[_0x1a57('0x18')]?_0x4740ef['scheduledat']:moment()['format'](_0x1a57('0x1a')),'callback':_0x4740ef[_0x1a57('0x1b')]?!![]:![],'callbackuniqueid':_0x4740ef['callbackUniqueid']?_0x4740ef[_0x1a57('0x1b')]:undefined,'callbackat':_0x4740ef['callbackUniqueid']?moment()[_0x1a57('0x19')](_0x1a57('0x1a')):undefined,'VoiceQueueId':_0x439844['id']});})['catch'](function(_0x8179a4){_0x211c63(_0x8179a4);});});};function _0x274fe6(){return function(_0x30527c){logger[_0x1a57('0xe')]('cmContact',_0x1a57('0x22'),util[_0x1a57('0x23')](_0x30527c,{'showHidden':![],'depth':null}));};}var _0x4374f0=function(_0x160536){return new BPromise(function(_0x5763ba,_0xa42d2b){_0x3c8182[_0x1a57('0x10')][_0x1a57('0x11')]({'where':{'phone':_0x4740ef[_0x1a57('0xb')],'CampaignId':_0x160536['id']}})[_0x1a57('0x12')](function(_0x335c14){if(!_[_0x1a57('0x13')](_0x335c14)){throw new Error(_0x1a57('0x14')+_0x4740ef[_0x1a57('0xb')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x160536['id']);}return _0x3c8182[_0x1a57('0x10')][_0x1a57('0x16')]({'phone':_0x4740ef['phone'],'ContactId':_0x4740ef['id'],'ListId':_0x4740ef['ListId'],'priority':_0x4740ef[_0x1a57('0x17')]?_0x4740ef[_0x1a57('0x17')]:0x2,'scheduledat':_0x4740ef[_0x1a57('0x18')]?_0x4740ef[_0x1a57('0x18')]:moment()[_0x1a57('0x19')](_0x1a57('0x1a')),'callback':_0x4740ef[_0x1a57('0x1b')]?!![]:![],'callbackuniqueid':_0x4740ef[_0x1a57('0x1b')]?_0x4740ef[_0x1a57('0x1b')]:undefined,'callbackat':_0x4740ef[_0x1a57('0x1b')]?moment()[_0x1a57('0x19')](_0x1a57('0x1a')):undefined,'CampaignId':_0x160536['id']});})[_0x1a57('0x1c')](function(_0x1a6231){_0xa42d2b(_0x1a6231);});});};var _0x106a2c=function(_0x12102f){return new BPromise(function(_0x90b82e,_0x43880d){_0x3c8182['CmHopper'][_0x1a57('0x11')]({'where':{'phone':_0x4740ef[_0x1a57('0xb')],'CampaignId':_0x12102f['id']}})[_0x1a57('0x12')](function(_0x3dad7c){if(!_[_0x1a57('0x13')](_0x3dad7c)){throw new Error(_0x1a57('0x14')+_0x4740ef[_0x1a57('0xb')]+_0x1a57('0x24')+_0x12102f['id']);}return _0x3c8182[_0x1a57('0x1e')]['findOne']({'where':{'calleridnum':_0x4740ef['phone'],'CampaignId':_0x12102f['id']}});})['then'](function(_0x50a38c){if(!_[_0x1a57('0x13')](_0x50a38c)){throw new Error(_0x1a57('0x1f')+_0x4740ef[_0x1a57('0xb')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20'+_0x12102f['id']);}return _0x3c8182[_0x1a57('0x10')][_0x1a57('0x16')]({'phone':_0x4740ef[_0x1a57('0xb')],'ContactId':_0x4740ef['id'],'ListId':_0x4740ef[_0x1a57('0x21')],'priority':_0x4740ef['priority']?_0x4740ef[_0x1a57('0x17')]:0x2,'scheduledat':_0x4740ef['scheduledat']?_0x4740ef[_0x1a57('0x18')]:moment()[_0x1a57('0x19')](_0x1a57('0x1a')),'callback':_0x4740ef['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x4740ef[_0x1a57('0x1b')]?_0x4740ef[_0x1a57('0x1b')]:undefined,'callbackat':_0x4740ef[_0x1a57('0x1b')]?moment()[_0x1a57('0x19')](_0x1a57('0x1a')):undefined,'CampaignId':_0x12102f['id']});})['catch'](function(_0x2eeb71){_0x43880d(_0x2eeb71);});});};if(_0x4740ef['ListId']){_0x3c8182['VoiceQueue'][_0x1a57('0x25')]({'where':{'type':'outbound'},'attributes':['id',_0x1a57('0x26')],'include':[{'model':_0x3c8182[_0x1a57('0x27')],'as':_0x1a57('0x28'),'where':{'id':_0x4740ef['ListId']}}]})[_0x1a57('0x12')](function(_0x3c7ea8){if(_0x3c7ea8){var _0xde13d3=[];for(var _0x392217=0x0,_0x504c29;_0x392217<_0x3c7ea8[_0x1a57('0x29')];_0x392217+=0x1){_0x504c29=_0x3c7ea8[_0x392217][_0x1a57('0xd')]({'plain':!![]});switch(_0x504c29['dialCheckDuplicateType']){case _0x1a57('0x2a'):_0x53df95(_0x504c29)['catch'](_0x831937());break;case'onlyIfOpen':_0x2256af(_0x504c29)[_0x1a57('0x1c')](_0x831937());break;default:_0x3c8182[_0x1a57('0x10')][_0x1a57('0x16')]({'phone':_0x4740ef[_0x1a57('0xb')],'ContactId':_0x4740ef['id'],'ListId':_0x4740ef['ListId'],'scheduledat':_0x4740ef[_0x1a57('0x18')]?_0x4740ef[_0x1a57('0x18')]:moment()[_0x1a57('0x19')](_0x1a57('0x1a')),'priority':_0x4740ef[_0x1a57('0x17')]?_0x4740ef['priority']:0x2,'callback':_0x4740ef[_0x1a57('0x1b')]?!![]:![],'callbackuniqueid':_0x4740ef[_0x1a57('0x1b')]?_0x4740ef[_0x1a57('0x1b')]:undefined,'callbackat':_0x4740ef[_0x1a57('0x1b')]?moment()['format'](_0x1a57('0x1a')):undefined,'VoiceQueueId':_0x504c29['id']})['catch'](_0x831937());}}}})[_0x1a57('0x12')](function(){return _0x3c8182[_0x1a57('0x2b')][_0x1a57('0x25')]({'where':{'type':_0x1a57('0x2c')},'attributes':['id'],'include':[{'model':_0x3c8182[_0x1a57('0x27')],'as':_0x1a57('0x2d'),'where':{'id':_0x4740ef[_0x1a57('0x21')]}}]})[_0x1a57('0x12')](function(_0x29fe1f){if(_0x29fe1f){var _0x424065=[];for(var _0x7413df=0x0,_0x136335;_0x7413df<_0x29fe1f[_0x1a57('0x29')];_0x7413df+=0x1){_0x136335=_0x29fe1f[_0x7413df]['get']({'plain':!![]});_0x3c8182[_0x1a57('0x2e')][_0x1a57('0x16')]({'phone':_0x4740ef[_0x1a57('0xb')],'ContactId':_0x4740ef['id'],'ListId':_0x4740ef[_0x1a57('0x21')],'VoiceQueueId':_0x136335['id']})[_0x1a57('0x1c')](function(_0x28ebdd){logger[_0x1a57('0xe')](_0x1a57('0x2f'),_0x1a57('0x22'),_0x28ebdd[_0x1a57('0x30')]);});}}});})[_0x1a57('0x12')](function(){return _0x3c8182['Campaign'][_0x1a57('0x25')]({'attributes':['id',_0x1a57('0x26')],'include':[{'model':_0x3c8182['CmList'],'as':_0x1a57('0x28'),'where':{'id':_0x4740ef[_0x1a57('0x21')]}}]})['then'](function(_0x48f798){if(_0x48f798){var _0x2155d7=[];for(var _0x5610ca=0x0,_0x4d3177;_0x5610ca<_0x48f798['length'];_0x5610ca+=0x1){_0x4d3177=_0x48f798[_0x5610ca][_0x1a57('0xd')]({'plain':!![]});switch(_0x4d3177[_0x1a57('0x26')]){case'always':_0x106a2c(_0x4d3177)[_0x1a57('0x1c')](_0x274fe6());break;case _0x1a57('0x31'):_0x4374f0(_0x4d3177)['catch'](_0x274fe6());break;default:_0x3c8182['CmHopper']['create']({'phone':_0x4740ef[_0x1a57('0xb')],'ContactId':_0x4740ef['id'],'ListId':_0x4740ef[_0x1a57('0x21')],'scheduledat':_0x4740ef[_0x1a57('0x18')]?_0x4740ef[_0x1a57('0x18')]:moment()[_0x1a57('0x19')](_0x1a57('0x1a')),'priority':_0x4740ef[_0x1a57('0x17')]?_0x4740ef[_0x1a57('0x17')]:0x2,'callback':_0x4740ef['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x4740ef['callbackUniqueid']?_0x4740ef['callbackUniqueid']:undefined,'callbackat':_0x4740ef['callbackUniqueid']?moment()['format'](_0x1a57('0x1a')):undefined,'CampaignId':_0x4d3177['id']})[_0x1a57('0x1c')](_0x274fe6());}}}});})[_0x1a57('0x12')](function(){return _0x3c8182[_0x1a57('0x32')][_0x1a57('0x25')]({'attributes':['id'],'include':[{'model':_0x3c8182[_0x1a57('0x27')],'as':_0x1a57('0x2d'),'where':{'id':_0x4740ef[_0x1a57('0x21')]}}]})['then'](function(_0x48cc13){if(_0x48cc13){var _0x515b81=[];for(var _0x13ebc4=0x0,_0x4aa889;_0x13ebc4<_0x48cc13[_0x1a57('0x29')];_0x13ebc4+=0x1){_0x4aa889=_0x48cc13[_0x13ebc4][_0x1a57('0xd')]({'plain':!![]});_0x3c8182[_0x1a57('0x2e')][_0x1a57('0x16')]({'phone':_0x4740ef[_0x1a57('0xb')],'ContactId':_0x4740ef['id'],'ListId':_0x4740ef[_0x1a57('0x21')],'CampaignId':_0x4aa889['id']})[_0x1a57('0x1c')](function(_0x561add){logger['error']('cmContact,\x20%s,\x20%s',_0x1a57('0x22'),_0x561add[_0x1a57('0x30')]);});}}});})[_0x1a57('0x12')](function(){_0x58e266();})[_0x1a57('0x1c')](function(_0x2db770){logger[_0x1a57('0xe')](_0x1a57('0x2f'),'afterCreate',_0x2db770['message']);_0x58e266(_0x2db770);});}else{_0x58e266(new Error(_0x1a57('0x33')));}},'afterDestroy':function(_0x145b25,_0x231154,_0x6544ec){var _0xfde254=_0xd97a33[_0x1a57('0xc')];var _0x59a731=_0x145b25['get']({'plain':!![]});return _0xfde254[_0x1a57('0x10')][_0x1a57('0x25')]({'raw':!![],'where':{'ListId':_0x59a731['ListId'],'ContactId':_0x59a731['id']}})['then'](function(_0x227844){if(!_[_0x1a57('0x34')](_0x227844)){var _0x31cb10=[];for(var _0x10ceb8=0x0;_0x10ceb8<_0x227844[_0x1a57('0x29')];_0x10ceb8+=0x1){var _0x103fbe=_0xfde254[_0x1a57('0x10')]['destroy']({'where':{'ListId':_0x227844[_0x10ceb8]['ListId'],'ContactId':_0x227844[_0x10ceb8][_0x1a57('0x35')],'VoiceQueueId':_0x227844[_0x10ceb8][_0x1a57('0x36')],'CampaignId':_0x227844[_0x10ceb8][_0x1a57('0x37')]}});_0x31cb10[_0x1a57('0x38')](_0x103fbe);}return BPromise['all'](_0x31cb10);}})[_0x1a57('0x12')](function(_0x28354c){logger[_0x1a57('0x39')](_0x1a57('0x3a'),util[_0x1a57('0x23')](_0x28354c,{'showHidden':![],'depth':null}));_0x6544ec();})['catch'](function(_0x4aa36d){logger['error'](_0x1a57('0x3b'),util[_0x1a57('0x23')](_0x4aa36d,{'showHidden':![],'depth':null}));_0x6544ec(_0x4aa36d);});}}});};