Built motion from commit 97153652.|2.6.26
[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 _0x5540=['outbound','dialCheckDuplicateType','CmList','Lists','length','always','onlyIfOpen','CmHopperBlack','cmContact,\x20%s,\x20%s','afterCreate','message','BlackLists','models','destroy','VoiceQueueId','CampaignId','push','all','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','util','../../config/logger','api','moment','path','rimraf','../../config/environment','../../config/environment/shared','./cmContact.attributes','exports','define','CmContact','phone','fti_cm_contacts','firstName','lastName','mobile','fax','email','FULLTEXT','utf8mb4_unicode_ci','get','error','scheduledat','YYYY-MM-DD\x20HH:mm:ss','dialTimezone','VoiceQueue','then','isNil','timezones','utcOffset','minutes','ret','CmHopper','findOne','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create','ListId','priority','format','callbackUniqueid','catch','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','cmContact','inspect','Campaign','add','\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'];(function(_0x5e2cb6,_0x3e8ec5){var _0x4b42e0=function(_0x5de3d2){while(--_0x5de3d2){_0x5e2cb6['push'](_0x5e2cb6['shift']());}};_0x4b42e0(++_0x3e8ec5);}(_0x5540,0x145));var _0x0554=function(_0x48b48c,_0x35ea8f){_0x48b48c=_0x48b48c-0x0;var _0x3aaf67=_0x5540[_0x48b48c];return _0x3aaf67;};'use strict';var _=require('lodash');var util=require(_0x0554('0x0'));var logger=require(_0x0554('0x1'))(_0x0554('0x2'));var moment=require(_0x0554('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x0554('0x4'));var rimraf=require(_0x0554('0x5'));var config=require(_0x0554('0x6'));var shared=require(_0x0554('0x7'));var attributes=require(_0x0554('0x8'));module[_0x0554('0x9')]=function(_0x3177cc,_0x254c05){return _0x3177cc[_0x0554('0xa')](_0x0554('0xb'),attributes,{'tableName':'cm_contacts','paranoid':!![],'indexes':[{'name':_0x0554('0xc'),'fields':['phone']},{'name':_0x0554('0xd'),'fields':[_0x0554('0xe'),_0x0554('0xf'),_0x0554('0xc'),_0x0554('0x10'),_0x0554('0x11'),_0x0554('0x12')],'type':_0x0554('0x13')}],'timestamps':!![],'charset':'utf8mb4','collate':_0x0554('0x14'),'hooks':{'afterCreate':function(_0x3a87c2,_0xc38469,_0x230ad3){var _0x3f137a=_0x3177cc['models'];var _0x190c47=_0x3a87c2[_0x0554('0x15')]({'plain':!![]});function _0x13150f(){return function(_0xe86dc8){logger[_0x0554('0x16')]('cmContact','afterCreate',util['inspect'](_0xe86dc8,{'showHidden':![],'depth':null}));};}function _0x274b02(_0x269afd,_0xaadae8){var _0x23cb59=_0xaadae8[_0x0554('0x17')]?_0xaadae8[_0x0554('0x17')]:moment()['format'](_0x0554('0x18'));return new BPromise(function(_0xeb5ab3,_0x4c77d6){if(_['isNil'](_0xaadae8[_0x0554('0x19')])){_0xeb5ab3({'ret':_0x23cb59});}else{_0x3f137a[_0x0554('0x1a')]['findOne']({'where':{'id':_0x269afd['id']}})[_0x0554('0x1b')](function(_0x5c61b7){if(!_[_0x0554('0x1c')](_0x5c61b7)){var _0x5ab21f=_0x5c61b7[_0x0554('0x19')];if(!_[_0x0554('0x1c')](_0x5ab21f)){var _0x1ddc14=shared[_0x0554('0x1d')];var _0x18acb2=_0x1ddc14[_0x5ab21f];var _0x55a04b=_0x1ddc14[_0xaadae8[_0x0554('0x19')]];if(!_[_0x0554('0x1c')](_0x18acb2)&&!_[_0x0554('0x1c')](_0x55a04b)){var _0x9806ca=_0x18acb2[_0x0554('0x1e')]-_0x55a04b[_0x0554('0x1e')];_0x23cb59=_0xaadae8['scheduledat']?_0xaadae8[_0x0554('0x17')]:moment();var _0x5ba40a=moment(_0x23cb59)['add'](_0x9806ca,_0x0554('0x1f'));_0xeb5ab3({'ret':_0x5ba40a['format'](_0x0554('0x18'))});}else _0xeb5ab3({'ret':_0x23cb59});}else _0xeb5ab3({'ret':_0x23cb59});}else{_0xeb5ab3({'ret':_0x23cb59});}});}});return 0xa;}var _0x4f7dfa=function(_0x1a023c){return new BPromise(function(_0x14ca31,_0x2152ee){_0x274b02(_0x1a023c,_0x190c47)[_0x0554('0x1b')](function(_0x5ddddf){_0x190c47['scheduledat']=_0x5ddddf[_0x0554('0x20')];_0x3f137a[_0x0554('0x21')][_0x0554('0x22')]({'where':{'phone':_0x190c47['phone'],'VoiceQueueId':_0x1a023c['id']}})['then'](function(_0x3dbbf6){if(!_[_0x0554('0x1c')](_0x3dbbf6)){throw new Error('cmContact,\x20afterCreate\x20'+_0x190c47[_0x0554('0xc')]+_0x0554('0x23')+_0x1a023c['id']);}return _0x3f137a['CmHopper'][_0x0554('0x24')]({'phone':_0x190c47['phone'],'ContactId':_0x190c47['id'],'ListId':_0x190c47[_0x0554('0x25')],'priority':_0x190c47[_0x0554('0x26')]?_0x190c47['priority']:0x2,'scheduledat':_0x190c47[_0x0554('0x17')]?_0x190c47[_0x0554('0x17')]:moment()[_0x0554('0x27')](_0x0554('0x18')),'callback':_0x190c47['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x190c47[_0x0554('0x28')]?_0x190c47['callbackUniqueid']:undefined,'callbackat':_0x190c47[_0x0554('0x28')]?moment()[_0x0554('0x27')](_0x0554('0x18')):undefined,'VoiceQueueId':_0x1a023c['id']});})[_0x0554('0x29')](function(_0x3cdbe8){_0x2152ee(_0x3cdbe8);});});});};var _0x15fbbe=function(_0xb75f87){return new BPromise(function(_0x8bd0a,_0x18aad9){_0x274b02(_0xb75f87,_0x190c47)['then'](function(_0x13a552){_0x190c47['scheduledat']=_0x13a552[_0x0554('0x20')];_0x3f137a['CmHopper'][_0x0554('0x22')]({'where':{'phone':_0x190c47[_0x0554('0xc')],'VoiceQueueId':_0xb75f87['id']}})[_0x0554('0x1b')](function(_0x25ed94){if(!_[_0x0554('0x1c')](_0x25ed94)){throw new Error(_0x0554('0x2a')+_0x190c47[_0x0554('0xc')]+_0x0554('0x2b')+_0xb75f87['id']);}return _0x3f137a['CmHopperFinal']['findOne']({'where':{'calleridnum':_0x190c47[_0x0554('0xc')],'VoiceQueueId':_0xb75f87['id']}});})[_0x0554('0x1b')](function(_0x15161e){if(!_['isNil'](_0x15161e)){throw new Error(_0x0554('0x2c')+_0x190c47[_0x0554('0xc')]+_0x0554('0x2d')+_0xb75f87['id']);}return _0x3f137a[_0x0554('0x21')]['create']({'phone':_0x190c47['phone'],'ContactId':_0x190c47['id'],'ListId':_0x190c47[_0x0554('0x25')],'priority':_0x190c47[_0x0554('0x26')]?_0x190c47[_0x0554('0x26')]:0x2,'scheduledat':_0x190c47['scheduledat']?_0x190c47[_0x0554('0x17')]:moment()['format'](_0x0554('0x18')),'callback':_0x190c47[_0x0554('0x28')]?!![]:![],'callbackuniqueid':_0x190c47['callbackUniqueid']?_0x190c47[_0x0554('0x28')]:undefined,'callbackat':_0x190c47['callbackUniqueid']?moment()['format'](_0x0554('0x18')):undefined,'VoiceQueueId':_0xb75f87['id']});})[_0x0554('0x29')](function(_0x4d08c2){_0x18aad9(_0x4d08c2);});});});};function _0x560eb8(){return function(_0x44b411){logger['error'](_0x0554('0x2e'),'afterCreate',util[_0x0554('0x2f')](_0x44b411,{'showHidden':![],'depth':null}));};}function _0x46a712(_0x58cf20,_0x3863aa){var _0x1a7938=_0x3863aa[_0x0554('0x17')]?_0x3863aa[_0x0554('0x17')]:moment()[_0x0554('0x27')](_0x0554('0x18'));return new BPromise(function(_0x39b8b3,_0x1a0094){if(_[_0x0554('0x1c')](_0x3863aa['dialTimezone'])){_0x39b8b3({'ret':_0x1a7938});}else{_0x3f137a[_0x0554('0x30')][_0x0554('0x22')]({'where':{'id':_0x58cf20['id']}})[_0x0554('0x1b')](function(_0x1691ed){if(!_[_0x0554('0x1c')](_0x1691ed)){var _0x20d522=_0x1691ed['dialTimezone'];if(!_[_0x0554('0x1c')](_0x20d522)){var _0xba5e6d=shared[_0x0554('0x1d')];var _0x50e9f1=_0xba5e6d[_0x20d522];var _0x2821a4=_0xba5e6d[_0x3863aa['dialTimezone']];if(!_['isNil'](_0x50e9f1)&&!_[_0x0554('0x1c')](_0x2821a4)){var _0x461ab3=_0x50e9f1['utcOffset']-_0x2821a4[_0x0554('0x1e')];_0x1a7938=_0x3863aa[_0x0554('0x17')]?_0x3863aa['scheduledat']:moment();var _0x3781d7=moment(_0x1a7938)[_0x0554('0x31')](_0x461ab3,_0x0554('0x1f'));_0x39b8b3({'ret':_0x3781d7['format'](_0x0554('0x18'))});}else _0x39b8b3({'ret':_0x1a7938});}else _0x39b8b3({'ret':_0x1a7938});}else{_0x39b8b3({'ret':_0x1a7938});}});}});return 0xa;}var _0xa0b542=function(_0x399582){return new BPromise(function(_0x4f2f81,_0x541e14){_0x46a712(_0x399582,_0x190c47)[_0x0554('0x1b')](function(_0x157e67){_0x190c47[_0x0554('0x17')]=_0x157e67[_0x0554('0x20')];_0x3f137a[_0x0554('0x21')]['findOne']({'where':{'phone':_0x190c47[_0x0554('0xc')],'CampaignId':_0x399582['id']}})['then'](function(_0x2e37e5){if(!_[_0x0554('0x1c')](_0x2e37e5)){throw new Error('cmContact,\x20afterCreate\x20'+_0x190c47[_0x0554('0xc')]+_0x0554('0x32')+_0x399582['id']);}return _0x3f137a[_0x0554('0x21')][_0x0554('0x24')]({'phone':_0x190c47[_0x0554('0xc')],'ContactId':_0x190c47['id'],'ListId':_0x190c47['ListId'],'priority':_0x190c47[_0x0554('0x26')]?_0x190c47[_0x0554('0x26')]:0x2,'scheduledat':_0x190c47[_0x0554('0x17')]?_0x190c47[_0x0554('0x17')]:moment()[_0x0554('0x27')](_0x0554('0x18')),'callback':_0x190c47['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x190c47[_0x0554('0x28')]?_0x190c47[_0x0554('0x28')]:undefined,'callbackat':_0x190c47['callbackUniqueid']?moment()[_0x0554('0x27')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x399582['id']});})['catch'](function(_0x4e6c3e){_0x541e14(_0x4e6c3e);});});});};var _0xf38492=function(_0x21766c){return new BPromise(function(_0x18dc32,_0x5f493b){_0x46a712(_0x21766c,_0x190c47)[_0x0554('0x1b')](function(_0x281ae5){_0x190c47[_0x0554('0x17')]=_0x281ae5[_0x0554('0x20')];_0x3f137a[_0x0554('0x21')]['findOne']({'where':{'phone':_0x190c47[_0x0554('0xc')],'CampaignId':_0x21766c['id']}})[_0x0554('0x1b')](function(_0x3a859e){if(!_['isNil'](_0x3a859e)){throw new Error(_0x0554('0x2a')+_0x190c47[_0x0554('0xc')]+_0x0554('0x33')+_0x21766c['id']);}return _0x3f137a[_0x0554('0x34')][_0x0554('0x22')]({'where':{'calleridnum':_0x190c47[_0x0554('0xc')],'CampaignId':_0x21766c['id']}});})[_0x0554('0x1b')](function(_0x2d067a){if(!_[_0x0554('0x1c')](_0x2d067a)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x190c47[_0x0554('0xc')]+_0x0554('0x35')+_0x21766c['id']);}return _0x3f137a['CmHopper'][_0x0554('0x24')]({'phone':_0x190c47[_0x0554('0xc')],'ContactId':_0x190c47['id'],'ListId':_0x190c47['ListId'],'priority':_0x190c47[_0x0554('0x26')]?_0x190c47[_0x0554('0x26')]:0x2,'scheduledat':_0x190c47[_0x0554('0x17')]?_0x190c47[_0x0554('0x17')]:moment()[_0x0554('0x27')](_0x0554('0x18')),'callback':_0x190c47['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x190c47[_0x0554('0x28')]?_0x190c47['callbackUniqueid']:undefined,'callbackat':_0x190c47[_0x0554('0x28')]?moment()[_0x0554('0x27')](_0x0554('0x18')):undefined,'CampaignId':_0x21766c['id']});})[_0x0554('0x29')](function(_0x3ce031){_0x5f493b(_0x3ce031);});});});};if(_0x190c47[_0x0554('0x25')]){_0x3f137a['VoiceQueue'][_0x0554('0x36')]({'where':{'type':_0x0554('0x37')},'attributes':['id',_0x0554('0x38'),'dialTimezone'],'include':[{'model':_0x3f137a[_0x0554('0x39')],'as':_0x0554('0x3a'),'where':{'id':_0x190c47['ListId']}}]})[_0x0554('0x1b')](function(_0x4c5a4d){if(_0x4c5a4d){var _0x3dd5d7=[];for(var _0x70098d=0x0,_0x5cf4ba;_0x70098d<_0x4c5a4d[_0x0554('0x3b')];_0x70098d+=0x1){_0x5cf4ba=_0x4c5a4d[_0x70098d]['get']({'plain':!![]});switch(_0x5cf4ba['dialCheckDuplicateType']){case _0x0554('0x3c'):_0x15fbbe(_0x5cf4ba)[_0x0554('0x29')](_0x13150f());break;case _0x0554('0x3d'):_0x4f7dfa(_0x5cf4ba)[_0x0554('0x29')](_0x13150f());break;default:_0x46a712(_0x5cf4ba,_0x190c47)['then'](function(_0x45be6f){_0x190c47[_0x0554('0x17')]=_0x45be6f[_0x0554('0x20')];_0x3f137a[_0x0554('0x21')][_0x0554('0x24')]({'phone':_0x190c47['phone'],'ContactId':_0x190c47['id'],'ListId':_0x190c47['ListId'],'scheduledat':_0x190c47[_0x0554('0x17')]?_0x190c47['scheduledat']:moment()[_0x0554('0x27')](_0x0554('0x18')),'priority':_0x190c47[_0x0554('0x26')]?_0x190c47[_0x0554('0x26')]:0x2,'callback':_0x190c47[_0x0554('0x28')]?!![]:![],'callbackuniqueid':_0x190c47['callbackUniqueid']?_0x190c47[_0x0554('0x28')]:undefined,'callbackat':_0x190c47[_0x0554('0x28')]?moment()[_0x0554('0x27')](_0x0554('0x18')):undefined,'VoiceQueueId':_0x5cf4ba['id']})[_0x0554('0x29')](_0x13150f());});}}}})['then'](function(){return _0x3f137a[_0x0554('0x1a')][_0x0554('0x36')]({'where':{'type':'outbound'},'attributes':['id'],'include':[{'model':_0x3f137a['CmList'],'as':'BlackLists','where':{'id':_0x190c47['ListId']}}]})['then'](function(_0x475279){if(_0x475279){var _0x259848=[];for(var _0x372636=0x0,_0x59b311;_0x372636<_0x475279[_0x0554('0x3b')];_0x372636+=0x1){_0x59b311=_0x475279[_0x372636]['get']({'plain':!![]});_0x3f137a[_0x0554('0x3e')][_0x0554('0x24')]({'phone':_0x190c47[_0x0554('0xc')],'ContactId':_0x190c47['id'],'ListId':_0x190c47[_0x0554('0x25')],'VoiceQueueId':_0x59b311['id']})[_0x0554('0x29')](function(_0x458ad9){logger[_0x0554('0x16')](_0x0554('0x3f'),_0x0554('0x40'),_0x458ad9[_0x0554('0x41')]);});}}});})[_0x0554('0x1b')](function(){return _0x3f137a[_0x0554('0x30')][_0x0554('0x36')]({'attributes':['id',_0x0554('0x38'),'dialTimezone'],'include':[{'model':_0x3f137a[_0x0554('0x39')],'as':'Lists','where':{'id':_0x190c47['ListId']}}]})[_0x0554('0x1b')](function(_0x4defd7){if(_0x4defd7){var _0x35c8c5=[];for(var _0x1730a1=0x0,_0x5ecc7e;_0x1730a1<_0x4defd7[_0x0554('0x3b')];_0x1730a1+=0x1){_0x5ecc7e=_0x4defd7[_0x1730a1][_0x0554('0x15')]({'plain':!![]});switch(_0x5ecc7e[_0x0554('0x38')]){case _0x0554('0x3c'):_0xf38492(_0x5ecc7e)['catch'](_0x560eb8());break;case _0x0554('0x3d'):_0xa0b542(_0x5ecc7e)['catch'](_0x560eb8());break;default:_0x3f137a['CmHopper'][_0x0554('0x24')]({'phone':_0x190c47[_0x0554('0xc')],'ContactId':_0x190c47['id'],'ListId':_0x190c47['ListId'],'scheduledat':_0x190c47['scheduledat']?_0x190c47[_0x0554('0x17')]:moment()['format'](_0x0554('0x18')),'priority':_0x190c47['priority']?_0x190c47[_0x0554('0x26')]:0x2,'callback':_0x190c47['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x190c47['callbackUniqueid']?_0x190c47[_0x0554('0x28')]:undefined,'callbackat':_0x190c47[_0x0554('0x28')]?moment()[_0x0554('0x27')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x5ecc7e['id']})[_0x0554('0x29')](_0x560eb8());}}}});})[_0x0554('0x1b')](function(){return _0x3f137a[_0x0554('0x30')]['findAll']({'attributes':['id'],'include':[{'model':_0x3f137a['CmList'],'as':_0x0554('0x42'),'where':{'id':_0x190c47['ListId']}}]})[_0x0554('0x1b')](function(_0x131971){if(_0x131971){var _0x36e445=[];for(var _0x53eccf=0x0,_0x4a80cb;_0x53eccf<_0x131971['length'];_0x53eccf+=0x1){_0x4a80cb=_0x131971[_0x53eccf][_0x0554('0x15')]({'plain':!![]});_0x3f137a['CmHopperBlack']['create']({'phone':_0x190c47[_0x0554('0xc')],'ContactId':_0x190c47['id'],'ListId':_0x190c47[_0x0554('0x25')],'CampaignId':_0x4a80cb['id']})[_0x0554('0x29')](function(_0x5243a3){logger[_0x0554('0x16')]('cmContact,\x20%s,\x20%s',_0x0554('0x40'),_0x5243a3[_0x0554('0x41')]);});}}});})[_0x0554('0x1b')](function(){_0x230ad3();})[_0x0554('0x29')](function(_0x527328){logger[_0x0554('0x16')](_0x0554('0x3f'),_0x0554('0x40'),_0x527328['message']);_0x230ad3(_0x527328);});}else{_0x230ad3(new Error('List\x20not\x20found'));}},'afterDestroy':function(_0x2f35d3,_0x2ad4c3,_0x3b8821){var _0x5581bd=_0x3177cc[_0x0554('0x43')];var _0x3c92bb=_0x2f35d3[_0x0554('0x15')]({'plain':!![]});return _0x5581bd[_0x0554('0x21')][_0x0554('0x36')]({'raw':!![],'where':{'ListId':_0x3c92bb[_0x0554('0x25')],'ContactId':_0x3c92bb['id']}})[_0x0554('0x1b')](function(_0x366803){if(!_['isEmpty'](_0x366803)){var _0x44c707=[];for(var _0xc8c1a=0x0;_0xc8c1a<_0x366803[_0x0554('0x3b')];_0xc8c1a+=0x1){var _0x4ae1fe=_0x5581bd[_0x0554('0x21')][_0x0554('0x44')]({'where':{'ListId':_0x366803[_0xc8c1a][_0x0554('0x25')],'ContactId':_0x366803[_0xc8c1a]['ContactId'],'VoiceQueueId':_0x366803[_0xc8c1a][_0x0554('0x45')],'CampaignId':_0x366803[_0xc8c1a][_0x0554('0x46')]}});_0x44c707[_0x0554('0x47')](_0x4ae1fe);}return BPromise[_0x0554('0x48')](_0x44c707);}})[_0x0554('0x1b')](function(_0xdd3b78){logger[_0x0554('0x49')](_0x0554('0x4a'),util['inspect'](_0xdd3b78,{'showHidden':![],'depth':null}));_0x3b8821();})[_0x0554('0x29')](function(_0xa27562){logger['error'](_0x0554('0x4b'),util[_0x0554('0x2f')](_0xa27562,{'showHidden':![],'depth':null}));_0x3b8821(_0xa27562);});}}});};