Built motion from commit c738b9ac.|2.6.25
[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 _0x34f6=['inspect','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','isNil','dialTimezone','VoiceQueue','findOne','then','utcOffset','add','ret','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopper','create','ListId','priority','callbackUniqueid','catch','\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','timezones','minutes','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','cmContact,\x20afterCreate,\x20','findAll','outbound','dialCheckDuplicateType','CmList','Lists','length','always','onlyIfOpen','cmContact,\x20%s,\x20%s','message','Campaign','BlackLists','CmHopperBlack','isEmpty','VoiceQueueId','push','all','info','util','api','moment','request-promise','path','rimraf','../../config/environment','../../config/environment/shared','./cmContact.attributes','exports','define','phone','fti_cm_contacts','firstName','mobile','email','FULLTEXT','utf8mb4','utf8mb4_unicode_ci','models','get','error','cmContact','afterCreate'];(function(_0x441e18,_0x2a4780){var _0x4adf21=function(_0xe35818){while(--_0xe35818){_0x441e18['push'](_0x441e18['shift']());}};_0x4adf21(++_0x2a4780);}(_0x34f6,0x186));var _0x634f=function(_0x5f1f63,_0x740dbf){_0x5f1f63=_0x5f1f63-0x0;var _0x4ff682=_0x34f6[_0x5f1f63];return _0x4ff682;};'use strict';var _=require('lodash');var util=require(_0x634f('0x0'));var logger=require('../../config/logger')(_0x634f('0x1'));var moment=require(_0x634f('0x2'));var BPromise=require('bluebird');var rp=require(_0x634f('0x3'));var fs=require('fs');var path=require(_0x634f('0x4'));var rimraf=require(_0x634f('0x5'));var config=require(_0x634f('0x6'));var shared=require(_0x634f('0x7'));var attributes=require(_0x634f('0x8'));module[_0x634f('0x9')]=function(_0x9803dd,_0xecf92d){return _0x9803dd[_0x634f('0xa')]('CmContact',attributes,{'tableName':'cm_contacts','paranoid':!![],'indexes':[{'name':'phone','fields':[_0x634f('0xb')]},{'name':_0x634f('0xc'),'fields':[_0x634f('0xd'),'lastName','phone',_0x634f('0xe'),'fax',_0x634f('0xf')],'type':_0x634f('0x10')}],'timestamps':!![],'charset':_0x634f('0x11'),'collate':_0x634f('0x12'),'hooks':{'afterCreate':function(_0x43413b,_0x383464,_0x38baf2){var _0x210b42=_0x9803dd[_0x634f('0x13')];var _0x8de1d2=_0x43413b[_0x634f('0x14')]({'plain':!![]});function _0x5ccd55(){return function(_0x12673a){logger[_0x634f('0x15')](_0x634f('0x16'),_0x634f('0x17'),util[_0x634f('0x18')](_0x12673a,{'showHidden':![],'depth':null}));};}function _0x12f889(_0x398d12,_0x37863b){var _0x171355=_0x37863b[_0x634f('0x19')]?_0x37863b['scheduledat']:moment()[_0x634f('0x1a')](_0x634f('0x1b'));return new BPromise(function(_0x1b8971,_0x540e78){if(_[_0x634f('0x1c')](_0x37863b[_0x634f('0x1d')])){_0x1b8971({'ret':_0x171355});}else{_0x210b42[_0x634f('0x1e')][_0x634f('0x1f')]({'where':{'id':_0x398d12['id']}})[_0x634f('0x20')](function(_0x35d01f){if(!_[_0x634f('0x1c')](_0x35d01f)){var _0x592b69=_0x35d01f[_0x634f('0x1d')];if(!_['isNil'](_0x592b69)){var _0x388399=shared['timezones'];var _0x552752=_0x388399[_0x592b69];var _0x557972=_0x388399[_0x37863b[_0x634f('0x1d')]];if(!_['isNil'](_0x552752)&&!_[_0x634f('0x1c')](_0x557972)){var _0x1aa4b9=_0x552752[_0x634f('0x21')]-_0x557972[_0x634f('0x21')];_0x171355=_0x37863b[_0x634f('0x19')]?_0x37863b[_0x634f('0x19')]:moment();var _0x51c839=moment(_0x171355)[_0x634f('0x22')](_0x1aa4b9,'minutes');_0x1b8971({'ret':_0x51c839[_0x634f('0x1a')]('YYYY-MM-DD\x20HH:mm:ss')});}else _0x1b8971({'ret':_0x171355});}else _0x1b8971({'ret':_0x171355});}else{_0x1b8971({'ret':_0x171355});}});}});return 0xa;}var _0x3ef37a=function(_0x43d4d6){return new BPromise(function(_0x2914ce,_0xaa2aaf){_0x12f889(_0x43d4d6,_0x8de1d2)[_0x634f('0x20')](function(_0x1e9f7d){_0x8de1d2[_0x634f('0x19')]=_0x1e9f7d[_0x634f('0x23')];_0x210b42['CmHopper']['findOne']({'where':{'phone':_0x8de1d2[_0x634f('0xb')],'VoiceQueueId':_0x43d4d6['id']}})[_0x634f('0x20')](function(_0x46549c){if(!_[_0x634f('0x1c')](_0x46549c)){throw new Error(_0x634f('0x24')+_0x8de1d2[_0x634f('0xb')]+_0x634f('0x25')+_0x43d4d6['id']);}return _0x210b42[_0x634f('0x26')][_0x634f('0x27')]({'phone':_0x8de1d2[_0x634f('0xb')],'ContactId':_0x8de1d2['id'],'ListId':_0x8de1d2[_0x634f('0x28')],'priority':_0x8de1d2[_0x634f('0x29')]?_0x8de1d2[_0x634f('0x29')]:0x2,'scheduledat':_0x8de1d2['scheduledat']?_0x8de1d2[_0x634f('0x19')]:moment()[_0x634f('0x1a')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x8de1d2['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x8de1d2['callbackUniqueid']?_0x8de1d2[_0x634f('0x2a')]:undefined,'callbackat':_0x8de1d2[_0x634f('0x2a')]?moment()['format'](_0x634f('0x1b')):undefined,'VoiceQueueId':_0x43d4d6['id']});})[_0x634f('0x2b')](function(_0x5787c6){_0xaa2aaf(_0x5787c6);});});});};var _0x8b736e=function(_0x4a5361){return new BPromise(function(_0x42c59b,_0x498123){_0x12f889(_0x4a5361,_0x8de1d2)[_0x634f('0x20')](function(_0x281999){_0x8de1d2['scheduledat']=_0x281999[_0x634f('0x23')];_0x210b42[_0x634f('0x26')][_0x634f('0x1f')]({'where':{'phone':_0x8de1d2[_0x634f('0xb')],'VoiceQueueId':_0x4a5361['id']}})[_0x634f('0x20')](function(_0x2a4779){if(!_[_0x634f('0x1c')](_0x2a4779)){throw new Error(_0x634f('0x24')+_0x8de1d2[_0x634f('0xb')]+_0x634f('0x2c')+_0x4a5361['id']);}return _0x210b42[_0x634f('0x2d')][_0x634f('0x1f')]({'where':{'calleridnum':_0x8de1d2['phone'],'VoiceQueueId':_0x4a5361['id']}});})[_0x634f('0x20')](function(_0x1683ac){if(!_[_0x634f('0x1c')](_0x1683ac)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x8de1d2[_0x634f('0xb')]+_0x634f('0x2e')+_0x4a5361['id']);}return _0x210b42['CmHopper']['create']({'phone':_0x8de1d2['phone'],'ContactId':_0x8de1d2['id'],'ListId':_0x8de1d2[_0x634f('0x28')],'priority':_0x8de1d2['priority']?_0x8de1d2[_0x634f('0x29')]:0x2,'scheduledat':_0x8de1d2['scheduledat']?_0x8de1d2[_0x634f('0x19')]:moment()[_0x634f('0x1a')](_0x634f('0x1b')),'callback':_0x8de1d2[_0x634f('0x2a')]?!![]:![],'callbackuniqueid':_0x8de1d2[_0x634f('0x2a')]?_0x8de1d2[_0x634f('0x2a')]:undefined,'callbackat':_0x8de1d2[_0x634f('0x2a')]?moment()[_0x634f('0x1a')](_0x634f('0x1b')):undefined,'VoiceQueueId':_0x4a5361['id']});})['catch'](function(_0xc9aca6){_0x498123(_0xc9aca6);});});});};function _0x1579b3(){return function(_0x3b709c){logger[_0x634f('0x15')](_0x634f('0x16'),_0x634f('0x17'),util[_0x634f('0x18')](_0x3b709c,{'showHidden':![],'depth':null}));};}function _0x28099a(_0x28b5a8,_0x53bb18){var _0x14b818=_0x53bb18[_0x634f('0x19')]?_0x53bb18['scheduledat']:moment()['format'](_0x634f('0x1b'));return new BPromise(function(_0x40232d,_0x3fb76a){if(_[_0x634f('0x1c')](_0x53bb18[_0x634f('0x1d')])){_0x40232d({'ret':_0x14b818});}else{_0x210b42['Campaign'][_0x634f('0x1f')]({'where':{'id':_0x28b5a8['id']}})[_0x634f('0x20')](function(_0x324111){if(!_[_0x634f('0x1c')](_0x324111)){var _0x48523c=_0x324111[_0x634f('0x1d')];if(!_[_0x634f('0x1c')](_0x48523c)){var _0x1e3719=shared[_0x634f('0x2f')];var _0x39f41e=_0x1e3719[_0x48523c];var _0x53093d=_0x1e3719[_0x53bb18[_0x634f('0x1d')]];if(!_[_0x634f('0x1c')](_0x39f41e)&&!_[_0x634f('0x1c')](_0x53093d)){var _0x1e322e=_0x39f41e[_0x634f('0x21')]-_0x53093d[_0x634f('0x21')];_0x14b818=_0x53bb18[_0x634f('0x19')]?_0x53bb18[_0x634f('0x19')]:moment();var _0x2c0dcf=moment(_0x14b818)['add'](_0x1e322e,_0x634f('0x30'));_0x40232d({'ret':_0x2c0dcf[_0x634f('0x1a')](_0x634f('0x1b'))});}else _0x40232d({'ret':_0x14b818});}else _0x40232d({'ret':_0x14b818});}else{_0x40232d({'ret':_0x14b818});}});}});return 0xa;}var _0x29745d=function(_0x4c3703){return new BPromise(function(_0x4bc511,_0x42519a){_0x28099a(_0x4c3703,_0x8de1d2)[_0x634f('0x20')](function(_0x45c7db){_0x8de1d2['scheduledat']=_0x45c7db[_0x634f('0x23')];_0x210b42[_0x634f('0x26')]['findOne']({'where':{'phone':_0x8de1d2['phone'],'CampaignId':_0x4c3703['id']}})[_0x634f('0x20')](function(_0xbb1990){if(!_['isNil'](_0xbb1990)){throw new Error(_0x634f('0x24')+_0x8de1d2[_0x634f('0xb')]+_0x634f('0x31')+_0x4c3703['id']);}return _0x210b42[_0x634f('0x26')][_0x634f('0x27')]({'phone':_0x8de1d2[_0x634f('0xb')],'ContactId':_0x8de1d2['id'],'ListId':_0x8de1d2['ListId'],'priority':_0x8de1d2[_0x634f('0x29')]?_0x8de1d2[_0x634f('0x29')]:0x2,'scheduledat':_0x8de1d2[_0x634f('0x19')]?_0x8de1d2[_0x634f('0x19')]:moment()[_0x634f('0x1a')](_0x634f('0x1b')),'callback':_0x8de1d2['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x8de1d2[_0x634f('0x2a')]?_0x8de1d2['callbackUniqueid']:undefined,'callbackat':_0x8de1d2[_0x634f('0x2a')]?moment()[_0x634f('0x1a')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x4c3703['id']});})[_0x634f('0x2b')](function(_0x5250ab){_0x42519a(_0x5250ab);});});});};var _0x3df030=function(_0x512c7e){return new BPromise(function(_0x129b99,_0x475c0f){_0x28099a(_0x512c7e,_0x8de1d2)['then'](function(_0x1be2d3){_0x8de1d2[_0x634f('0x19')]=_0x1be2d3[_0x634f('0x23')];_0x210b42[_0x634f('0x26')]['findOne']({'where':{'phone':_0x8de1d2['phone'],'CampaignId':_0x512c7e['id']}})['then'](function(_0x5807f5){if(!_[_0x634f('0x1c')](_0x5807f5)){throw new Error(_0x634f('0x24')+_0x8de1d2['phone']+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x512c7e['id']);}return _0x210b42[_0x634f('0x2d')][_0x634f('0x1f')]({'where':{'calleridnum':_0x8de1d2[_0x634f('0xb')],'CampaignId':_0x512c7e['id']}});})[_0x634f('0x20')](function(_0x4ffd4e){if(!_[_0x634f('0x1c')](_0x4ffd4e)){throw new Error(_0x634f('0x32')+_0x8de1d2['phone']+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20'+_0x512c7e['id']);}return _0x210b42[_0x634f('0x26')][_0x634f('0x27')]({'phone':_0x8de1d2[_0x634f('0xb')],'ContactId':_0x8de1d2['id'],'ListId':_0x8de1d2['ListId'],'priority':_0x8de1d2['priority']?_0x8de1d2['priority']:0x2,'scheduledat':_0x8de1d2[_0x634f('0x19')]?_0x8de1d2['scheduledat']:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x8de1d2[_0x634f('0x2a')]?!![]:![],'callbackuniqueid':_0x8de1d2[_0x634f('0x2a')]?_0x8de1d2[_0x634f('0x2a')]:undefined,'callbackat':_0x8de1d2[_0x634f('0x2a')]?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x512c7e['id']});})[_0x634f('0x2b')](function(_0x46f6ca){_0x475c0f(_0x46f6ca);});});});};if(_0x8de1d2[_0x634f('0x28')]){_0x210b42[_0x634f('0x1e')][_0x634f('0x33')]({'where':{'type':_0x634f('0x34')},'attributes':['id',_0x634f('0x35'),_0x634f('0x1d')],'include':[{'model':_0x210b42[_0x634f('0x36')],'as':_0x634f('0x37'),'where':{'id':_0x8de1d2[_0x634f('0x28')]}}]})['then'](function(_0x1ff578){if(_0x1ff578){var _0x5e3697=[];for(var _0x569627=0x0,_0x5c0e7d;_0x569627<_0x1ff578[_0x634f('0x38')];_0x569627+=0x1){_0x5c0e7d=_0x1ff578[_0x569627][_0x634f('0x14')]({'plain':!![]});switch(_0x5c0e7d['dialCheckDuplicateType']){case _0x634f('0x39'):_0x8b736e(_0x5c0e7d)[_0x634f('0x2b')](_0x5ccd55());break;case _0x634f('0x3a'):_0x3ef37a(_0x5c0e7d)[_0x634f('0x2b')](_0x5ccd55());break;default:_0x28099a(_0x5c0e7d,_0x8de1d2)[_0x634f('0x20')](function(_0x9fd8d7){_0x8de1d2[_0x634f('0x19')]=_0x9fd8d7['ret'];_0x210b42[_0x634f('0x26')][_0x634f('0x27')]({'phone':_0x8de1d2[_0x634f('0xb')],'ContactId':_0x8de1d2['id'],'ListId':_0x8de1d2[_0x634f('0x28')],'scheduledat':_0x8de1d2[_0x634f('0x19')]?_0x8de1d2[_0x634f('0x19')]:moment()[_0x634f('0x1a')](_0x634f('0x1b')),'priority':_0x8de1d2[_0x634f('0x29')]?_0x8de1d2[_0x634f('0x29')]:0x2,'callback':_0x8de1d2[_0x634f('0x2a')]?!![]:![],'callbackuniqueid':_0x8de1d2['callbackUniqueid']?_0x8de1d2[_0x634f('0x2a')]:undefined,'callbackat':_0x8de1d2['callbackUniqueid']?moment()[_0x634f('0x1a')](_0x634f('0x1b')):undefined,'VoiceQueueId':_0x5c0e7d['id']})[_0x634f('0x2b')](_0x5ccd55());});}}}})[_0x634f('0x20')](function(){return _0x210b42[_0x634f('0x1e')]['findAll']({'where':{'type':'outbound'},'attributes':['id'],'include':[{'model':_0x210b42[_0x634f('0x36')],'as':'BlackLists','where':{'id':_0x8de1d2[_0x634f('0x28')]}}]})[_0x634f('0x20')](function(_0x2d2c5c){if(_0x2d2c5c){var _0x131312=[];for(var _0x47a81b=0x0,_0x3cb820;_0x47a81b<_0x2d2c5c['length'];_0x47a81b+=0x1){_0x3cb820=_0x2d2c5c[_0x47a81b]['get']({'plain':!![]});_0x210b42['CmHopperBlack'][_0x634f('0x27')]({'phone':_0x8de1d2[_0x634f('0xb')],'ContactId':_0x8de1d2['id'],'ListId':_0x8de1d2['ListId'],'VoiceQueueId':_0x3cb820['id']})[_0x634f('0x2b')](function(_0x2115fe){logger[_0x634f('0x15')](_0x634f('0x3b'),'afterCreate',_0x2115fe[_0x634f('0x3c')]);});}}});})[_0x634f('0x20')](function(){return _0x210b42['Campaign'][_0x634f('0x33')]({'attributes':['id',_0x634f('0x35'),'dialTimezone'],'include':[{'model':_0x210b42['CmList'],'as':_0x634f('0x37'),'where':{'id':_0x8de1d2[_0x634f('0x28')]}}]})[_0x634f('0x20')](function(_0x320ce8){if(_0x320ce8){var _0xdf6ab1=[];for(var _0x38f19b=0x0,_0x290595;_0x38f19b<_0x320ce8[_0x634f('0x38')];_0x38f19b+=0x1){_0x290595=_0x320ce8[_0x38f19b][_0x634f('0x14')]({'plain':!![]});switch(_0x290595['dialCheckDuplicateType']){case _0x634f('0x39'):_0x3df030(_0x290595)[_0x634f('0x2b')](_0x1579b3());break;case _0x634f('0x3a'):_0x29745d(_0x290595)[_0x634f('0x2b')](_0x1579b3());break;default:_0x210b42[_0x634f('0x26')][_0x634f('0x27')]({'phone':_0x8de1d2['phone'],'ContactId':_0x8de1d2['id'],'ListId':_0x8de1d2[_0x634f('0x28')],'scheduledat':_0x8de1d2[_0x634f('0x19')]?_0x8de1d2[_0x634f('0x19')]:moment()['format'](_0x634f('0x1b')),'priority':_0x8de1d2['priority']?_0x8de1d2[_0x634f('0x29')]:0x2,'callback':_0x8de1d2['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x8de1d2[_0x634f('0x2a')]?_0x8de1d2[_0x634f('0x2a')]:undefined,'callbackat':_0x8de1d2[_0x634f('0x2a')]?moment()[_0x634f('0x1a')](_0x634f('0x1b')):undefined,'CampaignId':_0x290595['id']})['catch'](_0x1579b3());}}}});})[_0x634f('0x20')](function(){return _0x210b42[_0x634f('0x3d')]['findAll']({'attributes':['id'],'include':[{'model':_0x210b42[_0x634f('0x36')],'as':_0x634f('0x3e'),'where':{'id':_0x8de1d2[_0x634f('0x28')]}}]})[_0x634f('0x20')](function(_0x4fa2e4){if(_0x4fa2e4){var _0x57c985=[];for(var _0x4d9c5c=0x0,_0x13a419;_0x4d9c5c<_0x4fa2e4['length'];_0x4d9c5c+=0x1){_0x13a419=_0x4fa2e4[_0x4d9c5c]['get']({'plain':!![]});_0x210b42[_0x634f('0x3f')][_0x634f('0x27')]({'phone':_0x8de1d2[_0x634f('0xb')],'ContactId':_0x8de1d2['id'],'ListId':_0x8de1d2['ListId'],'CampaignId':_0x13a419['id']})[_0x634f('0x2b')](function(_0x3d8963){logger[_0x634f('0x15')]('cmContact,\x20%s,\x20%s','afterCreate',_0x3d8963[_0x634f('0x3c')]);});}}});})[_0x634f('0x20')](function(){_0x38baf2();})[_0x634f('0x2b')](function(_0x3aaae0){logger[_0x634f('0x15')](_0x634f('0x3b'),'afterCreate',_0x3aaae0['message']);_0x38baf2(_0x3aaae0);});}else{_0x38baf2(new Error('List\x20not\x20found'));}},'afterDestroy':function(_0x495108,_0x33ae36,_0x1a9895){var _0x314a86=_0x9803dd[_0x634f('0x13')];var _0x3b3950=_0x495108[_0x634f('0x14')]({'plain':!![]});return _0x314a86[_0x634f('0x26')][_0x634f('0x33')]({'raw':!![],'where':{'ListId':_0x3b3950['ListId'],'ContactId':_0x3b3950['id']}})[_0x634f('0x20')](function(_0x493ed1){if(!_[_0x634f('0x40')](_0x493ed1)){var _0x12c85f=[];for(var _0x4ee465=0x0;_0x4ee465<_0x493ed1[_0x634f('0x38')];_0x4ee465+=0x1){var _0x20276c=_0x314a86[_0x634f('0x26')]['destroy']({'where':{'ListId':_0x493ed1[_0x4ee465][_0x634f('0x28')],'ContactId':_0x493ed1[_0x4ee465]['ContactId'],'VoiceQueueId':_0x493ed1[_0x4ee465][_0x634f('0x41')],'CampaignId':_0x493ed1[_0x4ee465]['CampaignId']}});_0x12c85f[_0x634f('0x42')](_0x20276c);}return BPromise[_0x634f('0x43')](_0x12c85f);}})['then'](function(_0x147e88){logger[_0x634f('0x44')]('[CmContact][afterDestroy][Succesfull]',util[_0x634f('0x18')](_0x147e88,{'showHidden':![],'depth':null}));_0x1a9895();})[_0x634f('0x2b')](function(_0x42caec){logger[_0x634f('0x15')]('[CmContact][afterDestroy][Error]',util[_0x634f('0x18')](_0x42caec,{'showHidden':![],'depth':null}));_0x1a9895(_0x42caec);});}}});};