Built motion from commit (unavailable).|2.5.22
[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 _0xe6e9=['error','cmContact','afterCreate','inspect','CmHopper','findOne','then','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create','ListId','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','catch','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopperFinal','cmContact,\x20afterCreate,\x20','priority','\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','findAll','outbound','dialCheckDuplicateType','CmList','Lists','length','onlyIfOpen','VoiceQueue','BlackLists','CmHopperBlack','message','Campaign','always','cmContact,\x20%s,\x20%s','List\x20not\x20found','isEmpty','ContactId','VoiceQueueId','CampaignId','all','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','moment','bluebird','request-promise','path','rimraf','./cmContact.attributes','exports','define','cm_contacts','phone','fti_cm_contacts','firstName','lastName','mobile','fax','email','FULLTEXT','models','get'];(function(_0x1cb18a,_0x33167a){var _0x22442e=function(_0x46c611){while(--_0x46c611){_0x1cb18a['push'](_0x1cb18a['shift']());}};_0x22442e(++_0x33167a);}(_0xe6e9,0x182));var _0x9e6e=function(_0x224f62,_0x1e8f4d){_0x224f62=_0x224f62-0x0;var _0x4a3855=_0xe6e9[_0x224f62];return _0x4a3855;};'use strict';var _=require(_0x9e6e('0x0'));var util=require(_0x9e6e('0x1'));var logger=require(_0x9e6e('0x2'))('api');var moment=require(_0x9e6e('0x3'));var BPromise=require(_0x9e6e('0x4'));var rp=require(_0x9e6e('0x5'));var fs=require('fs');var path=require(_0x9e6e('0x6'));var rimraf=require(_0x9e6e('0x7'));var config=require('../../config/environment');var attributes=require(_0x9e6e('0x8'));module[_0x9e6e('0x9')]=function(_0x206572,_0x1e8e5e){return _0x206572[_0x9e6e('0xa')]('CmContact',attributes,{'tableName':_0x9e6e('0xb'),'paranoid':!![],'indexes':[{'name':_0x9e6e('0xc'),'fields':[_0x9e6e('0xc')]},{'name':_0x9e6e('0xd'),'fields':[_0x9e6e('0xe'),_0x9e6e('0xf'),'phone',_0x9e6e('0x10'),_0x9e6e('0x11'),_0x9e6e('0x12')],'type':_0x9e6e('0x13')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x556175,_0x175ca3,_0x4697d1){var _0x51bc20=_0x206572[_0x9e6e('0x14')];var _0x2e431d=_0x556175[_0x9e6e('0x15')]({'plain':!![]});function _0x363f0c(){return function(_0x5a2cf9){logger[_0x9e6e('0x16')](_0x9e6e('0x17'),_0x9e6e('0x18'),util[_0x9e6e('0x19')](_0x5a2cf9,{'showHidden':![],'depth':null}));};}var _0x3ade25=function(_0x38f89c){return new BPromise(function(_0x3905af,_0x6bc20c){_0x51bc20[_0x9e6e('0x1a')][_0x9e6e('0x1b')]({'where':{'phone':_0x2e431d[_0x9e6e('0xc')],'VoiceQueueId':_0x38f89c['id']}})[_0x9e6e('0x1c')](function(_0x2e5472){if(!_[_0x9e6e('0x1d')](_0x2e5472)){throw new Error(_0x9e6e('0x1e')+_0x2e431d[_0x9e6e('0xc')]+_0x9e6e('0x1f')+_0x38f89c['id']);}return _0x51bc20[_0x9e6e('0x1a')][_0x9e6e('0x20')]({'phone':_0x2e431d[_0x9e6e('0xc')],'ContactId':_0x2e431d['id'],'ListId':_0x2e431d[_0x9e6e('0x21')],'priority':_0x2e431d['priority']?_0x2e431d['priority']:0x2,'scheduledat':_0x2e431d['scheduledat']?_0x2e431d[_0x9e6e('0x22')]:moment()[_0x9e6e('0x23')](_0x9e6e('0x24')),'callback':_0x2e431d[_0x9e6e('0x25')]?!![]:![],'callbackuniqueid':_0x2e431d[_0x9e6e('0x25')]?_0x2e431d[_0x9e6e('0x25')]:undefined,'callbackat':_0x2e431d[_0x9e6e('0x25')]?moment()[_0x9e6e('0x23')](_0x9e6e('0x24')):undefined,'VoiceQueueId':_0x38f89c['id']});})[_0x9e6e('0x26')](function(_0x379da6){_0x6bc20c(_0x379da6);});});};var _0x3b3527=function(_0x28ae35){return new BPromise(function(_0x1e97c3,_0x2e7136){_0x51bc20[_0x9e6e('0x1a')]['findOne']({'where':{'phone':_0x2e431d[_0x9e6e('0xc')],'VoiceQueueId':_0x28ae35['id']}})[_0x9e6e('0x1c')](function(_0x3aee5c){if(!_[_0x9e6e('0x1d')](_0x3aee5c)){throw new Error('cmContact,\x20afterCreate\x20'+_0x2e431d['phone']+_0x9e6e('0x27')+_0x28ae35['id']);}return _0x51bc20[_0x9e6e('0x28')][_0x9e6e('0x1b')]({'where':{'calleridnum':_0x2e431d['phone'],'VoiceQueueId':_0x28ae35['id']}});})['then'](function(_0x383656){if(!_[_0x9e6e('0x1d')](_0x383656)){throw new Error(_0x9e6e('0x29')+_0x2e431d[_0x9e6e('0xc')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20'+_0x28ae35['id']);}return _0x51bc20['CmHopper'][_0x9e6e('0x20')]({'phone':_0x2e431d['phone'],'ContactId':_0x2e431d['id'],'ListId':_0x2e431d[_0x9e6e('0x21')],'priority':_0x2e431d['priority']?_0x2e431d[_0x9e6e('0x2a')]:0x2,'scheduledat':_0x2e431d[_0x9e6e('0x22')]?_0x2e431d['scheduledat']:moment()[_0x9e6e('0x23')](_0x9e6e('0x24')),'callback':_0x2e431d[_0x9e6e('0x25')]?!![]:![],'callbackuniqueid':_0x2e431d[_0x9e6e('0x25')]?_0x2e431d['callbackUniqueid']:undefined,'callbackat':_0x2e431d[_0x9e6e('0x25')]?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x28ae35['id']});})[_0x9e6e('0x26')](function(_0x4b1a66){_0x2e7136(_0x4b1a66);});});};function _0x33f33c(){return function(_0x252b82){logger[_0x9e6e('0x16')](_0x9e6e('0x17'),'afterCreate',util[_0x9e6e('0x19')](_0x252b82,{'showHidden':![],'depth':null}));};}var _0x4d0b5d=function(_0x36b966){return new BPromise(function(_0x50a532,_0x58fae9){_0x51bc20[_0x9e6e('0x1a')][_0x9e6e('0x1b')]({'where':{'phone':_0x2e431d[_0x9e6e('0xc')],'CampaignId':_0x36b966['id']}})['then'](function(_0x3ed6b3){if(!_[_0x9e6e('0x1d')](_0x3ed6b3)){throw new Error(_0x9e6e('0x1e')+_0x2e431d['phone']+_0x9e6e('0x2b')+_0x36b966['id']);}return _0x51bc20[_0x9e6e('0x1a')][_0x9e6e('0x20')]({'phone':_0x2e431d['phone'],'ContactId':_0x2e431d['id'],'ListId':_0x2e431d['ListId'],'priority':_0x2e431d['priority']?_0x2e431d[_0x9e6e('0x2a')]:0x2,'scheduledat':_0x2e431d[_0x9e6e('0x22')]?_0x2e431d['scheduledat']:moment()[_0x9e6e('0x23')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x2e431d['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x2e431d[_0x9e6e('0x25')]?_0x2e431d[_0x9e6e('0x25')]:undefined,'callbackat':_0x2e431d[_0x9e6e('0x25')]?moment()['format'](_0x9e6e('0x24')):undefined,'CampaignId':_0x36b966['id']});})['catch'](function(_0x56516f){_0x58fae9(_0x56516f);});});};var _0x209500=function(_0x40e525){return new BPromise(function(_0x439e0c,_0x4c0e75){_0x51bc20[_0x9e6e('0x1a')][_0x9e6e('0x1b')]({'where':{'phone':_0x2e431d[_0x9e6e('0xc')],'CampaignId':_0x40e525['id']}})[_0x9e6e('0x1c')](function(_0x251f18){if(!_[_0x9e6e('0x1d')](_0x251f18)){throw new Error('cmContact,\x20afterCreate\x20'+_0x2e431d[_0x9e6e('0xc')]+_0x9e6e('0x2c')+_0x40e525['id']);}return _0x51bc20['CmHopperFinal'][_0x9e6e('0x1b')]({'where':{'calleridnum':_0x2e431d[_0x9e6e('0xc')],'CampaignId':_0x40e525['id']}});})[_0x9e6e('0x1c')](function(_0x361e7a){if(!_['isNil'](_0x361e7a)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x2e431d[_0x9e6e('0xc')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20'+_0x40e525['id']);}return _0x51bc20['CmHopper']['create']({'phone':_0x2e431d['phone'],'ContactId':_0x2e431d['id'],'ListId':_0x2e431d['ListId'],'priority':_0x2e431d['priority']?_0x2e431d[_0x9e6e('0x2a')]:0x2,'scheduledat':_0x2e431d[_0x9e6e('0x22')]?_0x2e431d[_0x9e6e('0x22')]:moment()[_0x9e6e('0x23')](_0x9e6e('0x24')),'callback':_0x2e431d[_0x9e6e('0x25')]?!![]:![],'callbackuniqueid':_0x2e431d['callbackUniqueid']?_0x2e431d[_0x9e6e('0x25')]:undefined,'callbackat':_0x2e431d[_0x9e6e('0x25')]?moment()[_0x9e6e('0x23')](_0x9e6e('0x24')):undefined,'CampaignId':_0x40e525['id']});})[_0x9e6e('0x26')](function(_0x5a7f55){_0x4c0e75(_0x5a7f55);});});};if(_0x2e431d['ListId']){_0x51bc20['VoiceQueue'][_0x9e6e('0x2d')]({'where':{'type':_0x9e6e('0x2e')},'attributes':['id',_0x9e6e('0x2f')],'include':[{'model':_0x51bc20[_0x9e6e('0x30')],'as':_0x9e6e('0x31'),'where':{'id':_0x2e431d[_0x9e6e('0x21')]}}]})[_0x9e6e('0x1c')](function(_0x576657){if(_0x576657){var _0x4745d7=[];for(var _0x39224d=0x0,_0x4d60ca;_0x39224d<_0x576657[_0x9e6e('0x32')];_0x39224d+=0x1){_0x4d60ca=_0x576657[_0x39224d][_0x9e6e('0x15')]({'plain':!![]});switch(_0x4d60ca['dialCheckDuplicateType']){case'always':_0x3b3527(_0x4d60ca)[_0x9e6e('0x26')](_0x363f0c());break;case _0x9e6e('0x33'):_0x3ade25(_0x4d60ca)[_0x9e6e('0x26')](_0x363f0c());break;default:_0x51bc20['CmHopper'][_0x9e6e('0x20')]({'phone':_0x2e431d[_0x9e6e('0xc')],'ContactId':_0x2e431d['id'],'ListId':_0x2e431d[_0x9e6e('0x21')],'scheduledat':_0x2e431d[_0x9e6e('0x22')]?_0x2e431d[_0x9e6e('0x22')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x2e431d[_0x9e6e('0x2a')]?_0x2e431d[_0x9e6e('0x2a')]:0x2,'callback':_0x2e431d['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x2e431d['callbackUniqueid']?_0x2e431d[_0x9e6e('0x25')]:undefined,'callbackat':_0x2e431d[_0x9e6e('0x25')]?moment()['format'](_0x9e6e('0x24')):undefined,'VoiceQueueId':_0x4d60ca['id']})[_0x9e6e('0x26')](_0x363f0c());}}}})[_0x9e6e('0x1c')](function(){return _0x51bc20[_0x9e6e('0x34')][_0x9e6e('0x2d')]({'where':{'type':_0x9e6e('0x2e')},'attributes':['id'],'include':[{'model':_0x51bc20[_0x9e6e('0x30')],'as':_0x9e6e('0x35'),'where':{'id':_0x2e431d[_0x9e6e('0x21')]}}]})[_0x9e6e('0x1c')](function(_0x3ce36f){if(_0x3ce36f){var _0x43af5f=[];for(var _0xb9e947=0x0,_0x39fddc;_0xb9e947<_0x3ce36f[_0x9e6e('0x32')];_0xb9e947+=0x1){_0x39fddc=_0x3ce36f[_0xb9e947][_0x9e6e('0x15')]({'plain':!![]});_0x51bc20[_0x9e6e('0x36')][_0x9e6e('0x20')]({'phone':_0x2e431d['phone'],'ContactId':_0x2e431d['id'],'ListId':_0x2e431d[_0x9e6e('0x21')],'VoiceQueueId':_0x39fddc['id']})['catch'](function(_0x52049c){logger[_0x9e6e('0x16')]('cmContact,\x20%s,\x20%s','afterCreate',_0x52049c[_0x9e6e('0x37')]);});}}});})[_0x9e6e('0x1c')](function(){return _0x51bc20[_0x9e6e('0x38')]['findAll']({'attributes':['id',_0x9e6e('0x2f')],'include':[{'model':_0x51bc20['CmList'],'as':_0x9e6e('0x31'),'where':{'id':_0x2e431d['ListId']}}]})[_0x9e6e('0x1c')](function(_0x361ed9){if(_0x361ed9){var _0x227cdf=[];for(var _0x13f7a7=0x0,_0x537d57;_0x13f7a7<_0x361ed9[_0x9e6e('0x32')];_0x13f7a7+=0x1){_0x537d57=_0x361ed9[_0x13f7a7][_0x9e6e('0x15')]({'plain':!![]});switch(_0x537d57[_0x9e6e('0x2f')]){case _0x9e6e('0x39'):_0x209500(_0x537d57)[_0x9e6e('0x26')](_0x33f33c());break;case'onlyIfOpen':_0x4d0b5d(_0x537d57)['catch'](_0x33f33c());break;default:_0x51bc20[_0x9e6e('0x1a')][_0x9e6e('0x20')]({'phone':_0x2e431d['phone'],'ContactId':_0x2e431d['id'],'ListId':_0x2e431d[_0x9e6e('0x21')],'scheduledat':_0x2e431d[_0x9e6e('0x22')]?_0x2e431d[_0x9e6e('0x22')]:moment()[_0x9e6e('0x23')](_0x9e6e('0x24')),'priority':_0x2e431d['priority']?_0x2e431d[_0x9e6e('0x2a')]:0x2,'callback':_0x2e431d[_0x9e6e('0x25')]?!![]:![],'callbackuniqueid':_0x2e431d[_0x9e6e('0x25')]?_0x2e431d[_0x9e6e('0x25')]:undefined,'callbackat':_0x2e431d['callbackUniqueid']?moment()[_0x9e6e('0x23')](_0x9e6e('0x24')):undefined,'CampaignId':_0x537d57['id']})['catch'](_0x33f33c());}}}});})[_0x9e6e('0x1c')](function(){return _0x51bc20[_0x9e6e('0x38')][_0x9e6e('0x2d')]({'attributes':['id'],'include':[{'model':_0x51bc20[_0x9e6e('0x30')],'as':_0x9e6e('0x35'),'where':{'id':_0x2e431d[_0x9e6e('0x21')]}}]})[_0x9e6e('0x1c')](function(_0x1e6fbd){if(_0x1e6fbd){var _0x2d9449=[];for(var _0x188e09=0x0,_0x4ed637;_0x188e09<_0x1e6fbd[_0x9e6e('0x32')];_0x188e09+=0x1){_0x4ed637=_0x1e6fbd[_0x188e09]['get']({'plain':!![]});_0x51bc20[_0x9e6e('0x36')][_0x9e6e('0x20')]({'phone':_0x2e431d['phone'],'ContactId':_0x2e431d['id'],'ListId':_0x2e431d[_0x9e6e('0x21')],'CampaignId':_0x4ed637['id']})[_0x9e6e('0x26')](function(_0x501839){logger['error']('cmContact,\x20%s,\x20%s',_0x9e6e('0x18'),_0x501839['message']);});}}});})[_0x9e6e('0x1c')](function(){_0x4697d1();})['catch'](function(_0x31f816){logger[_0x9e6e('0x16')](_0x9e6e('0x3a'),'afterCreate',_0x31f816[_0x9e6e('0x37')]);_0x4697d1(_0x31f816);});}else{_0x4697d1(new Error(_0x9e6e('0x3b')));}},'afterDestroy':function(_0x5c132c,_0x32b41d,_0x56c6d1){var _0x55c4d2=_0x206572[_0x9e6e('0x14')];var _0x5b42f2=_0x5c132c[_0x9e6e('0x15')]({'plain':!![]});return _0x55c4d2['CmHopper'][_0x9e6e('0x2d')]({'raw':!![],'where':{'ListId':_0x5b42f2[_0x9e6e('0x21')],'ContactId':_0x5b42f2['id']}})[_0x9e6e('0x1c')](function(_0x832817){if(!_[_0x9e6e('0x3c')](_0x832817)){var _0x622c29=[];for(var _0x49a5f6=0x0;_0x49a5f6<_0x832817[_0x9e6e('0x32')];_0x49a5f6+=0x1){var _0x3f3455=_0x55c4d2[_0x9e6e('0x1a')]['destroy']({'where':{'ListId':_0x832817[_0x49a5f6][_0x9e6e('0x21')],'ContactId':_0x832817[_0x49a5f6][_0x9e6e('0x3d')],'VoiceQueueId':_0x832817[_0x49a5f6][_0x9e6e('0x3e')],'CampaignId':_0x832817[_0x49a5f6][_0x9e6e('0x3f')]}});_0x622c29['push'](_0x3f3455);}return BPromise[_0x9e6e('0x40')](_0x622c29);}})[_0x9e6e('0x1c')](function(_0x2ffabf){logger[_0x9e6e('0x41')](_0x9e6e('0x42'),util[_0x9e6e('0x19')](_0x2ffabf,{'showHidden':![],'depth':null}));_0x56c6d1();})[_0x9e6e('0x26')](function(_0x35ad20){logger[_0x9e6e('0x16')](_0x9e6e('0x43'),util[_0x9e6e('0x19')](_0x35ad20,{'showHidden':![],'depth':null}));_0x56c6d1(_0x35ad20);});}}});};