Built motion from commit d5e4af8c.|2.6.23
[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 _0x669d=['afterCreate','inspect','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','isNil','VoiceQueue','findOne','dialTimezone','timezones','utcOffset','minutes','then','CmHopper','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','ListId','priority','callbackUniqueid','ret','CmHopperFinal','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','create','catch','Campaign','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20','findAll','dialCheckDuplicateType','CmList','Lists','get','onlyIfOpen','outbound','BlackLists','length','cmContact,\x20%s,\x20%s','always','CmHopperBlack','message','ContactId','VoiceQueueId','all','info','lodash','util','../../config/logger','api','moment','path','rimraf','../../config/environment','../../config/environment/shared','exports','define','CmContact','phone','firstName','lastName','mobile','fax','email','FULLTEXT','utf8mb4_unicode_ci','models','error','cmContact'];(function(_0x548d7d,_0x2d41fc){var _0xb1c878=function(_0x570f09){while(--_0x570f09){_0x548d7d['push'](_0x548d7d['shift']());}};_0xb1c878(++_0x2d41fc);}(_0x669d,0x138));var _0xd669=function(_0x341e0f,_0x4a09d0){_0x341e0f=_0x341e0f-0x0;var _0x59555a=_0x669d[_0x341e0f];return _0x59555a;};'use strict';var _=require(_0xd669('0x0'));var util=require(_0xd669('0x1'));var logger=require(_0xd669('0x2'))(_0xd669('0x3'));var moment=require(_0xd669('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xd669('0x5'));var rimraf=require(_0xd669('0x6'));var config=require(_0xd669('0x7'));var shared=require(_0xd669('0x8'));var attributes=require('./cmContact.attributes');module[_0xd669('0x9')]=function(_0x469798,_0x127a3f){return _0x469798[_0xd669('0xa')](_0xd669('0xb'),attributes,{'tableName':'cm_contacts','paranoid':!![],'indexes':[{'name':_0xd669('0xc'),'fields':[_0xd669('0xc')]},{'name':'fti_cm_contacts','fields':[_0xd669('0xd'),_0xd669('0xe'),'phone',_0xd669('0xf'),_0xd669('0x10'),_0xd669('0x11')],'type':_0xd669('0x12')}],'timestamps':!![],'charset':'utf8mb4','collate':_0xd669('0x13'),'hooks':{'afterCreate':function(_0x2b8423,_0xd7df7,_0x4eb628){var _0x3d0c09=_0x469798[_0xd669('0x14')];var _0x271185=_0x2b8423['get']({'plain':!![]});function _0x20a693(){return function(_0x231e0f){logger[_0xd669('0x15')](_0xd669('0x16'),_0xd669('0x17'),util[_0xd669('0x18')](_0x231e0f,{'showHidden':![],'depth':null}));};}function _0x4d7e99(_0x40d196,_0x4d7efa){var _0x420940=_0x4d7efa[_0xd669('0x19')]?_0x4d7efa[_0xd669('0x19')]:moment()[_0xd669('0x1a')](_0xd669('0x1b'));return new BPromise(function(_0x110731,_0x2a20c1){if(_[_0xd669('0x1c')](_0x4d7efa['dialTimezone'])){_0x110731({'ret':_0x420940});}else{_0x3d0c09[_0xd669('0x1d')][_0xd669('0x1e')]({'where':{'id':_0x40d196['id']}})['then'](function(_0x3719d9){if(!_['isNil'](_0x3719d9)){var _0x333662=_0x3719d9[_0xd669('0x1f')];if(!_[_0xd669('0x1c')](_0x333662)){var _0x4a688c=shared[_0xd669('0x20')];var _0x18359b=_0x4a688c[_0x333662];var _0x256cdc=_0x4a688c[_0x4d7efa[_0xd669('0x1f')]];if(!_[_0xd669('0x1c')](_0x18359b)&&!_[_0xd669('0x1c')](_0x256cdc)){var _0x59d78e=_0x18359b[_0xd669('0x21')]-_0x256cdc[_0xd669('0x21')];_0x420940=_0x4d7efa['scheduledat']?_0x4d7efa[_0xd669('0x19')]:moment();var _0x23fad0=moment(_0x420940)['add'](_0x59d78e,_0xd669('0x22'));_0x110731({'ret':_0x23fad0[_0xd669('0x1a')](_0xd669('0x1b'))});}else _0x110731({'ret':_0x420940});}else _0x110731({'ret':_0x420940});}else{_0x110731({'ret':_0x420940});}});}});return 0xa;}var _0x11b171=function(_0x37370d){return new BPromise(function(_0x3e715b,_0x248b88){_0x4d7e99(_0x37370d,_0x271185)[_0xd669('0x23')](function(_0x47a657){_0x271185[_0xd669('0x19')]=_0x47a657['ret'];_0x3d0c09[_0xd669('0x24')][_0xd669('0x1e')]({'where':{'phone':_0x271185[_0xd669('0xc')],'VoiceQueueId':_0x37370d['id']}})[_0xd669('0x23')](function(_0x2756ec){if(!_['isNil'](_0x2756ec)){throw new Error(_0xd669('0x25')+_0x271185[_0xd669('0xc')]+_0xd669('0x26')+_0x37370d['id']);}return _0x3d0c09[_0xd669('0x24')]['create']({'phone':_0x271185[_0xd669('0xc')],'ContactId':_0x271185['id'],'ListId':_0x271185[_0xd669('0x27')],'priority':_0x271185[_0xd669('0x28')]?_0x271185[_0xd669('0x28')]:0x2,'scheduledat':_0x271185[_0xd669('0x19')]?_0x271185[_0xd669('0x19')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x271185['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x271185['callbackUniqueid']?_0x271185[_0xd669('0x29')]:undefined,'callbackat':_0x271185[_0xd669('0x29')]?moment()[_0xd669('0x1a')](_0xd669('0x1b')):undefined,'VoiceQueueId':_0x37370d['id']});})['catch'](function(_0x3b9de1){_0x248b88(_0x3b9de1);});});});};var _0x3178c8=function(_0x52ad86){return new BPromise(function(_0x2078ed,_0x358d85){_0x4d7e99(_0x52ad86,_0x271185)[_0xd669('0x23')](function(_0x11bbbf){_0x271185[_0xd669('0x19')]=_0x11bbbf[_0xd669('0x2a')];_0x3d0c09[_0xd669('0x24')][_0xd669('0x1e')]({'where':{'phone':_0x271185[_0xd669('0xc')],'VoiceQueueId':_0x52ad86['id']}})[_0xd669('0x23')](function(_0x34b568){if(!_[_0xd669('0x1c')](_0x34b568)){throw new Error(_0xd669('0x25')+_0x271185[_0xd669('0xc')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x52ad86['id']);}return _0x3d0c09[_0xd669('0x2b')][_0xd669('0x1e')]({'where':{'calleridnum':_0x271185['phone'],'VoiceQueueId':_0x52ad86['id']}});})['then'](function(_0x37cb20){if(!_['isNil'](_0x37cb20)){throw new Error(_0xd669('0x2c')+_0x271185[_0xd669('0xc')]+_0xd669('0x2d')+_0x52ad86['id']);}return _0x3d0c09[_0xd669('0x24')][_0xd669('0x2e')]({'phone':_0x271185[_0xd669('0xc')],'ContactId':_0x271185['id'],'ListId':_0x271185[_0xd669('0x27')],'priority':_0x271185['priority']?_0x271185[_0xd669('0x28')]:0x2,'scheduledat':_0x271185[_0xd669('0x19')]?_0x271185['scheduledat']:moment()[_0xd669('0x1a')](_0xd669('0x1b')),'callback':_0x271185[_0xd669('0x29')]?!![]:![],'callbackuniqueid':_0x271185[_0xd669('0x29')]?_0x271185['callbackUniqueid']:undefined,'callbackat':_0x271185[_0xd669('0x29')]?moment()[_0xd669('0x1a')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x52ad86['id']});})[_0xd669('0x2f')](function(_0x2f116d){_0x358d85(_0x2f116d);});});});};function _0x245d7b(){return function(_0xf14fd5){logger['error']('cmContact',_0xd669('0x17'),util[_0xd669('0x18')](_0xf14fd5,{'showHidden':![],'depth':null}));};}function _0x2e4254(_0xb1fd26,_0x521a72){var _0x3f4636=_0x521a72[_0xd669('0x19')]?_0x521a72['scheduledat']:moment()[_0xd669('0x1a')](_0xd669('0x1b'));return new BPromise(function(_0x40b9ed,_0x398b23){if(_[_0xd669('0x1c')](_0x521a72['dialTimezone'])){_0x40b9ed({'ret':_0x3f4636});}else{_0x3d0c09[_0xd669('0x30')]['findOne']({'where':{'id':_0xb1fd26['id']}})[_0xd669('0x23')](function(_0x4a85d0){if(!_[_0xd669('0x1c')](_0x4a85d0)){var _0x301db9=_0x4a85d0['dialTimezone'];if(!_['isNil'](_0x301db9)){var _0x517fb5=shared['timezones'];var _0x57183e=_0x517fb5[_0x301db9];var _0x2eb21f=_0x517fb5[_0x521a72[_0xd669('0x1f')]];if(!_['isNil'](_0x57183e)&&!_[_0xd669('0x1c')](_0x2eb21f)){var _0x4421ba=_0x57183e['utcOffset']-_0x2eb21f[_0xd669('0x21')];_0x3f4636=_0x521a72[_0xd669('0x19')]?_0x521a72[_0xd669('0x19')]:moment();var _0x4f1d4a=moment(_0x3f4636)['add'](_0x4421ba,_0xd669('0x22'));_0x40b9ed({'ret':_0x4f1d4a[_0xd669('0x1a')](_0xd669('0x1b'))});}else _0x40b9ed({'ret':_0x3f4636});}else _0x40b9ed({'ret':_0x3f4636});}else{_0x40b9ed({'ret':_0x3f4636});}});}});return 0xa;}var _0x286b90=function(_0x227ad8){return new BPromise(function(_0x5b0883,_0x49daf8){_0x2e4254(_0x227ad8,_0x271185)['then'](function(_0x4f0ac5){_0x271185['scheduledat']=_0x4f0ac5[_0xd669('0x2a')];_0x3d0c09['CmHopper'][_0xd669('0x1e')]({'where':{'phone':_0x271185[_0xd669('0xc')],'CampaignId':_0x227ad8['id']}})[_0xd669('0x23')](function(_0x4dbf1b){if(!_[_0xd669('0x1c')](_0x4dbf1b)){throw new Error(_0xd669('0x25')+_0x271185[_0xd669('0xc')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x227ad8['id']);}return _0x3d0c09['CmHopper'][_0xd669('0x2e')]({'phone':_0x271185[_0xd669('0xc')],'ContactId':_0x271185['id'],'ListId':_0x271185[_0xd669('0x27')],'priority':_0x271185['priority']?_0x271185[_0xd669('0x28')]:0x2,'scheduledat':_0x271185['scheduledat']?_0x271185['scheduledat']:moment()[_0xd669('0x1a')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x271185['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x271185[_0xd669('0x29')]?_0x271185[_0xd669('0x29')]:undefined,'callbackat':_0x271185[_0xd669('0x29')]?moment()[_0xd669('0x1a')](_0xd669('0x1b')):undefined,'CampaignId':_0x227ad8['id']});})[_0xd669('0x2f')](function(_0x2da876){_0x49daf8(_0x2da876);});});});};var _0xab9cc0=function(_0x4c1de1){return new BPromise(function(_0x50d585,_0x4bf5b9){_0x2e4254(_0x4c1de1,_0x271185)['then'](function(_0x1bb27b){_0x271185[_0xd669('0x19')]=_0x1bb27b[_0xd669('0x2a')];_0x3d0c09[_0xd669('0x24')]['findOne']({'where':{'phone':_0x271185[_0xd669('0xc')],'CampaignId':_0x4c1de1['id']}})['then'](function(_0x3fedc9){if(!_[_0xd669('0x1c')](_0x3fedc9)){throw new Error(_0xd669('0x25')+_0x271185[_0xd669('0xc')]+_0xd669('0x31')+_0x4c1de1['id']);}return _0x3d0c09[_0xd669('0x2b')][_0xd669('0x1e')]({'where':{'calleridnum':_0x271185[_0xd669('0xc')],'CampaignId':_0x4c1de1['id']}});})[_0xd669('0x23')](function(_0xcd60b6){if(!_[_0xd669('0x1c')](_0xcd60b6)){throw new Error(_0xd669('0x2c')+_0x271185[_0xd669('0xc')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20'+_0x4c1de1['id']);}return _0x3d0c09[_0xd669('0x24')]['create']({'phone':_0x271185[_0xd669('0xc')],'ContactId':_0x271185['id'],'ListId':_0x271185[_0xd669('0x27')],'priority':_0x271185['priority']?_0x271185['priority']:0x2,'scheduledat':_0x271185[_0xd669('0x19')]?_0x271185['scheduledat']:moment()[_0xd669('0x1a')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x271185[_0xd669('0x29')]?!![]:![],'callbackuniqueid':_0x271185[_0xd669('0x29')]?_0x271185[_0xd669('0x29')]:undefined,'callbackat':_0x271185[_0xd669('0x29')]?moment()[_0xd669('0x1a')](_0xd669('0x1b')):undefined,'CampaignId':_0x4c1de1['id']});})['catch'](function(_0x20d762){_0x4bf5b9(_0x20d762);});});});};if(_0x271185[_0xd669('0x27')]){_0x3d0c09['VoiceQueue'][_0xd669('0x32')]({'where':{'type':'outbound'},'attributes':['id',_0xd669('0x33'),'dialTimezone'],'include':[{'model':_0x3d0c09[_0xd669('0x34')],'as':_0xd669('0x35'),'where':{'id':_0x271185[_0xd669('0x27')]}}]})['then'](function(_0x29067a){if(_0x29067a){var _0x13840a=[];for(var _0x2fc52f=0x0,_0xee199c;_0x2fc52f<_0x29067a['length'];_0x2fc52f+=0x1){_0xee199c=_0x29067a[_0x2fc52f][_0xd669('0x36')]({'plain':!![]});switch(_0xee199c['dialCheckDuplicateType']){case'always':_0x3178c8(_0xee199c)[_0xd669('0x2f')](_0x20a693());break;case _0xd669('0x37'):_0x11b171(_0xee199c)[_0xd669('0x2f')](_0x20a693());break;default:_0x2e4254(_0xee199c,_0x271185)[_0xd669('0x23')](function(_0x2d3018){_0x271185[_0xd669('0x19')]=_0x2d3018[_0xd669('0x2a')];_0x3d0c09[_0xd669('0x24')]['create']({'phone':_0x271185[_0xd669('0xc')],'ContactId':_0x271185['id'],'ListId':_0x271185[_0xd669('0x27')],'scheduledat':_0x271185[_0xd669('0x19')]?_0x271185[_0xd669('0x19')]:moment()[_0xd669('0x1a')](_0xd669('0x1b')),'priority':_0x271185[_0xd669('0x28')]?_0x271185['priority']:0x2,'callback':_0x271185[_0xd669('0x29')]?!![]:![],'callbackuniqueid':_0x271185[_0xd669('0x29')]?_0x271185[_0xd669('0x29')]:undefined,'callbackat':_0x271185[_0xd669('0x29')]?moment()[_0xd669('0x1a')](_0xd669('0x1b')):undefined,'VoiceQueueId':_0xee199c['id']})[_0xd669('0x2f')](_0x20a693());});}}}})[_0xd669('0x23')](function(){return _0x3d0c09[_0xd669('0x1d')][_0xd669('0x32')]({'where':{'type':_0xd669('0x38')},'attributes':['id'],'include':[{'model':_0x3d0c09[_0xd669('0x34')],'as':_0xd669('0x39'),'where':{'id':_0x271185['ListId']}}]})[_0xd669('0x23')](function(_0x171d7a){if(_0x171d7a){var _0x4cb57a=[];for(var _0x2c99b0=0x0,_0x36582f;_0x2c99b0<_0x171d7a[_0xd669('0x3a')];_0x2c99b0+=0x1){_0x36582f=_0x171d7a[_0x2c99b0][_0xd669('0x36')]({'plain':!![]});_0x3d0c09['CmHopperBlack'][_0xd669('0x2e')]({'phone':_0x271185[_0xd669('0xc')],'ContactId':_0x271185['id'],'ListId':_0x271185[_0xd669('0x27')],'VoiceQueueId':_0x36582f['id']})['catch'](function(_0x2b9868){logger['error'](_0xd669('0x3b'),_0xd669('0x17'),_0x2b9868['message']);});}}});})[_0xd669('0x23')](function(){return _0x3d0c09['Campaign']['findAll']({'attributes':['id',_0xd669('0x33'),_0xd669('0x1f')],'include':[{'model':_0x3d0c09[_0xd669('0x34')],'as':_0xd669('0x35'),'where':{'id':_0x271185[_0xd669('0x27')]}}]})['then'](function(_0x27ae7b){if(_0x27ae7b){var _0x2570fb=[];for(var _0x32247e=0x0,_0x13399b;_0x32247e<_0x27ae7b[_0xd669('0x3a')];_0x32247e+=0x1){_0x13399b=_0x27ae7b[_0x32247e][_0xd669('0x36')]({'plain':!![]});switch(_0x13399b[_0xd669('0x33')]){case _0xd669('0x3c'):_0xab9cc0(_0x13399b)[_0xd669('0x2f')](_0x245d7b());break;case _0xd669('0x37'):_0x286b90(_0x13399b)[_0xd669('0x2f')](_0x245d7b());break;default:_0x3d0c09[_0xd669('0x24')]['create']({'phone':_0x271185['phone'],'ContactId':_0x271185['id'],'ListId':_0x271185[_0xd669('0x27')],'scheduledat':_0x271185['scheduledat']?_0x271185[_0xd669('0x19')]:moment()[_0xd669('0x1a')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x271185[_0xd669('0x28')]?_0x271185[_0xd669('0x28')]:0x2,'callback':_0x271185['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x271185[_0xd669('0x29')]?_0x271185[_0xd669('0x29')]:undefined,'callbackat':_0x271185['callbackUniqueid']?moment()[_0xd669('0x1a')](_0xd669('0x1b')):undefined,'CampaignId':_0x13399b['id']})['catch'](_0x245d7b());}}}});})[_0xd669('0x23')](function(){return _0x3d0c09[_0xd669('0x30')]['findAll']({'attributes':['id'],'include':[{'model':_0x3d0c09[_0xd669('0x34')],'as':_0xd669('0x39'),'where':{'id':_0x271185[_0xd669('0x27')]}}]})[_0xd669('0x23')](function(_0x3f01fd){if(_0x3f01fd){var _0x4ac8ae=[];for(var _0x2b3407=0x0,_0x280b2b;_0x2b3407<_0x3f01fd[_0xd669('0x3a')];_0x2b3407+=0x1){_0x280b2b=_0x3f01fd[_0x2b3407]['get']({'plain':!![]});_0x3d0c09[_0xd669('0x3d')]['create']({'phone':_0x271185[_0xd669('0xc')],'ContactId':_0x271185['id'],'ListId':_0x271185[_0xd669('0x27')],'CampaignId':_0x280b2b['id']})[_0xd669('0x2f')](function(_0x109eaa){logger['error'](_0xd669('0x3b'),_0xd669('0x17'),_0x109eaa[_0xd669('0x3e')]);});}}});})[_0xd669('0x23')](function(){_0x4eb628();})[_0xd669('0x2f')](function(_0x533e11){logger[_0xd669('0x15')]('cmContact,\x20%s,\x20%s',_0xd669('0x17'),_0x533e11['message']);_0x4eb628(_0x533e11);});}else{_0x4eb628(new Error('List\x20not\x20found'));}},'afterDestroy':function(_0x42db17,_0x1b0231,_0x157f16){var _0x316b3a=_0x469798[_0xd669('0x14')];var _0x42cc74=_0x42db17[_0xd669('0x36')]({'plain':!![]});return _0x316b3a[_0xd669('0x24')][_0xd669('0x32')]({'raw':!![],'where':{'ListId':_0x42cc74['ListId'],'ContactId':_0x42cc74['id']}})[_0xd669('0x23')](function(_0x2226dc){if(!_['isEmpty'](_0x2226dc)){var _0x3ab11a=[];for(var _0x19833e=0x0;_0x19833e<_0x2226dc[_0xd669('0x3a')];_0x19833e+=0x1){var _0x543981=_0x316b3a[_0xd669('0x24')]['destroy']({'where':{'ListId':_0x2226dc[_0x19833e]['ListId'],'ContactId':_0x2226dc[_0x19833e][_0xd669('0x3f')],'VoiceQueueId':_0x2226dc[_0x19833e][_0xd669('0x40')],'CampaignId':_0x2226dc[_0x19833e]['CampaignId']}});_0x3ab11a['push'](_0x543981);}return BPromise[_0xd669('0x41')](_0x3ab11a);}})[_0xd669('0x23')](function(_0x1fb038){logger[_0xd669('0x42')]('[CmContact][afterDestroy][Succesfull]',util['inspect'](_0x1fb038,{'showHidden':![],'depth':null}));_0x157f16();})[_0xd669('0x2f')](function(_0x26830e){logger[_0xd669('0x15')]('[CmContact][afterDestroy][Error]',util[_0xd669('0x18')](_0x26830e,{'showHidden':![],'depth':null}));_0x157f16(_0x26830e);});}}});};