Built motion from commit 43538d75.|2.5.35
[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 _0x7d77=['length','onlyIfOpen','VoiceQueue','BlackLists','CmHopperBlack','message','Campaign','always','cmContact,\x20%s,\x20%s','List\x20not\x20found','isEmpty','VoiceQueueId','push','all','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','api','bluebird','path','rimraf','../../config/environment','./cmContact.attributes','exports','define','CmContact','cm_contacts','phone','fti_cm_contacts','firstName','mobile','utf8mb4','utf8mb4_unicode_ci','models','get','error','cmContact','afterCreate','inspect','CmHopper','then','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create','ListId','priority','scheduledat','format','callbackUniqueid','YYYY-MM-DD\x20HH:mm:ss','catch','findOne','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','cmContact,\x20afterCreate,\x20','\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','CmHopperFinal','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','findAll','outbound','dialCheckDuplicateType','CmList','Lists'];(function(_0x412f42,_0x3d1675){var _0xa0d021=function(_0x7b52c2){while(--_0x7b52c2){_0x412f42['push'](_0x412f42['shift']());}};_0xa0d021(++_0x3d1675);}(_0x7d77,0x11d));var _0x77d7=function(_0x330414,_0x4f3207){_0x330414=_0x330414-0x0;var _0x99dbff=_0x7d77[_0x330414];return _0x99dbff;};'use strict';var _=require(_0x77d7('0x0'));var util=require(_0x77d7('0x1'));var logger=require(_0x77d7('0x2'))(_0x77d7('0x3'));var moment=require('moment');var BPromise=require(_0x77d7('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x77d7('0x5'));var rimraf=require(_0x77d7('0x6'));var config=require(_0x77d7('0x7'));var attributes=require(_0x77d7('0x8'));module[_0x77d7('0x9')]=function(_0x31a4fa,_0x50add7){return _0x31a4fa[_0x77d7('0xa')](_0x77d7('0xb'),attributes,{'tableName':_0x77d7('0xc'),'paranoid':!![],'indexes':[{'name':_0x77d7('0xd'),'fields':[_0x77d7('0xd')]},{'name':_0x77d7('0xe'),'fields':[_0x77d7('0xf'),'lastName','phone',_0x77d7('0x10'),'fax','email'],'type':'FULLTEXT'}],'timestamps':!![],'charset':_0x77d7('0x11'),'collate':_0x77d7('0x12'),'hooks':{'afterCreate':function(_0x55efa5,_0x471fb9,_0x2aacc6){var _0xf423f=_0x31a4fa[_0x77d7('0x13')];var _0x2417e4=_0x55efa5[_0x77d7('0x14')]({'plain':!![]});function _0x506454(){return function(_0x3a8e4e){logger[_0x77d7('0x15')](_0x77d7('0x16'),_0x77d7('0x17'),util[_0x77d7('0x18')](_0x3a8e4e,{'showHidden':![],'depth':null}));};}var _0x1ffc57=function(_0x300f9e){return new BPromise(function(_0x450620,_0x33630f){_0xf423f[_0x77d7('0x19')]['findOne']({'where':{'phone':_0x2417e4[_0x77d7('0xd')],'VoiceQueueId':_0x300f9e['id']}})[_0x77d7('0x1a')](function(_0x253902){if(!_[_0x77d7('0x1b')](_0x253902)){throw new Error(_0x77d7('0x1c')+_0x2417e4[_0x77d7('0xd')]+_0x77d7('0x1d')+_0x300f9e['id']);}return _0xf423f[_0x77d7('0x19')][_0x77d7('0x1e')]({'phone':_0x2417e4[_0x77d7('0xd')],'ContactId':_0x2417e4['id'],'ListId':_0x2417e4[_0x77d7('0x1f')],'priority':_0x2417e4[_0x77d7('0x20')]?_0x2417e4[_0x77d7('0x20')]:0x2,'scheduledat':_0x2417e4[_0x77d7('0x21')]?_0x2417e4[_0x77d7('0x21')]:moment()[_0x77d7('0x22')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x2417e4[_0x77d7('0x23')]?!![]:![],'callbackuniqueid':_0x2417e4['callbackUniqueid']?_0x2417e4['callbackUniqueid']:undefined,'callbackat':_0x2417e4[_0x77d7('0x23')]?moment()[_0x77d7('0x22')](_0x77d7('0x24')):undefined,'VoiceQueueId':_0x300f9e['id']});})[_0x77d7('0x25')](function(_0x52c9d6){_0x33630f(_0x52c9d6);});});};var _0x2fd147=function(_0x25b80f){return new BPromise(function(_0x5867a1,_0x482c25){_0xf423f[_0x77d7('0x19')][_0x77d7('0x26')]({'where':{'phone':_0x2417e4['phone'],'VoiceQueueId':_0x25b80f['id']}})[_0x77d7('0x1a')](function(_0x576952){if(!_[_0x77d7('0x1b')](_0x576952)){throw new Error(_0x77d7('0x1c')+_0x2417e4['phone']+_0x77d7('0x27')+_0x25b80f['id']);}return _0xf423f['CmHopperFinal'][_0x77d7('0x26')]({'where':{'calleridnum':_0x2417e4[_0x77d7('0xd')],'VoiceQueueId':_0x25b80f['id']}});})[_0x77d7('0x1a')](function(_0x3367b6){if(!_[_0x77d7('0x1b')](_0x3367b6)){throw new Error(_0x77d7('0x28')+_0x2417e4['phone']+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20'+_0x25b80f['id']);}return _0xf423f[_0x77d7('0x19')]['create']({'phone':_0x2417e4[_0x77d7('0xd')],'ContactId':_0x2417e4['id'],'ListId':_0x2417e4[_0x77d7('0x1f')],'priority':_0x2417e4[_0x77d7('0x20')]?_0x2417e4[_0x77d7('0x20')]:0x2,'scheduledat':_0x2417e4['scheduledat']?_0x2417e4[_0x77d7('0x21')]:moment()[_0x77d7('0x22')](_0x77d7('0x24')),'callback':_0x2417e4[_0x77d7('0x23')]?!![]:![],'callbackuniqueid':_0x2417e4['callbackUniqueid']?_0x2417e4[_0x77d7('0x23')]:undefined,'callbackat':_0x2417e4[_0x77d7('0x23')]?moment()[_0x77d7('0x22')](_0x77d7('0x24')):undefined,'VoiceQueueId':_0x25b80f['id']});})[_0x77d7('0x25')](function(_0x5db7bd){_0x482c25(_0x5db7bd);});});};function _0x1f5c05(){return function(_0x5ec419){logger[_0x77d7('0x15')]('cmContact','afterCreate',util[_0x77d7('0x18')](_0x5ec419,{'showHidden':![],'depth':null}));};}var _0x1b1905=function(_0x15f4f1){return new BPromise(function(_0x459658,_0x3ff4aa){_0xf423f[_0x77d7('0x19')][_0x77d7('0x26')]({'where':{'phone':_0x2417e4['phone'],'CampaignId':_0x15f4f1['id']}})[_0x77d7('0x1a')](function(_0x31a3aa){if(!_[_0x77d7('0x1b')](_0x31a3aa)){throw new Error(_0x77d7('0x1c')+_0x2417e4[_0x77d7('0xd')]+_0x77d7('0x29')+_0x15f4f1['id']);}return _0xf423f[_0x77d7('0x19')][_0x77d7('0x1e')]({'phone':_0x2417e4[_0x77d7('0xd')],'ContactId':_0x2417e4['id'],'ListId':_0x2417e4['ListId'],'priority':_0x2417e4['priority']?_0x2417e4['priority']:0x2,'scheduledat':_0x2417e4[_0x77d7('0x21')]?_0x2417e4[_0x77d7('0x21')]:moment()['format'](_0x77d7('0x24')),'callback':_0x2417e4[_0x77d7('0x23')]?!![]:![],'callbackuniqueid':_0x2417e4[_0x77d7('0x23')]?_0x2417e4[_0x77d7('0x23')]:undefined,'callbackat':_0x2417e4[_0x77d7('0x23')]?moment()[_0x77d7('0x22')](_0x77d7('0x24')):undefined,'CampaignId':_0x15f4f1['id']});})['catch'](function(_0xd683d3){_0x3ff4aa(_0xd683d3);});});};var _0x121117=function(_0x28ce04){return new BPromise(function(_0x59188b,_0x1975c2){_0xf423f[_0x77d7('0x19')][_0x77d7('0x26')]({'where':{'phone':_0x2417e4[_0x77d7('0xd')],'CampaignId':_0x28ce04['id']}})[_0x77d7('0x1a')](function(_0x383c6d){if(!_[_0x77d7('0x1b')](_0x383c6d)){throw new Error(_0x77d7('0x1c')+_0x2417e4[_0x77d7('0xd')]+_0x77d7('0x2a')+_0x28ce04['id']);}return _0xf423f[_0x77d7('0x2b')][_0x77d7('0x26')]({'where':{'calleridnum':_0x2417e4[_0x77d7('0xd')],'CampaignId':_0x28ce04['id']}});})[_0x77d7('0x1a')](function(_0x5e140f){if(!_[_0x77d7('0x1b')](_0x5e140f)){throw new Error(_0x77d7('0x28')+_0x2417e4[_0x77d7('0xd')]+_0x77d7('0x2c')+_0x28ce04['id']);}return _0xf423f[_0x77d7('0x19')][_0x77d7('0x1e')]({'phone':_0x2417e4['phone'],'ContactId':_0x2417e4['id'],'ListId':_0x2417e4[_0x77d7('0x1f')],'priority':_0x2417e4[_0x77d7('0x20')]?_0x2417e4[_0x77d7('0x20')]:0x2,'scheduledat':_0x2417e4[_0x77d7('0x21')]?_0x2417e4[_0x77d7('0x21')]:moment()['format'](_0x77d7('0x24')),'callback':_0x2417e4[_0x77d7('0x23')]?!![]:![],'callbackuniqueid':_0x2417e4[_0x77d7('0x23')]?_0x2417e4[_0x77d7('0x23')]:undefined,'callbackat':_0x2417e4[_0x77d7('0x23')]?moment()[_0x77d7('0x22')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x28ce04['id']});})[_0x77d7('0x25')](function(_0x546337){_0x1975c2(_0x546337);});});};if(_0x2417e4[_0x77d7('0x1f')]){_0xf423f['VoiceQueue'][_0x77d7('0x2d')]({'where':{'type':_0x77d7('0x2e')},'attributes':['id',_0x77d7('0x2f')],'include':[{'model':_0xf423f[_0x77d7('0x30')],'as':_0x77d7('0x31'),'where':{'id':_0x2417e4['ListId']}}]})[_0x77d7('0x1a')](function(_0x41f465){if(_0x41f465){var _0x6405e2=[];for(var _0x4ca430=0x0,_0x23fe54;_0x4ca430<_0x41f465[_0x77d7('0x32')];_0x4ca430+=0x1){_0x23fe54=_0x41f465[_0x4ca430][_0x77d7('0x14')]({'plain':!![]});switch(_0x23fe54[_0x77d7('0x2f')]){case'always':_0x2fd147(_0x23fe54)[_0x77d7('0x25')](_0x506454());break;case _0x77d7('0x33'):_0x1ffc57(_0x23fe54)['catch'](_0x506454());break;default:_0xf423f[_0x77d7('0x19')][_0x77d7('0x1e')]({'phone':_0x2417e4[_0x77d7('0xd')],'ContactId':_0x2417e4['id'],'ListId':_0x2417e4[_0x77d7('0x1f')],'scheduledat':_0x2417e4[_0x77d7('0x21')]?_0x2417e4[_0x77d7('0x21')]:moment()[_0x77d7('0x22')](_0x77d7('0x24')),'priority':_0x2417e4['priority']?_0x2417e4['priority']:0x2,'callback':_0x2417e4[_0x77d7('0x23')]?!![]:![],'callbackuniqueid':_0x2417e4[_0x77d7('0x23')]?_0x2417e4['callbackUniqueid']:undefined,'callbackat':_0x2417e4['callbackUniqueid']?moment()['format'](_0x77d7('0x24')):undefined,'VoiceQueueId':_0x23fe54['id']})[_0x77d7('0x25')](_0x506454());}}}})[_0x77d7('0x1a')](function(){return _0xf423f[_0x77d7('0x34')][_0x77d7('0x2d')]({'where':{'type':_0x77d7('0x2e')},'attributes':['id'],'include':[{'model':_0xf423f['CmList'],'as':_0x77d7('0x35'),'where':{'id':_0x2417e4[_0x77d7('0x1f')]}}]})[_0x77d7('0x1a')](function(_0xabc143){if(_0xabc143){var _0x40c637=[];for(var _0x2afa87=0x0,_0x4c512d;_0x2afa87<_0xabc143['length'];_0x2afa87+=0x1){_0x4c512d=_0xabc143[_0x2afa87][_0x77d7('0x14')]({'plain':!![]});_0xf423f[_0x77d7('0x36')][_0x77d7('0x1e')]({'phone':_0x2417e4['phone'],'ContactId':_0x2417e4['id'],'ListId':_0x2417e4[_0x77d7('0x1f')],'VoiceQueueId':_0x4c512d['id']})['catch'](function(_0x3a879a){logger[_0x77d7('0x15')]('cmContact,\x20%s,\x20%s','afterCreate',_0x3a879a[_0x77d7('0x37')]);});}}});})['then'](function(){return _0xf423f[_0x77d7('0x38')][_0x77d7('0x2d')]({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0xf423f[_0x77d7('0x30')],'as':'Lists','where':{'id':_0x2417e4[_0x77d7('0x1f')]}}]})['then'](function(_0x17905c){if(_0x17905c){var _0xbfa6e4=[];for(var _0x21cf3a=0x0,_0x374674;_0x21cf3a<_0x17905c['length'];_0x21cf3a+=0x1){_0x374674=_0x17905c[_0x21cf3a][_0x77d7('0x14')]({'plain':!![]});switch(_0x374674['dialCheckDuplicateType']){case _0x77d7('0x39'):_0x121117(_0x374674)['catch'](_0x1f5c05());break;case _0x77d7('0x33'):_0x1b1905(_0x374674)[_0x77d7('0x25')](_0x1f5c05());break;default:_0xf423f[_0x77d7('0x19')][_0x77d7('0x1e')]({'phone':_0x2417e4[_0x77d7('0xd')],'ContactId':_0x2417e4['id'],'ListId':_0x2417e4['ListId'],'scheduledat':_0x2417e4[_0x77d7('0x21')]?_0x2417e4[_0x77d7('0x21')]:moment()[_0x77d7('0x22')](_0x77d7('0x24')),'priority':_0x2417e4[_0x77d7('0x20')]?_0x2417e4[_0x77d7('0x20')]:0x2,'callback':_0x2417e4[_0x77d7('0x23')]?!![]:![],'callbackuniqueid':_0x2417e4[_0x77d7('0x23')]?_0x2417e4[_0x77d7('0x23')]:undefined,'callbackat':_0x2417e4[_0x77d7('0x23')]?moment()['format'](_0x77d7('0x24')):undefined,'CampaignId':_0x374674['id']})[_0x77d7('0x25')](_0x1f5c05());}}}});})[_0x77d7('0x1a')](function(){return _0xf423f[_0x77d7('0x38')][_0x77d7('0x2d')]({'attributes':['id'],'include':[{'model':_0xf423f[_0x77d7('0x30')],'as':_0x77d7('0x35'),'where':{'id':_0x2417e4[_0x77d7('0x1f')]}}]})[_0x77d7('0x1a')](function(_0x48a6f2){if(_0x48a6f2){var _0x5e0fe6=[];for(var _0x4fface=0x0,_0xde246e;_0x4fface<_0x48a6f2[_0x77d7('0x32')];_0x4fface+=0x1){_0xde246e=_0x48a6f2[_0x4fface][_0x77d7('0x14')]({'plain':!![]});_0xf423f['CmHopperBlack'][_0x77d7('0x1e')]({'phone':_0x2417e4[_0x77d7('0xd')],'ContactId':_0x2417e4['id'],'ListId':_0x2417e4['ListId'],'CampaignId':_0xde246e['id']})[_0x77d7('0x25')](function(_0x9f34de){logger[_0x77d7('0x15')](_0x77d7('0x3a'),'afterCreate',_0x9f34de[_0x77d7('0x37')]);});}}});})[_0x77d7('0x1a')](function(){_0x2aacc6();})[_0x77d7('0x25')](function(_0x3c4a22){logger[_0x77d7('0x15')]('cmContact,\x20%s,\x20%s',_0x77d7('0x17'),_0x3c4a22['message']);_0x2aacc6(_0x3c4a22);});}else{_0x2aacc6(new Error(_0x77d7('0x3b')));}},'afterDestroy':function(_0x41da93,_0x2683c6,_0x2fbb49){var _0x11056d=_0x31a4fa[_0x77d7('0x13')];var _0x470ee0=_0x41da93['get']({'plain':!![]});return _0x11056d[_0x77d7('0x19')]['findAll']({'raw':!![],'where':{'ListId':_0x470ee0[_0x77d7('0x1f')],'ContactId':_0x470ee0['id']}})[_0x77d7('0x1a')](function(_0x2952c2){if(!_[_0x77d7('0x3c')](_0x2952c2)){var _0x643ed3=[];for(var _0x54ea97=0x0;_0x54ea97<_0x2952c2[_0x77d7('0x32')];_0x54ea97+=0x1){var _0x547e75=_0x11056d['CmHopper']['destroy']({'where':{'ListId':_0x2952c2[_0x54ea97][_0x77d7('0x1f')],'ContactId':_0x2952c2[_0x54ea97]['ContactId'],'VoiceQueueId':_0x2952c2[_0x54ea97][_0x77d7('0x3d')],'CampaignId':_0x2952c2[_0x54ea97]['CampaignId']}});_0x643ed3[_0x77d7('0x3e')](_0x547e75);}return BPromise[_0x77d7('0x3f')](_0x643ed3);}})[_0x77d7('0x1a')](function(_0xbabe27){logger[_0x77d7('0x40')](_0x77d7('0x41'),util[_0x77d7('0x18')](_0xbabe27,{'showHidden':![],'depth':null}));_0x2fbb49();})[_0x77d7('0x25')](function(_0x30eb75){logger[_0x77d7('0x15')](_0x77d7('0x42'),util[_0x77d7('0x18')](_0x30eb75,{'showHidden':![],'depth':null}));_0x2fbb49(_0x30eb75);});}}});};