50bc78c3832b08836beb8c911ade1063746da719
[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 _0x22ab=['lastName','mobile','fax','email','FULLTEXT','utf8mb4','utf8mb4_unicode_ci','models','get','error','cmContact','afterCreate','CmHopper','then','isNil','cmContact,\x20afterCreate\x20','ListId','priority','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','CmHopperFinal','findOne','cmContact,\x20afterCreate,\x20','create','catch','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','findAll','outbound','dialCheckDuplicateType','CmList','length','always','VoiceQueue','BlackLists','cmContact,\x20%s,\x20%s','Campaign','Lists','onlyIfOpen','CmHopperBlack','message','List\x20not\x20found','isEmpty','destroy','ContactId','VoiceQueueId','CampaignId','all','[CmContact][afterDestroy][Succesfull]','inspect','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','api','moment','bluebird','../../config/environment','./cmContact.attributes','exports','define','cm_contacts','phone','fti_cm_contacts','firstName'];(function(_0x4d2c26,_0x2701f9){var _0x5bf9b4=function(_0x52edc6){while(--_0x52edc6){_0x4d2c26['push'](_0x4d2c26['shift']());}};_0x5bf9b4(++_0x2701f9);}(_0x22ab,0x78));var _0xb22a=function(_0x474e22,_0x5d5515){_0x474e22=_0x474e22-0x0;var _0x76a179=_0x22ab[_0x474e22];return _0x76a179;};'use strict';var _=require(_0xb22a('0x0'));var util=require(_0xb22a('0x1'));var logger=require(_0xb22a('0x2'))(_0xb22a('0x3'));var moment=require(_0xb22a('0x4'));var BPromise=require(_0xb22a('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xb22a('0x6'));var attributes=require(_0xb22a('0x7'));module[_0xb22a('0x8')]=function(_0x5499e7,_0x1daebb){return _0x5499e7[_0xb22a('0x9')]('CmContact',attributes,{'tableName':_0xb22a('0xa'),'paranoid':!![],'indexes':[{'name':_0xb22a('0xb'),'fields':[_0xb22a('0xb')]},{'name':_0xb22a('0xc'),'fields':[_0xb22a('0xd'),_0xb22a('0xe'),_0xb22a('0xb'),_0xb22a('0xf'),_0xb22a('0x10'),_0xb22a('0x11')],'type':_0xb22a('0x12')}],'timestamps':!![],'charset':_0xb22a('0x13'),'collate':_0xb22a('0x14'),'hooks':{'afterCreate':function(_0x237be0,_0x3b59c5,_0x10fc7a){var _0x5e2e30=_0x5499e7[_0xb22a('0x15')];var _0x399201=_0x237be0[_0xb22a('0x16')]({'plain':!![]});function _0x4a5c5e(){return function(_0x215987){logger[_0xb22a('0x17')](_0xb22a('0x18'),_0xb22a('0x19'),util['inspect'](_0x215987,{'showHidden':![],'depth':null}));};}var _0x20aa1a=function(_0x5a31b6){return new BPromise(function(_0xf0d3e2,_0x2c124b){_0x5e2e30[_0xb22a('0x1a')]['findOne']({'where':{'phone':_0x399201[_0xb22a('0xb')],'VoiceQueueId':_0x5a31b6['id']}})[_0xb22a('0x1b')](function(_0x27a46b){if(!_[_0xb22a('0x1c')](_0x27a46b)){throw new Error(_0xb22a('0x1d')+_0x399201[_0xb22a('0xb')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x5a31b6['id']);}return _0x5e2e30['CmHopper']['create']({'phone':_0x399201[_0xb22a('0xb')],'ContactId':_0x399201['id'],'ListId':_0x399201[_0xb22a('0x1e')],'priority':_0x399201['priority']?_0x399201[_0xb22a('0x1f')]:0x2,'scheduledat':_0x399201[_0xb22a('0x20')]?_0x399201['scheduledat']:moment()[_0xb22a('0x21')](_0xb22a('0x22')),'callback':_0x399201['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x399201[_0xb22a('0x23')]?_0x399201[_0xb22a('0x23')]:undefined,'callbackat':_0x399201[_0xb22a('0x23')]?moment()[_0xb22a('0x21')](_0xb22a('0x22')):undefined,'VoiceQueueId':_0x5a31b6['id']});})['catch'](function(_0x30c7ef){_0x2c124b(_0x30c7ef);});});};var _0x38a5d8=function(_0xc63ba5){return new BPromise(function(_0x2c6dc0,_0xadfb9){_0x5e2e30[_0xb22a('0x1a')]['findOne']({'where':{'phone':_0x399201['phone'],'VoiceQueueId':_0xc63ba5['id']}})['then'](function(_0x4501db){if(!_[_0xb22a('0x1c')](_0x4501db)){throw new Error('cmContact,\x20afterCreate\x20'+_0x399201[_0xb22a('0xb')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0xc63ba5['id']);}return _0x5e2e30[_0xb22a('0x24')][_0xb22a('0x25')]({'where':{'calleridnum':_0x399201['phone'],'VoiceQueueId':_0xc63ba5['id']}});})[_0xb22a('0x1b')](function(_0xe940a3){if(!_[_0xb22a('0x1c')](_0xe940a3)){throw new Error(_0xb22a('0x26')+_0x399201[_0xb22a('0xb')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20'+_0xc63ba5['id']);}return _0x5e2e30['CmHopper'][_0xb22a('0x27')]({'phone':_0x399201[_0xb22a('0xb')],'ContactId':_0x399201['id'],'ListId':_0x399201['ListId'],'priority':_0x399201[_0xb22a('0x1f')]?_0x399201[_0xb22a('0x1f')]:0x2,'scheduledat':_0x399201[_0xb22a('0x20')]?_0x399201[_0xb22a('0x20')]:moment()[_0xb22a('0x21')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x399201[_0xb22a('0x23')]?!![]:![],'callbackuniqueid':_0x399201[_0xb22a('0x23')]?_0x399201[_0xb22a('0x23')]:undefined,'callbackat':_0x399201[_0xb22a('0x23')]?moment()[_0xb22a('0x21')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0xc63ba5['id']});})[_0xb22a('0x28')](function(_0x45f609){_0xadfb9(_0x45f609);});});};function _0x1876fe(){return function(_0x12d74e){logger['error'](_0xb22a('0x18'),'afterCreate',util['inspect'](_0x12d74e,{'showHidden':![],'depth':null}));};}var _0x339153=function(_0x1fb9d8){return new BPromise(function(_0x5f275f,_0x9d26ad){_0x5e2e30[_0xb22a('0x1a')][_0xb22a('0x25')]({'where':{'phone':_0x399201[_0xb22a('0xb')],'CampaignId':_0x1fb9d8['id']}})[_0xb22a('0x1b')](function(_0xff8227){if(!_[_0xb22a('0x1c')](_0xff8227)){throw new Error('cmContact,\x20afterCreate\x20'+_0x399201[_0xb22a('0xb')]+_0xb22a('0x29')+_0x1fb9d8['id']);}return _0x5e2e30[_0xb22a('0x1a')][_0xb22a('0x27')]({'phone':_0x399201[_0xb22a('0xb')],'ContactId':_0x399201['id'],'ListId':_0x399201['ListId'],'priority':_0x399201[_0xb22a('0x1f')]?_0x399201[_0xb22a('0x1f')]:0x2,'scheduledat':_0x399201[_0xb22a('0x20')]?_0x399201[_0xb22a('0x20')]:moment()[_0xb22a('0x21')](_0xb22a('0x22')),'callback':_0x399201[_0xb22a('0x23')]?!![]:![],'callbackuniqueid':_0x399201['callbackUniqueid']?_0x399201[_0xb22a('0x23')]:undefined,'callbackat':_0x399201[_0xb22a('0x23')]?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x1fb9d8['id']});})['catch'](function(_0x48e59f){_0x9d26ad(_0x48e59f);});});};var _0x1691dd=function(_0x13ff60){return new BPromise(function(_0x30a75c,_0x41d02b){_0x5e2e30['CmHopper'][_0xb22a('0x25')]({'where':{'phone':_0x399201[_0xb22a('0xb')],'CampaignId':_0x13ff60['id']}})['then'](function(_0x52d18f){if(!_[_0xb22a('0x1c')](_0x52d18f)){throw new Error('cmContact,\x20afterCreate\x20'+_0x399201[_0xb22a('0xb')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x13ff60['id']);}return _0x5e2e30[_0xb22a('0x24')][_0xb22a('0x25')]({'where':{'calleridnum':_0x399201[_0xb22a('0xb')],'CampaignId':_0x13ff60['id']}});})['then'](function(_0x4fd8fa){if(!_[_0xb22a('0x1c')](_0x4fd8fa)){throw new Error(_0xb22a('0x26')+_0x399201[_0xb22a('0xb')]+_0xb22a('0x2a')+_0x13ff60['id']);}return _0x5e2e30[_0xb22a('0x1a')]['create']({'phone':_0x399201['phone'],'ContactId':_0x399201['id'],'ListId':_0x399201['ListId'],'priority':_0x399201[_0xb22a('0x1f')]?_0x399201['priority']:0x2,'scheduledat':_0x399201[_0xb22a('0x20')]?_0x399201[_0xb22a('0x20')]:moment()[_0xb22a('0x21')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x399201[_0xb22a('0x23')]?!![]:![],'callbackuniqueid':_0x399201[_0xb22a('0x23')]?_0x399201[_0xb22a('0x23')]:undefined,'callbackat':_0x399201['callbackUniqueid']?moment()[_0xb22a('0x21')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x13ff60['id']});})['catch'](function(_0x381471){_0x41d02b(_0x381471);});});};if(_0x399201[_0xb22a('0x1e')]){_0x5e2e30['VoiceQueue'][_0xb22a('0x2b')]({'where':{'type':_0xb22a('0x2c')},'attributes':['id',_0xb22a('0x2d')],'include':[{'model':_0x5e2e30[_0xb22a('0x2e')],'as':'Lists','where':{'id':_0x399201['ListId']}}]})[_0xb22a('0x1b')](function(_0x3cf031){if(_0x3cf031){var _0x5468c3=[];for(var _0xf71e8b=0x0,_0x40e238;_0xf71e8b<_0x3cf031[_0xb22a('0x2f')];_0xf71e8b+=0x1){_0x40e238=_0x3cf031[_0xf71e8b][_0xb22a('0x16')]({'plain':!![]});switch(_0x40e238['dialCheckDuplicateType']){case _0xb22a('0x30'):_0x38a5d8(_0x40e238)['catch'](_0x4a5c5e());break;case'onlyIfOpen':_0x20aa1a(_0x40e238)[_0xb22a('0x28')](_0x4a5c5e());break;default:_0x5e2e30[_0xb22a('0x1a')][_0xb22a('0x27')]({'phone':_0x399201[_0xb22a('0xb')],'ContactId':_0x399201['id'],'ListId':_0x399201['ListId'],'scheduledat':_0x399201['scheduledat']?_0x399201[_0xb22a('0x20')]:moment()['format'](_0xb22a('0x22')),'priority':_0x399201[_0xb22a('0x1f')]?_0x399201['priority']:0x2,'callback':_0x399201[_0xb22a('0x23')]?!![]:![],'callbackuniqueid':_0x399201[_0xb22a('0x23')]?_0x399201['callbackUniqueid']:undefined,'callbackat':_0x399201[_0xb22a('0x23')]?moment()['format'](_0xb22a('0x22')):undefined,'VoiceQueueId':_0x40e238['id']})['catch'](_0x4a5c5e());}}}})[_0xb22a('0x1b')](function(){return _0x5e2e30[_0xb22a('0x31')][_0xb22a('0x2b')]({'where':{'type':_0xb22a('0x2c')},'attributes':['id'],'include':[{'model':_0x5e2e30[_0xb22a('0x2e')],'as':_0xb22a('0x32'),'where':{'id':_0x399201[_0xb22a('0x1e')]}}]})[_0xb22a('0x1b')](function(_0x140332){if(_0x140332){var _0x3128aa=[];for(var _0x37d641=0x0,_0x3439ac;_0x37d641<_0x140332['length'];_0x37d641+=0x1){_0x3439ac=_0x140332[_0x37d641][_0xb22a('0x16')]({'plain':!![]});_0x5e2e30['CmHopperBlack']['create']({'phone':_0x399201[_0xb22a('0xb')],'ContactId':_0x399201['id'],'ListId':_0x399201[_0xb22a('0x1e')],'VoiceQueueId':_0x3439ac['id']})[_0xb22a('0x28')](function(_0x238496){logger['error'](_0xb22a('0x33'),_0xb22a('0x19'),_0x238496['message']);});}}});})[_0xb22a('0x1b')](function(){return _0x5e2e30[_0xb22a('0x34')][_0xb22a('0x2b')]({'attributes':['id',_0xb22a('0x2d')],'include':[{'model':_0x5e2e30['CmList'],'as':_0xb22a('0x35'),'where':{'id':_0x399201[_0xb22a('0x1e')]}}]})[_0xb22a('0x1b')](function(_0x547073){if(_0x547073){var _0x4a898c=[];for(var _0x18f03c=0x0,_0x2ac40f;_0x18f03c<_0x547073[_0xb22a('0x2f')];_0x18f03c+=0x1){_0x2ac40f=_0x547073[_0x18f03c]['get']({'plain':!![]});switch(_0x2ac40f['dialCheckDuplicateType']){case _0xb22a('0x30'):_0x1691dd(_0x2ac40f)[_0xb22a('0x28')](_0x1876fe());break;case _0xb22a('0x36'):_0x339153(_0x2ac40f)[_0xb22a('0x28')](_0x1876fe());break;default:_0x5e2e30[_0xb22a('0x1a')][_0xb22a('0x27')]({'phone':_0x399201[_0xb22a('0xb')],'ContactId':_0x399201['id'],'ListId':_0x399201[_0xb22a('0x1e')],'scheduledat':_0x399201['scheduledat']?_0x399201['scheduledat']:moment()[_0xb22a('0x21')](_0xb22a('0x22')),'priority':_0x399201[_0xb22a('0x1f')]?_0x399201[_0xb22a('0x1f')]:0x2,'callback':_0x399201['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x399201[_0xb22a('0x23')]?_0x399201[_0xb22a('0x23')]:undefined,'callbackat':_0x399201[_0xb22a('0x23')]?moment()[_0xb22a('0x21')](_0xb22a('0x22')):undefined,'CampaignId':_0x2ac40f['id']})['catch'](_0x1876fe());}}}});})['then'](function(){return _0x5e2e30[_0xb22a('0x34')]['findAll']({'attributes':['id'],'include':[{'model':_0x5e2e30['CmList'],'as':_0xb22a('0x32'),'where':{'id':_0x399201[_0xb22a('0x1e')]}}]})['then'](function(_0x56789e){if(_0x56789e){var _0x475e34=[];for(var _0x1691fa=0x0,_0x5576d5;_0x1691fa<_0x56789e[_0xb22a('0x2f')];_0x1691fa+=0x1){_0x5576d5=_0x56789e[_0x1691fa][_0xb22a('0x16')]({'plain':!![]});_0x5e2e30[_0xb22a('0x37')][_0xb22a('0x27')]({'phone':_0x399201['phone'],'ContactId':_0x399201['id'],'ListId':_0x399201[_0xb22a('0x1e')],'CampaignId':_0x5576d5['id']})[_0xb22a('0x28')](function(_0x33ce40){logger[_0xb22a('0x17')](_0xb22a('0x33'),'afterCreate',_0x33ce40[_0xb22a('0x38')]);});}}});})['then'](function(){_0x10fc7a();})[_0xb22a('0x28')](function(_0x1009ca){logger[_0xb22a('0x17')](_0xb22a('0x33'),_0xb22a('0x19'),_0x1009ca[_0xb22a('0x38')]);_0x10fc7a(_0x1009ca);});}else{_0x10fc7a(new Error(_0xb22a('0x39')));}},'afterDestroy':function(_0x471ce4,_0x257420,_0x1acf7e){var _0x421a36=_0x5499e7[_0xb22a('0x15')];var _0x3e4ff3=_0x471ce4[_0xb22a('0x16')]({'plain':!![]});return _0x421a36[_0xb22a('0x1a')]['findAll']({'raw':!![],'where':{'ListId':_0x3e4ff3[_0xb22a('0x1e')],'ContactId':_0x3e4ff3['id']}})[_0xb22a('0x1b')](function(_0x40b7cf){if(!_[_0xb22a('0x3a')](_0x40b7cf)){var _0x36bc5b=[];for(var _0x452a6b=0x0;_0x452a6b<_0x40b7cf[_0xb22a('0x2f')];_0x452a6b+=0x1){var _0x45c398=_0x421a36[_0xb22a('0x1a')][_0xb22a('0x3b')]({'where':{'ListId':_0x40b7cf[_0x452a6b][_0xb22a('0x1e')],'ContactId':_0x40b7cf[_0x452a6b][_0xb22a('0x3c')],'VoiceQueueId':_0x40b7cf[_0x452a6b][_0xb22a('0x3d')],'CampaignId':_0x40b7cf[_0x452a6b][_0xb22a('0x3e')]}});_0x36bc5b['push'](_0x45c398);}return BPromise[_0xb22a('0x3f')](_0x36bc5b);}})[_0xb22a('0x1b')](function(_0x5db59b){logger['info'](_0xb22a('0x40'),util[_0xb22a('0x41')](_0x5db59b,{'showHidden':![],'depth':null}));_0x1acf7e();})[_0xb22a('0x28')](function(_0x4ee7b2){logger['error'](_0xb22a('0x42'),util['inspect'](_0x4ee7b2,{'showHidden':![],'depth':null}));_0x1acf7e(_0x4ee7b2);});}}});};