Built motion from commit (unavailable).|2.5.14
[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 _0xaf0d=['info','[CmContact][afterDestroy][Succesfull]','inspect','util','../../config/logger','rimraf','../../config/environment','./cmContact.attributes','cm_contacts','phone','fti_cm_contacts','fax','email','get','error','cmContact','findOne','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopper','create','priority','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','then','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopperFinal','ListId','catch','afterCreate','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','findAll','outbound','dialCheckDuplicateType','Lists','length','always','onlyIfOpen','VoiceQueue','CmList','CmHopperBlack','message','Campaign','cmContact,\x20%s,\x20%s','models','isEmpty','destroy','VoiceQueueId','CampaignId','all'];(function(_0x3eff40,_0x1cdf9e){var _0x4ee4fb=function(_0x4b7170){while(--_0x4b7170){_0x3eff40['push'](_0x3eff40['shift']());}};_0x4ee4fb(++_0x1cdf9e);}(_0xaf0d,0x6d));var _0xdaf0=function(_0x5bb83d,_0x44cccb){_0x5bb83d=_0x5bb83d-0x0;var _0x702fe5=_0xaf0d[_0x5bb83d];return _0x702fe5;};'use strict';var _=require('lodash');var util=require(_0xdaf0('0x0'));var logger=require(_0xdaf0('0x1'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xdaf0('0x2'));var config=require(_0xdaf0('0x3'));var attributes=require(_0xdaf0('0x4'));module['exports']=function(_0x35fe4f,_0x14b19d){return _0x35fe4f['define']('CmContact',attributes,{'tableName':_0xdaf0('0x5'),'paranoid':!![],'indexes':[{'name':_0xdaf0('0x6'),'fields':[_0xdaf0('0x6')]},{'name':_0xdaf0('0x7'),'fields':['firstName','lastName','phone','mobile',_0xdaf0('0x8'),_0xdaf0('0x9')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x3fe035,_0x187d90,_0x682267){var _0xd725d8=_0x35fe4f['models'];var _0x2bc83b=_0x3fe035[_0xdaf0('0xa')]({'plain':!![]});function _0x1e7a70(){return function(_0x4fbd9c){logger[_0xdaf0('0xb')](_0xdaf0('0xc'),'afterCreate',util['inspect'](_0x4fbd9c,{'showHidden':![],'depth':null}));};}var _0x48ea31=function(_0x4f0b4a){return new BPromise(function(_0x59c852,_0x3221f6){_0xd725d8['CmHopper'][_0xdaf0('0xd')]({'where':{'phone':_0x2bc83b['phone'],'VoiceQueueId':_0x4f0b4a['id']}})['then'](function(_0x3b5edf){if(!_[_0xdaf0('0xe')](_0x3b5edf)){throw new Error(_0xdaf0('0xf')+_0x2bc83b['phone']+_0xdaf0('0x10')+_0x4f0b4a['id']);}return _0xd725d8[_0xdaf0('0x11')][_0xdaf0('0x12')]({'phone':_0x2bc83b['phone'],'ContactId':_0x2bc83b['id'],'ListId':_0x2bc83b['ListId'],'priority':_0x2bc83b[_0xdaf0('0x13')]?_0x2bc83b[_0xdaf0('0x13')]:0x2,'scheduledat':_0x2bc83b[_0xdaf0('0x14')]?_0x2bc83b[_0xdaf0('0x14')]:moment()[_0xdaf0('0x15')](_0xdaf0('0x16')),'callback':_0x2bc83b[_0xdaf0('0x17')]?!![]:![],'callbackuniqueid':_0x2bc83b['callbackUniqueid']?_0x2bc83b[_0xdaf0('0x17')]:undefined,'callbackat':_0x2bc83b[_0xdaf0('0x17')]?moment()[_0xdaf0('0x15')](_0xdaf0('0x16')):undefined,'VoiceQueueId':_0x4f0b4a['id']});})['catch'](function(_0x176ca4){_0x3221f6(_0x176ca4);});});};var _0x320d6e=function(_0x100817){return new BPromise(function(_0xdc104f,_0x4daa2c){_0xd725d8[_0xdaf0('0x11')][_0xdaf0('0xd')]({'where':{'phone':_0x2bc83b[_0xdaf0('0x6')],'VoiceQueueId':_0x100817['id']}})[_0xdaf0('0x18')](function(_0xb921d5){if(!_[_0xdaf0('0xe')](_0xb921d5)){throw new Error(_0xdaf0('0xf')+_0x2bc83b['phone']+_0xdaf0('0x19')+_0x100817['id']);}return _0xd725d8[_0xdaf0('0x1a')][_0xdaf0('0xd')]({'where':{'calleridnum':_0x2bc83b[_0xdaf0('0x6')],'VoiceQueueId':_0x100817['id']}});})[_0xdaf0('0x18')](function(_0x688451){if(!_[_0xdaf0('0xe')](_0x688451)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x2bc83b[_0xdaf0('0x6')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20'+_0x100817['id']);}return _0xd725d8[_0xdaf0('0x11')][_0xdaf0('0x12')]({'phone':_0x2bc83b['phone'],'ContactId':_0x2bc83b['id'],'ListId':_0x2bc83b[_0xdaf0('0x1b')],'priority':_0x2bc83b['priority']?_0x2bc83b[_0xdaf0('0x13')]:0x2,'scheduledat':_0x2bc83b[_0xdaf0('0x14')]?_0x2bc83b['scheduledat']:moment()[_0xdaf0('0x15')](_0xdaf0('0x16')),'callback':_0x2bc83b[_0xdaf0('0x17')]?!![]:![],'callbackuniqueid':_0x2bc83b[_0xdaf0('0x17')]?_0x2bc83b[_0xdaf0('0x17')]:undefined,'callbackat':_0x2bc83b['callbackUniqueid']?moment()[_0xdaf0('0x15')](_0xdaf0('0x16')):undefined,'VoiceQueueId':_0x100817['id']});})[_0xdaf0('0x1c')](function(_0x570df5){_0x4daa2c(_0x570df5);});});};function _0x443cc7(){return function(_0x337bfa){logger['error'](_0xdaf0('0xc'),_0xdaf0('0x1d'),util['inspect'](_0x337bfa,{'showHidden':![],'depth':null}));};}var _0x19d3ab=function(_0x1d7a63){return new BPromise(function(_0x44159e,_0x37c6fa){_0xd725d8[_0xdaf0('0x11')][_0xdaf0('0xd')]({'where':{'phone':_0x2bc83b[_0xdaf0('0x6')],'CampaignId':_0x1d7a63['id']}})[_0xdaf0('0x18')](function(_0x3548ff){if(!_[_0xdaf0('0xe')](_0x3548ff)){throw new Error(_0xdaf0('0xf')+_0x2bc83b['phone']+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x1d7a63['id']);}return _0xd725d8['CmHopper'][_0xdaf0('0x12')]({'phone':_0x2bc83b[_0xdaf0('0x6')],'ContactId':_0x2bc83b['id'],'ListId':_0x2bc83b['ListId'],'priority':_0x2bc83b[_0xdaf0('0x13')]?_0x2bc83b[_0xdaf0('0x13')]:0x2,'scheduledat':_0x2bc83b[_0xdaf0('0x14')]?_0x2bc83b[_0xdaf0('0x14')]:moment()[_0xdaf0('0x15')](_0xdaf0('0x16')),'callback':_0x2bc83b[_0xdaf0('0x17')]?!![]:![],'callbackuniqueid':_0x2bc83b[_0xdaf0('0x17')]?_0x2bc83b[_0xdaf0('0x17')]:undefined,'callbackat':_0x2bc83b[_0xdaf0('0x17')]?moment()[_0xdaf0('0x15')](_0xdaf0('0x16')):undefined,'CampaignId':_0x1d7a63['id']});})[_0xdaf0('0x1c')](function(_0x258f39){_0x37c6fa(_0x258f39);});});};var _0x370849=function(_0xae1660){return new BPromise(function(_0x3c37b1,_0x52b745){_0xd725d8[_0xdaf0('0x11')][_0xdaf0('0xd')]({'where':{'phone':_0x2bc83b[_0xdaf0('0x6')],'CampaignId':_0xae1660['id']}})[_0xdaf0('0x18')](function(_0x435d00){if(!_[_0xdaf0('0xe')](_0x435d00)){throw new Error(_0xdaf0('0xf')+_0x2bc83b[_0xdaf0('0x6')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0xae1660['id']);}return _0xd725d8['CmHopperFinal'][_0xdaf0('0xd')]({'where':{'calleridnum':_0x2bc83b[_0xdaf0('0x6')],'CampaignId':_0xae1660['id']}});})[_0xdaf0('0x18')](function(_0x4fe944){if(!_[_0xdaf0('0xe')](_0x4fe944)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x2bc83b[_0xdaf0('0x6')]+_0xdaf0('0x1e')+_0xae1660['id']);}return _0xd725d8[_0xdaf0('0x11')][_0xdaf0('0x12')]({'phone':_0x2bc83b[_0xdaf0('0x6')],'ContactId':_0x2bc83b['id'],'ListId':_0x2bc83b[_0xdaf0('0x1b')],'priority':_0x2bc83b[_0xdaf0('0x13')]?_0x2bc83b['priority']:0x2,'scheduledat':_0x2bc83b[_0xdaf0('0x14')]?_0x2bc83b[_0xdaf0('0x14')]:moment()['format'](_0xdaf0('0x16')),'callback':_0x2bc83b['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x2bc83b['callbackUniqueid']?_0x2bc83b[_0xdaf0('0x17')]:undefined,'callbackat':_0x2bc83b['callbackUniqueid']?moment()[_0xdaf0('0x15')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0xae1660['id']});})[_0xdaf0('0x1c')](function(_0x51cf56){_0x52b745(_0x51cf56);});});};if(_0x2bc83b[_0xdaf0('0x1b')]){_0xd725d8['VoiceQueue'][_0xdaf0('0x1f')]({'where':{'type':_0xdaf0('0x20')},'attributes':['id',_0xdaf0('0x21')],'include':[{'model':_0xd725d8['CmList'],'as':_0xdaf0('0x22'),'where':{'id':_0x2bc83b[_0xdaf0('0x1b')]}}]})[_0xdaf0('0x18')](function(_0x2a306b){if(_0x2a306b){var _0x28c883=[];for(var _0x105ebf=0x0,_0x1f12ac;_0x105ebf<_0x2a306b[_0xdaf0('0x23')];_0x105ebf+=0x1){_0x1f12ac=_0x2a306b[_0x105ebf]['get']({'plain':!![]});switch(_0x1f12ac[_0xdaf0('0x21')]){case _0xdaf0('0x24'):_0x320d6e(_0x1f12ac)['catch'](_0x1e7a70());break;case _0xdaf0('0x25'):_0x48ea31(_0x1f12ac)[_0xdaf0('0x1c')](_0x1e7a70());break;default:_0xd725d8[_0xdaf0('0x11')][_0xdaf0('0x12')]({'phone':_0x2bc83b[_0xdaf0('0x6')],'ContactId':_0x2bc83b['id'],'ListId':_0x2bc83b[_0xdaf0('0x1b')],'scheduledat':_0x2bc83b[_0xdaf0('0x14')]?_0x2bc83b['scheduledat']:moment()[_0xdaf0('0x15')](_0xdaf0('0x16')),'priority':_0x2bc83b['priority']?_0x2bc83b['priority']:0x2,'callback':_0x2bc83b['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x2bc83b[_0xdaf0('0x17')]?_0x2bc83b[_0xdaf0('0x17')]:undefined,'callbackat':_0x2bc83b[_0xdaf0('0x17')]?moment()[_0xdaf0('0x15')](_0xdaf0('0x16')):undefined,'VoiceQueueId':_0x1f12ac['id']})[_0xdaf0('0x1c')](_0x1e7a70());}}}})[_0xdaf0('0x18')](function(){return _0xd725d8[_0xdaf0('0x26')][_0xdaf0('0x1f')]({'where':{'type':_0xdaf0('0x20')},'attributes':['id'],'include':[{'model':_0xd725d8[_0xdaf0('0x27')],'as':'BlackLists','where':{'id':_0x2bc83b[_0xdaf0('0x1b')]}}]})[_0xdaf0('0x18')](function(_0x1e4bdf){if(_0x1e4bdf){var _0x535a4a=[];for(var _0x3faf6d=0x0,_0x8c6018;_0x3faf6d<_0x1e4bdf['length'];_0x3faf6d+=0x1){_0x8c6018=_0x1e4bdf[_0x3faf6d][_0xdaf0('0xa')]({'plain':!![]});_0xd725d8[_0xdaf0('0x28')]['create']({'phone':_0x2bc83b[_0xdaf0('0x6')],'ContactId':_0x2bc83b['id'],'ListId':_0x2bc83b[_0xdaf0('0x1b')],'VoiceQueueId':_0x8c6018['id']})[_0xdaf0('0x1c')](function(_0x2438e0){logger[_0xdaf0('0xb')]('cmContact,\x20%s,\x20%s',_0xdaf0('0x1d'),_0x2438e0[_0xdaf0('0x29')]);});}}});})[_0xdaf0('0x18')](function(){return _0xd725d8[_0xdaf0('0x2a')][_0xdaf0('0x1f')]({'attributes':['id',_0xdaf0('0x21')],'include':[{'model':_0xd725d8['CmList'],'as':_0xdaf0('0x22'),'where':{'id':_0x2bc83b[_0xdaf0('0x1b')]}}]})[_0xdaf0('0x18')](function(_0x13f28e){if(_0x13f28e){var _0x2697ee=[];for(var _0x485b82=0x0,_0x3dfc63;_0x485b82<_0x13f28e[_0xdaf0('0x23')];_0x485b82+=0x1){_0x3dfc63=_0x13f28e[_0x485b82][_0xdaf0('0xa')]({'plain':!![]});switch(_0x3dfc63[_0xdaf0('0x21')]){case _0xdaf0('0x24'):_0x370849(_0x3dfc63)[_0xdaf0('0x1c')](_0x443cc7());break;case'onlyIfOpen':_0x19d3ab(_0x3dfc63)[_0xdaf0('0x1c')](_0x443cc7());break;default:_0xd725d8[_0xdaf0('0x11')][_0xdaf0('0x12')]({'phone':_0x2bc83b['phone'],'ContactId':_0x2bc83b['id'],'ListId':_0x2bc83b[_0xdaf0('0x1b')],'scheduledat':_0x2bc83b[_0xdaf0('0x14')]?_0x2bc83b[_0xdaf0('0x14')]:moment()[_0xdaf0('0x15')](_0xdaf0('0x16')),'priority':_0x2bc83b[_0xdaf0('0x13')]?_0x2bc83b[_0xdaf0('0x13')]:0x2,'callback':_0x2bc83b[_0xdaf0('0x17')]?!![]:![],'callbackuniqueid':_0x2bc83b['callbackUniqueid']?_0x2bc83b[_0xdaf0('0x17')]:undefined,'callbackat':_0x2bc83b['callbackUniqueid']?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x3dfc63['id']})[_0xdaf0('0x1c')](_0x443cc7());}}}});})[_0xdaf0('0x18')](function(){return _0xd725d8['Campaign'][_0xdaf0('0x1f')]({'attributes':['id'],'include':[{'model':_0xd725d8['CmList'],'as':'BlackLists','where':{'id':_0x2bc83b[_0xdaf0('0x1b')]}}]})[_0xdaf0('0x18')](function(_0x4b5646){if(_0x4b5646){var _0x51f8c0=[];for(var _0x4a2bb8=0x0,_0x2be41b;_0x4a2bb8<_0x4b5646[_0xdaf0('0x23')];_0x4a2bb8+=0x1){_0x2be41b=_0x4b5646[_0x4a2bb8][_0xdaf0('0xa')]({'plain':!![]});_0xd725d8[_0xdaf0('0x28')]['create']({'phone':_0x2bc83b[_0xdaf0('0x6')],'ContactId':_0x2bc83b['id'],'ListId':_0x2bc83b[_0xdaf0('0x1b')],'CampaignId':_0x2be41b['id']})[_0xdaf0('0x1c')](function(_0x5c2a7e){logger[_0xdaf0('0xb')](_0xdaf0('0x2b'),_0xdaf0('0x1d'),_0x5c2a7e['message']);});}}});})[_0xdaf0('0x18')](function(){_0x682267();})['catch'](function(_0x212741){logger['error']('cmContact,\x20%s,\x20%s','afterCreate',_0x212741['message']);_0x682267(_0x212741);});}else{_0x682267(new Error('List\x20not\x20found'));}},'afterDestroy':function(_0x349f3d,_0x133888,_0x153abe){var _0x245924=_0x35fe4f[_0xdaf0('0x2c')];var _0x5c6a94=_0x349f3d[_0xdaf0('0xa')]({'plain':!![]});return _0x245924[_0xdaf0('0x11')][_0xdaf0('0x1f')]({'raw':!![],'where':{'ListId':_0x5c6a94[_0xdaf0('0x1b')],'ContactId':_0x5c6a94['id']}})[_0xdaf0('0x18')](function(_0xd18392){if(!_[_0xdaf0('0x2d')](_0xd18392)){var _0xba1787=[];for(var _0x2b2400=0x0;_0x2b2400<_0xd18392[_0xdaf0('0x23')];_0x2b2400+=0x1){var _0x473199=_0x245924[_0xdaf0('0x11')][_0xdaf0('0x2e')]({'where':{'ListId':_0xd18392[_0x2b2400][_0xdaf0('0x1b')],'ContactId':_0xd18392[_0x2b2400]['ContactId'],'VoiceQueueId':_0xd18392[_0x2b2400][_0xdaf0('0x2f')],'CampaignId':_0xd18392[_0x2b2400][_0xdaf0('0x30')]}});_0xba1787['push'](_0x473199);}return BPromise[_0xdaf0('0x31')](_0xba1787);}})[_0xdaf0('0x18')](function(_0x1414e3){logger[_0xdaf0('0x32')](_0xdaf0('0x33'),util[_0xdaf0('0x34')](_0x1414e3,{'showHidden':![],'depth':null}));_0x153abe();})[_0xdaf0('0x1c')](function(_0x2838c0){logger[_0xdaf0('0xb')]('[CmContact][afterDestroy][Error]',util[_0xdaf0('0x34')](_0x2838c0,{'showHidden':![],'depth':null}));_0x153abe(_0x2838c0);});}}});};