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 _0xda3f=['cmContact,\x20afterCreate,\x20','catch','\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','outbound','length','dialCheckDuplicateType','onlyIfOpen','findAll','CmList','BlackLists','CmHopperBlack','message','Lists','always','Campaign','cmContact,\x20%s,\x20%s','isEmpty','destroy','VoiceQueueId','CampaignId','info','util','../../config/logger','request-promise','rimraf','../../config/environment','exports','CmContact','cm_contacts','phone','models','get','error','cmContact','afterCreate','inspect','CmHopper','findOne','isNil','cmContact,\x20afterCreate\x20','create','ListId','priority','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopperFinal','then'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xda3f,0xec));var _0xfda3=function(_0x4dde5b,_0x2a3a42){_0x4dde5b=_0x4dde5b-0x0;var _0x345916=_0xda3f[_0x4dde5b];return _0x345916;};'use strict';var _=require('lodash');var util=require(_0xfda3('0x0'));var logger=require(_0xfda3('0x1'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xfda3('0x2'));var fs=require('fs');var path=require('path');var rimraf=require(_0xfda3('0x3'));var config=require(_0xfda3('0x4'));var attributes=require('./cmContact.attributes');module[_0xfda3('0x5')]=function(_0x43a010,_0x47e7e2){return _0x43a010['define'](_0xfda3('0x6'),attributes,{'tableName':_0xfda3('0x7'),'paranoid':!![],'indexes':[{'name':_0xfda3('0x8'),'fields':[_0xfda3('0x8')]}],'timestamps':!![],'hooks':{'afterCreate':function(_0x7bb490,_0x20e790,_0x46655c){var _0x1b1ea6=_0x43a010[_0xfda3('0x9')];var _0x14d549=_0x7bb490[_0xfda3('0xa')]({'plain':!![]});function _0x4713ba(){return function(_0x4d7841){logger[_0xfda3('0xb')](_0xfda3('0xc'),_0xfda3('0xd'),util[_0xfda3('0xe')](_0x4d7841,{'showHidden':![],'depth':null}));};}var _0x1443f4=function(_0x4b77ea){return new BPromise(function(_0x583125,_0x5d7d5b){_0x1b1ea6[_0xfda3('0xf')][_0xfda3('0x10')]({'where':{'phone':_0x14d549['phone'],'VoiceQueueId':_0x4b77ea['id']}})['then'](function(_0x587e9b){if(!_[_0xfda3('0x11')](_0x587e9b)){throw new Error(_0xfda3('0x12')+_0x14d549['phone']+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x4b77ea['id']);}return _0x1b1ea6['CmHopper'][_0xfda3('0x13')]({'phone':_0x14d549[_0xfda3('0x8')],'ContactId':_0x14d549['id'],'ListId':_0x14d549[_0xfda3('0x14')],'priority':_0x14d549[_0xfda3('0x15')]?_0x14d549[_0xfda3('0x15')]:0x2,'scheduledat':_0x14d549[_0xfda3('0x16')]?_0x14d549[_0xfda3('0x16')]:moment()[_0xfda3('0x17')](_0xfda3('0x18')),'callback':_0x14d549[_0xfda3('0x19')]?!![]:![],'callbackuniqueid':_0x14d549['callbackUniqueid']?_0x14d549[_0xfda3('0x19')]:undefined,'callbackat':_0x14d549[_0xfda3('0x19')]?moment()[_0xfda3('0x17')](_0xfda3('0x18')):undefined,'VoiceQueueId':_0x4b77ea['id']});})['catch'](function(_0x42faad){_0x5d7d5b(_0x42faad);});});};var _0x43cfac=function(_0x2ee74c){return new BPromise(function(_0x51e731,_0x5ad52a){_0x1b1ea6[_0xfda3('0xf')][_0xfda3('0x10')]({'where':{'phone':_0x14d549[_0xfda3('0x8')],'VoiceQueueId':_0x2ee74c['id']}})['then'](function(_0x3cf5a9){if(!_[_0xfda3('0x11')](_0x3cf5a9)){throw new Error(_0xfda3('0x12')+_0x14d549[_0xfda3('0x8')]+_0xfda3('0x1a')+_0x2ee74c['id']);}return _0x1b1ea6[_0xfda3('0x1b')][_0xfda3('0x10')]({'where':{'calleridnum':_0x14d549[_0xfda3('0x8')],'VoiceQueueId':_0x2ee74c['id']}});})[_0xfda3('0x1c')](function(_0x5499f5){if(!_[_0xfda3('0x11')](_0x5499f5)){throw new Error(_0xfda3('0x1d')+_0x14d549[_0xfda3('0x8')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20'+_0x2ee74c['id']);}return _0x1b1ea6[_0xfda3('0xf')][_0xfda3('0x13')]({'phone':_0x14d549[_0xfda3('0x8')],'ContactId':_0x14d549['id'],'ListId':_0x14d549[_0xfda3('0x14')],'priority':_0x14d549[_0xfda3('0x15')]?_0x14d549[_0xfda3('0x15')]:0x2,'scheduledat':_0x14d549['scheduledat']?_0x14d549[_0xfda3('0x16')]:moment()[_0xfda3('0x17')](_0xfda3('0x18')),'callback':_0x14d549[_0xfda3('0x19')]?!![]:![],'callbackuniqueid':_0x14d549[_0xfda3('0x19')]?_0x14d549['callbackUniqueid']:undefined,'callbackat':_0x14d549[_0xfda3('0x19')]?moment()[_0xfda3('0x17')](_0xfda3('0x18')):undefined,'VoiceQueueId':_0x2ee74c['id']});})[_0xfda3('0x1e')](function(_0xe21ec6){_0x5ad52a(_0xe21ec6);});});};function _0x3cfeb2(){return function(_0x26e544){logger['error']('cmContact',_0xfda3('0xd'),util['inspect'](_0x26e544,{'showHidden':![],'depth':null}));};}var _0x4b9d90=function(_0x16b4a2){return new BPromise(function(_0x2a5971,_0x34f9d2){_0x1b1ea6[_0xfda3('0xf')][_0xfda3('0x10')]({'where':{'phone':_0x14d549[_0xfda3('0x8')],'CampaignId':_0x16b4a2['id']}})[_0xfda3('0x1c')](function(_0xd6b6d7){if(!_[_0xfda3('0x11')](_0xd6b6d7)){throw new Error('cmContact,\x20afterCreate\x20'+_0x14d549[_0xfda3('0x8')]+_0xfda3('0x1f')+_0x16b4a2['id']);}return _0x1b1ea6[_0xfda3('0xf')][_0xfda3('0x13')]({'phone':_0x14d549[_0xfda3('0x8')],'ContactId':_0x14d549['id'],'ListId':_0x14d549[_0xfda3('0x14')],'priority':_0x14d549[_0xfda3('0x15')]?_0x14d549[_0xfda3('0x15')]:0x2,'scheduledat':_0x14d549[_0xfda3('0x16')]?_0x14d549['scheduledat']:moment()['format'](_0xfda3('0x18')),'callback':_0x14d549[_0xfda3('0x19')]?!![]:![],'callbackuniqueid':_0x14d549['callbackUniqueid']?_0x14d549[_0xfda3('0x19')]:undefined,'callbackat':_0x14d549[_0xfda3('0x19')]?moment()[_0xfda3('0x17')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x16b4a2['id']});})[_0xfda3('0x1e')](function(_0x378bf0){_0x34f9d2(_0x378bf0);});});};var _0xb4eeb7=function(_0x3151e6){return new BPromise(function(_0x1ab9b1,_0x5ae650){_0x1b1ea6[_0xfda3('0xf')][_0xfda3('0x10')]({'where':{'phone':_0x14d549[_0xfda3('0x8')],'CampaignId':_0x3151e6['id']}})['then'](function(_0x373c96){if(!_['isNil'](_0x373c96)){throw new Error(_0xfda3('0x12')+_0x14d549[_0xfda3('0x8')]+_0xfda3('0x20')+_0x3151e6['id']);}return _0x1b1ea6[_0xfda3('0x1b')][_0xfda3('0x10')]({'where':{'calleridnum':_0x14d549[_0xfda3('0x8')],'CampaignId':_0x3151e6['id']}});})[_0xfda3('0x1c')](function(_0x3d1cb2){if(!_['isNil'](_0x3d1cb2)){throw new Error(_0xfda3('0x1d')+_0x14d549[_0xfda3('0x8')]+_0xfda3('0x21')+_0x3151e6['id']);}return _0x1b1ea6[_0xfda3('0xf')]['create']({'phone':_0x14d549[_0xfda3('0x8')],'ContactId':_0x14d549['id'],'ListId':_0x14d549[_0xfda3('0x14')],'priority':_0x14d549[_0xfda3('0x15')]?_0x14d549['priority']:0x2,'scheduledat':_0x14d549['scheduledat']?_0x14d549[_0xfda3('0x16')]:moment()[_0xfda3('0x17')](_0xfda3('0x18')),'callback':_0x14d549[_0xfda3('0x19')]?!![]:![],'callbackuniqueid':_0x14d549[_0xfda3('0x19')]?_0x14d549[_0xfda3('0x19')]:undefined,'callbackat':_0x14d549[_0xfda3('0x19')]?moment()[_0xfda3('0x17')](_0xfda3('0x18')):undefined,'CampaignId':_0x3151e6['id']});})[_0xfda3('0x1e')](function(_0x4d3b1c){_0x5ae650(_0x4d3b1c);});});};if(_0x14d549[_0xfda3('0x14')]){_0x1b1ea6[_0xfda3('0x22')]['findAll']({'where':{'type':_0xfda3('0x23')},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0x1b1ea6['CmList'],'as':'Lists','where':{'id':_0x14d549[_0xfda3('0x14')]}}]})[_0xfda3('0x1c')](function(_0x260977){if(_0x260977){var _0x209918=[];for(var _0x4c1f94=0x0,_0x8f0905;_0x4c1f94<_0x260977[_0xfda3('0x24')];_0x4c1f94+=0x1){_0x8f0905=_0x260977[_0x4c1f94][_0xfda3('0xa')]({'plain':!![]});switch(_0x8f0905[_0xfda3('0x25')]){case'always':_0x43cfac(_0x8f0905)[_0xfda3('0x1e')](_0x4713ba());break;case _0xfda3('0x26'):_0x1443f4(_0x8f0905)[_0xfda3('0x1e')](_0x4713ba());break;default:_0x1b1ea6['CmHopper']['create']({'phone':_0x14d549[_0xfda3('0x8')],'ContactId':_0x14d549['id'],'ListId':_0x14d549[_0xfda3('0x14')],'scheduledat':_0x14d549[_0xfda3('0x16')]?_0x14d549[_0xfda3('0x16')]:moment()[_0xfda3('0x17')](_0xfda3('0x18')),'priority':_0x14d549[_0xfda3('0x15')]?_0x14d549[_0xfda3('0x15')]:0x2,'callback':_0x14d549[_0xfda3('0x19')]?!![]:![],'callbackuniqueid':_0x14d549[_0xfda3('0x19')]?_0x14d549[_0xfda3('0x19')]:undefined,'callbackat':_0x14d549[_0xfda3('0x19')]?moment()[_0xfda3('0x17')](_0xfda3('0x18')):undefined,'VoiceQueueId':_0x8f0905['id']})['catch'](_0x4713ba());}}}})['then'](function(){return _0x1b1ea6[_0xfda3('0x22')][_0xfda3('0x27')]({'where':{'type':_0xfda3('0x23')},'attributes':['id'],'include':[{'model':_0x1b1ea6[_0xfda3('0x28')],'as':_0xfda3('0x29'),'where':{'id':_0x14d549[_0xfda3('0x14')]}}]})[_0xfda3('0x1c')](function(_0x125f5a){if(_0x125f5a){var _0x1372ee=[];for(var _0x161fda=0x0,_0x5131da;_0x161fda<_0x125f5a[_0xfda3('0x24')];_0x161fda+=0x1){_0x5131da=_0x125f5a[_0x161fda][_0xfda3('0xa')]({'plain':!![]});_0x1b1ea6[_0xfda3('0x2a')][_0xfda3('0x13')]({'phone':_0x14d549[_0xfda3('0x8')],'ContactId':_0x14d549['id'],'ListId':_0x14d549['ListId'],'VoiceQueueId':_0x5131da['id']})[_0xfda3('0x1e')](function(_0x105c45){logger[_0xfda3('0xb')]('cmContact,\x20%s,\x20%s',_0xfda3('0xd'),_0x105c45[_0xfda3('0x2b')]);});}}});})[_0xfda3('0x1c')](function(){return _0x1b1ea6['Campaign'][_0xfda3('0x27')]({'attributes':['id',_0xfda3('0x25')],'include':[{'model':_0x1b1ea6[_0xfda3('0x28')],'as':_0xfda3('0x2c'),'where':{'id':_0x14d549[_0xfda3('0x14')]}}]})['then'](function(_0x3c49d9){if(_0x3c49d9){var _0x484fd1=[];for(var _0x17fe20=0x0,_0x587eef;_0x17fe20<_0x3c49d9[_0xfda3('0x24')];_0x17fe20+=0x1){_0x587eef=_0x3c49d9[_0x17fe20][_0xfda3('0xa')]({'plain':!![]});switch(_0x587eef[_0xfda3('0x25')]){case _0xfda3('0x2d'):_0xb4eeb7(_0x587eef)['catch'](_0x3cfeb2());break;case _0xfda3('0x26'):_0x4b9d90(_0x587eef)[_0xfda3('0x1e')](_0x3cfeb2());break;default:_0x1b1ea6[_0xfda3('0xf')][_0xfda3('0x13')]({'phone':_0x14d549[_0xfda3('0x8')],'ContactId':_0x14d549['id'],'ListId':_0x14d549[_0xfda3('0x14')],'scheduledat':_0x14d549[_0xfda3('0x16')]?_0x14d549['scheduledat']:moment()['format'](_0xfda3('0x18')),'priority':_0x14d549[_0xfda3('0x15')]?_0x14d549[_0xfda3('0x15')]:0x2,'callback':_0x14d549['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x14d549['callbackUniqueid']?_0x14d549[_0xfda3('0x19')]:undefined,'callbackat':_0x14d549[_0xfda3('0x19')]?moment()[_0xfda3('0x17')](_0xfda3('0x18')):undefined,'CampaignId':_0x587eef['id']})[_0xfda3('0x1e')](_0x3cfeb2());}}}});})['then'](function(){return _0x1b1ea6[_0xfda3('0x2e')][_0xfda3('0x27')]({'attributes':['id'],'include':[{'model':_0x1b1ea6[_0xfda3('0x28')],'as':_0xfda3('0x29'),'where':{'id':_0x14d549[_0xfda3('0x14')]}}]})[_0xfda3('0x1c')](function(_0x360653){if(_0x360653){var _0x1c5073=[];for(var _0x3a8c51=0x0,_0x28b6dc;_0x3a8c51<_0x360653[_0xfda3('0x24')];_0x3a8c51+=0x1){_0x28b6dc=_0x360653[_0x3a8c51][_0xfda3('0xa')]({'plain':!![]});_0x1b1ea6['CmHopperBlack'][_0xfda3('0x13')]({'phone':_0x14d549[_0xfda3('0x8')],'ContactId':_0x14d549['id'],'ListId':_0x14d549[_0xfda3('0x14')],'CampaignId':_0x28b6dc['id']})[_0xfda3('0x1e')](function(_0x3e674e){logger[_0xfda3('0xb')](_0xfda3('0x2f'),'afterCreate',_0x3e674e['message']);});}}});})[_0xfda3('0x1c')](function(){_0x46655c();})[_0xfda3('0x1e')](function(_0x486e55){logger[_0xfda3('0xb')](_0xfda3('0x2f'),_0xfda3('0xd'),_0x486e55[_0xfda3('0x2b')]);_0x46655c(_0x486e55);});}else{_0x46655c(new Error('List\x20not\x20found'));}},'afterDestroy':function(_0x524155,_0xb61f7c,_0x34b8f7){var _0x18e53e=_0x43a010['models'];var _0x23fd20=_0x524155['get']({'plain':!![]});return _0x18e53e[_0xfda3('0xf')][_0xfda3('0x27')]({'raw':!![],'where':{'ListId':_0x23fd20[_0xfda3('0x14')],'ContactId':_0x23fd20['id']}})[_0xfda3('0x1c')](function(_0x3f54e8){if(!_[_0xfda3('0x30')](_0x3f54e8)){var _0x50482d=[];for(var _0x1447d3=0x0;_0x1447d3<_0x3f54e8[_0xfda3('0x24')];_0x1447d3+=0x1){var _0x1d13d4=_0x18e53e[_0xfda3('0xf')][_0xfda3('0x31')]({'where':{'ListId':_0x3f54e8[_0x1447d3]['ListId'],'ContactId':_0x3f54e8[_0x1447d3]['ContactId'],'VoiceQueueId':_0x3f54e8[_0x1447d3][_0xfda3('0x32')],'CampaignId':_0x3f54e8[_0x1447d3][_0xfda3('0x33')]}});_0x50482d['push'](_0x1d13d4);}return BPromise['all'](_0x50482d);}})['then'](function(_0x248174){logger[_0xfda3('0x34')]('[CmContact][afterDestroy][Succesfull]',util[_0xfda3('0xe')](_0x248174,{'showHidden':![],'depth':null}));_0x34b8f7();})[_0xfda3('0x1e')](function(_0x2f67a1){logger[_0xfda3('0xb')]('[CmContact][afterDestroy][Error]',util[_0xfda3('0xe')](_0x2f67a1,{'showHidden':![],'depth':null}));_0x34b8f7(_0x2f67a1);});}}});};