Built motion from commit (unavailable).|2.4.18
[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 _0xdd4f=['bluebird','path','rimraf','../../config/environment','exports','define','CmContact','phone','models','get','error','cmContact','afterCreate','inspect','findOne','then','isNil','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopper','create','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','catch','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopperFinal','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','priority','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','ListId','\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','CmList','length','onlyIfOpen','BlackLists','CmHopperBlack','cmContact,\x20%s,\x20%s','message','always','Campaign','isEmpty','destroy','ContactId','CampaignId','push','all','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','moment'];(function(_0x3e182f,_0x380ec7){var _0x23edc9=function(_0x3ca65e){while(--_0x3ca65e){_0x3e182f['push'](_0x3e182f['shift']());}};_0x23edc9(++_0x380ec7);}(_0xdd4f,0x1ce));var _0xfdd4=function(_0x50cad0,_0x87b3d){_0x50cad0=_0x50cad0-0x0;var _0x2733dd=_0xdd4f[_0x50cad0];return _0x2733dd;};'use strict';var _=require(_0xfdd4('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0xfdd4('0x1'));var BPromise=require(_0xfdd4('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xfdd4('0x3'));var rimraf=require(_0xfdd4('0x4'));var config=require(_0xfdd4('0x5'));var attributes=require('./cmContact.attributes');module[_0xfdd4('0x6')]=function(_0x43cbcf,_0x30e080){return _0x43cbcf[_0xfdd4('0x7')](_0xfdd4('0x8'),attributes,{'tableName':'cm_contacts','paranoid':!![],'indexes':[{'name':_0xfdd4('0x9'),'fields':['phone']}],'timestamps':!![],'hooks':{'afterCreate':function(_0x4181d6,_0x25470a,_0x1e823e){var _0x4ee02f=_0x43cbcf[_0xfdd4('0xa')];var _0x4b4f1d=_0x4181d6[_0xfdd4('0xb')]({'plain':!![]});function _0x3ce77a(){return function(_0x210c7d){logger[_0xfdd4('0xc')](_0xfdd4('0xd'),_0xfdd4('0xe'),util[_0xfdd4('0xf')](_0x210c7d,{'showHidden':![],'depth':null}));};}var _0x1c71c4=function(_0x3f07f1){return new BPromise(function(_0x4565e6,_0x1bf37b){_0x4ee02f['CmHopper'][_0xfdd4('0x10')]({'where':{'phone':_0x4b4f1d[_0xfdd4('0x9')],'VoiceQueueId':_0x3f07f1['id']}})[_0xfdd4('0x11')](function(_0x57b21f){if(!_[_0xfdd4('0x12')](_0x57b21f)){throw new Error('cmContact,\x20afterCreate\x20'+_0x4b4f1d[_0xfdd4('0x9')]+_0xfdd4('0x13')+_0x3f07f1['id']);}return _0x4ee02f[_0xfdd4('0x14')][_0xfdd4('0x15')]({'phone':_0x4b4f1d[_0xfdd4('0x9')],'ContactId':_0x4b4f1d['id'],'ListId':_0x4b4f1d['ListId'],'priority':_0x4b4f1d['priority']?_0x4b4f1d['priority']:0x2,'scheduledat':_0x4b4f1d[_0xfdd4('0x16')]?_0x4b4f1d[_0xfdd4('0x16')]:moment()[_0xfdd4('0x17')](_0xfdd4('0x18')),'callback':_0x4b4f1d[_0xfdd4('0x19')]?!![]:![],'callbackuniqueid':_0x4b4f1d[_0xfdd4('0x19')]?_0x4b4f1d[_0xfdd4('0x19')]:undefined,'callbackat':_0x4b4f1d[_0xfdd4('0x19')]?moment()[_0xfdd4('0x17')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x3f07f1['id']});})[_0xfdd4('0x1a')](function(_0x3e8eac){_0x1bf37b(_0x3e8eac);});});};var _0x2dc51c=function(_0x36e611){return new BPromise(function(_0x1454f1,_0x29cc8d){_0x4ee02f[_0xfdd4('0x14')][_0xfdd4('0x10')]({'where':{'phone':_0x4b4f1d['phone'],'VoiceQueueId':_0x36e611['id']}})[_0xfdd4('0x11')](function(_0x17302b){if(!_[_0xfdd4('0x12')](_0x17302b)){throw new Error(_0xfdd4('0x1b')+_0x4b4f1d[_0xfdd4('0x9')]+_0xfdd4('0x1c')+_0x36e611['id']);}return _0x4ee02f[_0xfdd4('0x1d')][_0xfdd4('0x10')]({'where':{'calleridnum':_0x4b4f1d['phone'],'VoiceQueueId':_0x36e611['id']}});})[_0xfdd4('0x11')](function(_0x1112e8){if(!_[_0xfdd4('0x12')](_0x1112e8)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x4b4f1d[_0xfdd4('0x9')]+_0xfdd4('0x1e')+_0x36e611['id']);}return _0x4ee02f[_0xfdd4('0x14')][_0xfdd4('0x15')]({'phone':_0x4b4f1d[_0xfdd4('0x9')],'ContactId':_0x4b4f1d['id'],'ListId':_0x4b4f1d['ListId'],'priority':_0x4b4f1d[_0xfdd4('0x1f')]?_0x4b4f1d[_0xfdd4('0x1f')]:0x2,'scheduledat':_0x4b4f1d[_0xfdd4('0x16')]?_0x4b4f1d[_0xfdd4('0x16')]:moment()[_0xfdd4('0x17')](_0xfdd4('0x18')),'callback':_0x4b4f1d[_0xfdd4('0x19')]?!![]:![],'callbackuniqueid':_0x4b4f1d[_0xfdd4('0x19')]?_0x4b4f1d['callbackUniqueid']:undefined,'callbackat':_0x4b4f1d[_0xfdd4('0x19')]?moment()[_0xfdd4('0x17')](_0xfdd4('0x18')):undefined,'VoiceQueueId':_0x36e611['id']});})[_0xfdd4('0x1a')](function(_0x2207ae){_0x29cc8d(_0x2207ae);});});};function _0x4a36a2(){return function(_0xd127b1){logger[_0xfdd4('0xc')](_0xfdd4('0xd'),_0xfdd4('0xe'),util[_0xfdd4('0xf')](_0xd127b1,{'showHidden':![],'depth':null}));};}var _0x4d64ce=function(_0x374e98){return new BPromise(function(_0x315568,_0x2ab99e){_0x4ee02f['CmHopper'][_0xfdd4('0x10')]({'where':{'phone':_0x4b4f1d['phone'],'CampaignId':_0x374e98['id']}})[_0xfdd4('0x11')](function(_0x2b22f9){if(!_['isNil'](_0x2b22f9)){throw new Error('cmContact,\x20afterCreate\x20'+_0x4b4f1d[_0xfdd4('0x9')]+_0xfdd4('0x20')+_0x374e98['id']);}return _0x4ee02f['CmHopper']['create']({'phone':_0x4b4f1d[_0xfdd4('0x9')],'ContactId':_0x4b4f1d['id'],'ListId':_0x4b4f1d[_0xfdd4('0x21')],'priority':_0x4b4f1d[_0xfdd4('0x1f')]?_0x4b4f1d[_0xfdd4('0x1f')]:0x2,'scheduledat':_0x4b4f1d[_0xfdd4('0x16')]?_0x4b4f1d[_0xfdd4('0x16')]:moment()[_0xfdd4('0x17')](_0xfdd4('0x18')),'callback':_0x4b4f1d[_0xfdd4('0x19')]?!![]:![],'callbackuniqueid':_0x4b4f1d[_0xfdd4('0x19')]?_0x4b4f1d[_0xfdd4('0x19')]:undefined,'callbackat':_0x4b4f1d[_0xfdd4('0x19')]?moment()[_0xfdd4('0x17')](_0xfdd4('0x18')):undefined,'CampaignId':_0x374e98['id']});})[_0xfdd4('0x1a')](function(_0x3f5c5a){_0x2ab99e(_0x3f5c5a);});});};var _0x261d87=function(_0x3a0102){return new BPromise(function(_0x2abe77,_0x4037c4){_0x4ee02f[_0xfdd4('0x14')][_0xfdd4('0x10')]({'where':{'phone':_0x4b4f1d[_0xfdd4('0x9')],'CampaignId':_0x3a0102['id']}})[_0xfdd4('0x11')](function(_0x301824){if(!_[_0xfdd4('0x12')](_0x301824)){throw new Error('cmContact,\x20afterCreate\x20'+_0x4b4f1d[_0xfdd4('0x9')]+_0xfdd4('0x22')+_0x3a0102['id']);}return _0x4ee02f[_0xfdd4('0x1d')][_0xfdd4('0x10')]({'where':{'calleridnum':_0x4b4f1d[_0xfdd4('0x9')],'CampaignId':_0x3a0102['id']}});})[_0xfdd4('0x11')](function(_0x4a016a){if(!_[_0xfdd4('0x12')](_0x4a016a)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x4b4f1d[_0xfdd4('0x9')]+_0xfdd4('0x23')+_0x3a0102['id']);}return _0x4ee02f[_0xfdd4('0x14')][_0xfdd4('0x15')]({'phone':_0x4b4f1d['phone'],'ContactId':_0x4b4f1d['id'],'ListId':_0x4b4f1d[_0xfdd4('0x21')],'priority':_0x4b4f1d[_0xfdd4('0x1f')]?_0x4b4f1d[_0xfdd4('0x1f')]:0x2,'scheduledat':_0x4b4f1d[_0xfdd4('0x16')]?_0x4b4f1d[_0xfdd4('0x16')]:moment()[_0xfdd4('0x17')](_0xfdd4('0x18')),'callback':_0x4b4f1d[_0xfdd4('0x19')]?!![]:![],'callbackuniqueid':_0x4b4f1d[_0xfdd4('0x19')]?_0x4b4f1d[_0xfdd4('0x19')]:undefined,'callbackat':_0x4b4f1d['callbackUniqueid']?moment()[_0xfdd4('0x17')](_0xfdd4('0x18')):undefined,'CampaignId':_0x3a0102['id']});})[_0xfdd4('0x1a')](function(_0x67a1e3){_0x4037c4(_0x67a1e3);});});};if(_0x4b4f1d['ListId']){_0x4ee02f[_0xfdd4('0x24')][_0xfdd4('0x25')]({'where':{'type':_0xfdd4('0x26')},'attributes':['id',_0xfdd4('0x27')],'include':[{'model':_0x4ee02f[_0xfdd4('0x28')],'as':'Lists','where':{'id':_0x4b4f1d[_0xfdd4('0x21')]}}]})[_0xfdd4('0x11')](function(_0xd3780d){if(_0xd3780d){var _0x11f1ed=[];for(var _0x912520=0x0,_0x1fc778;_0x912520<_0xd3780d[_0xfdd4('0x29')];_0x912520+=0x1){_0x1fc778=_0xd3780d[_0x912520]['get']({'plain':!![]});switch(_0x1fc778[_0xfdd4('0x27')]){case'always':_0x2dc51c(_0x1fc778)[_0xfdd4('0x1a')](_0x3ce77a());break;case _0xfdd4('0x2a'):_0x1c71c4(_0x1fc778)[_0xfdd4('0x1a')](_0x3ce77a());break;default:_0x4ee02f[_0xfdd4('0x14')]['create']({'phone':_0x4b4f1d[_0xfdd4('0x9')],'ContactId':_0x4b4f1d['id'],'ListId':_0x4b4f1d[_0xfdd4('0x21')],'scheduledat':_0x4b4f1d['scheduledat']?_0x4b4f1d[_0xfdd4('0x16')]:moment()[_0xfdd4('0x17')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x4b4f1d[_0xfdd4('0x1f')]?_0x4b4f1d['priority']:0x2,'callback':_0x4b4f1d['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x4b4f1d['callbackUniqueid']?_0x4b4f1d[_0xfdd4('0x19')]:undefined,'callbackat':_0x4b4f1d[_0xfdd4('0x19')]?moment()[_0xfdd4('0x17')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x1fc778['id']})[_0xfdd4('0x1a')](_0x3ce77a());}}}})[_0xfdd4('0x11')](function(){return _0x4ee02f['VoiceQueue'][_0xfdd4('0x25')]({'where':{'type':_0xfdd4('0x26')},'attributes':['id'],'include':[{'model':_0x4ee02f[_0xfdd4('0x28')],'as':_0xfdd4('0x2b'),'where':{'id':_0x4b4f1d[_0xfdd4('0x21')]}}]})[_0xfdd4('0x11')](function(_0x2578eb){if(_0x2578eb){var _0x2bec0c=[];for(var _0x393c11=0x0,_0xe82eff;_0x393c11<_0x2578eb[_0xfdd4('0x29')];_0x393c11+=0x1){_0xe82eff=_0x2578eb[_0x393c11][_0xfdd4('0xb')]({'plain':!![]});_0x4ee02f[_0xfdd4('0x2c')][_0xfdd4('0x15')]({'phone':_0x4b4f1d['phone'],'ContactId':_0x4b4f1d['id'],'ListId':_0x4b4f1d['ListId'],'VoiceQueueId':_0xe82eff['id']})[_0xfdd4('0x1a')](function(_0x222902){logger[_0xfdd4('0xc')](_0xfdd4('0x2d'),'afterCreate',_0x222902[_0xfdd4('0x2e')]);});}}});})[_0xfdd4('0x11')](function(){return _0x4ee02f['Campaign']['findAll']({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0x4ee02f['CmList'],'as':'Lists','where':{'id':_0x4b4f1d[_0xfdd4('0x21')]}}]})[_0xfdd4('0x11')](function(_0x3a4202){if(_0x3a4202){var _0x1bbac9=[];for(var _0x35c032=0x0,_0x49bc61;_0x35c032<_0x3a4202['length'];_0x35c032+=0x1){_0x49bc61=_0x3a4202[_0x35c032][_0xfdd4('0xb')]({'plain':!![]});switch(_0x49bc61[_0xfdd4('0x27')]){case _0xfdd4('0x2f'):_0x261d87(_0x49bc61)[_0xfdd4('0x1a')](_0x4a36a2());break;case'onlyIfOpen':_0x4d64ce(_0x49bc61)[_0xfdd4('0x1a')](_0x4a36a2());break;default:_0x4ee02f[_0xfdd4('0x14')]['create']({'phone':_0x4b4f1d[_0xfdd4('0x9')],'ContactId':_0x4b4f1d['id'],'ListId':_0x4b4f1d[_0xfdd4('0x21')],'scheduledat':_0x4b4f1d['scheduledat']?_0x4b4f1d['scheduledat']:moment()[_0xfdd4('0x17')](_0xfdd4('0x18')),'priority':_0x4b4f1d[_0xfdd4('0x1f')]?_0x4b4f1d[_0xfdd4('0x1f')]:0x2,'callback':_0x4b4f1d[_0xfdd4('0x19')]?!![]:![],'callbackuniqueid':_0x4b4f1d[_0xfdd4('0x19')]?_0x4b4f1d[_0xfdd4('0x19')]:undefined,'callbackat':_0x4b4f1d[_0xfdd4('0x19')]?moment()['format'](_0xfdd4('0x18')):undefined,'CampaignId':_0x49bc61['id']})['catch'](_0x4a36a2());}}}});})['then'](function(){return _0x4ee02f[_0xfdd4('0x30')][_0xfdd4('0x25')]({'attributes':['id'],'include':[{'model':_0x4ee02f['CmList'],'as':'BlackLists','where':{'id':_0x4b4f1d['ListId']}}]})[_0xfdd4('0x11')](function(_0x44070c){if(_0x44070c){var _0x4dc113=[];for(var _0x86d021=0x0,_0x1cee9f;_0x86d021<_0x44070c[_0xfdd4('0x29')];_0x86d021+=0x1){_0x1cee9f=_0x44070c[_0x86d021][_0xfdd4('0xb')]({'plain':!![]});_0x4ee02f[_0xfdd4('0x2c')]['create']({'phone':_0x4b4f1d['phone'],'ContactId':_0x4b4f1d['id'],'ListId':_0x4b4f1d['ListId'],'CampaignId':_0x1cee9f['id']})['catch'](function(_0x3e5cb0){logger[_0xfdd4('0xc')]('cmContact,\x20%s,\x20%s',_0xfdd4('0xe'),_0x3e5cb0[_0xfdd4('0x2e')]);});}}});})['then'](function(){_0x1e823e();})[_0xfdd4('0x1a')](function(_0x118eb0){logger['error'](_0xfdd4('0x2d'),_0xfdd4('0xe'),_0x118eb0[_0xfdd4('0x2e')]);_0x1e823e(_0x118eb0);});}else{_0x1e823e(new Error('List\x20not\x20found'));}},'afterDestroy':function(_0x2cc8ca,_0x3417dd,_0xe3e5a8){var _0xf3da83=_0x43cbcf[_0xfdd4('0xa')];var _0x562417=_0x2cc8ca[_0xfdd4('0xb')]({'plain':!![]});return _0xf3da83[_0xfdd4('0x14')][_0xfdd4('0x25')]({'raw':!![],'where':{'ListId':_0x562417[_0xfdd4('0x21')],'ContactId':_0x562417['id']}})[_0xfdd4('0x11')](function(_0x14f45c){if(!_[_0xfdd4('0x31')](_0x14f45c)){var _0x30e9c0=[];for(var _0x38b58b=0x0;_0x38b58b<_0x14f45c['length'];_0x38b58b+=0x1){var _0x335b6e=_0xf3da83[_0xfdd4('0x14')][_0xfdd4('0x32')]({'where':{'ListId':_0x14f45c[_0x38b58b][_0xfdd4('0x21')],'ContactId':_0x14f45c[_0x38b58b][_0xfdd4('0x33')],'VoiceQueueId':_0x14f45c[_0x38b58b]['VoiceQueueId'],'CampaignId':_0x14f45c[_0x38b58b][_0xfdd4('0x34')]}});_0x30e9c0[_0xfdd4('0x35')](_0x335b6e);}return BPromise[_0xfdd4('0x36')](_0x30e9c0);}})[_0xfdd4('0x11')](function(_0x383175){logger[_0xfdd4('0x37')](_0xfdd4('0x38'),util[_0xfdd4('0xf')](_0x383175,{'showHidden':![],'depth':null}));_0xe3e5a8();})[_0xfdd4('0x1a')](function(_0x2a0dd8){logger[_0xfdd4('0xc')](_0xfdd4('0x39'),util[_0xfdd4('0xf')](_0x2a0dd8,{'showHidden':![],'depth':null}));_0xe3e5a8(_0x2a0dd8);});}}});};