Built motion from commit (unavailable).|2.5.30
[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 _0x9c63=['\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','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','VoiceQueue','outbound','dialCheckDuplicateType','CmList','Lists','get','onlyIfOpen','findAll','BlackLists','length','CmHopperBlack','message','Campaign','cmContact,\x20%s,\x20%s','List\x20not\x20found','models','isEmpty','destroy','VoiceQueueId','CampaignId','push','all','info','[CmContact][afterDestroy][Succesfull]','lodash','util','../../config/logger','api','moment','request-promise','path','./cmContact.attributes','exports','define','CmContact','phone','fti_cm_contacts','firstName','lastName','mobile','email','error','cmContact','afterCreate','CmHopper','then','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create','format','callbackUniqueid','findOne','isNil','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopperFinal','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','ListId','priority','scheduledat','YYYY-MM-DD\x20HH:mm:ss','catch','inspect'];(function(_0xccc223,_0x52a067){var _0x29ec3c=function(_0x37daf2){while(--_0x37daf2){_0xccc223['push'](_0xccc223['shift']());}};_0x29ec3c(++_0x52a067);}(_0x9c63,0x1a7));var _0x39c6=function(_0x4f96fc,_0x54a631){_0x4f96fc=_0x4f96fc-0x0;var _0x357fce=_0x9c63[_0x4f96fc];return _0x357fce;};'use strict';var _=require(_0x39c6('0x0'));var util=require(_0x39c6('0x1'));var logger=require(_0x39c6('0x2'))(_0x39c6('0x3'));var moment=require(_0x39c6('0x4'));var BPromise=require('bluebird');var rp=require(_0x39c6('0x5'));var fs=require('fs');var path=require(_0x39c6('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x39c6('0x7'));module[_0x39c6('0x8')]=function(_0x1071e8,_0xf47b0d){return _0x1071e8[_0x39c6('0x9')](_0x39c6('0xa'),attributes,{'tableName':'cm_contacts','paranoid':!![],'indexes':[{'name':_0x39c6('0xb'),'fields':[_0x39c6('0xb')]},{'name':_0x39c6('0xc'),'fields':[_0x39c6('0xd'),_0x39c6('0xe'),'phone',_0x39c6('0xf'),'fax',_0x39c6('0x10')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x8216fb,_0x229a5f,_0x3aa1b0){var _0x231669=_0x1071e8['models'];var _0x365139=_0x8216fb['get']({'plain':!![]});function _0x58a65f(){return function(_0x1f3e1d){logger[_0x39c6('0x11')](_0x39c6('0x12'),_0x39c6('0x13'),util['inspect'](_0x1f3e1d,{'showHidden':![],'depth':null}));};}var _0x124d43=function(_0x4c83dc){return new BPromise(function(_0xf713c8,_0x1c25a9){_0x231669[_0x39c6('0x14')]['findOne']({'where':{'phone':_0x365139['phone'],'VoiceQueueId':_0x4c83dc['id']}})[_0x39c6('0x15')](function(_0x1b8bc3){if(!_['isNil'](_0x1b8bc3)){throw new Error(_0x39c6('0x16')+_0x365139[_0x39c6('0xb')]+_0x39c6('0x17')+_0x4c83dc['id']);}return _0x231669[_0x39c6('0x14')][_0x39c6('0x18')]({'phone':_0x365139[_0x39c6('0xb')],'ContactId':_0x365139['id'],'ListId':_0x365139['ListId'],'priority':_0x365139['priority']?_0x365139['priority']:0x2,'scheduledat':_0x365139['scheduledat']?_0x365139['scheduledat']:moment()[_0x39c6('0x19')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x365139['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x365139[_0x39c6('0x1a')]?_0x365139[_0x39c6('0x1a')]:undefined,'callbackat':_0x365139[_0x39c6('0x1a')]?moment()[_0x39c6('0x19')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x4c83dc['id']});})['catch'](function(_0x520abf){_0x1c25a9(_0x520abf);});});};var _0x35fc85=function(_0x588c1d){return new BPromise(function(_0x5d4083,_0x58d69a){_0x231669[_0x39c6('0x14')][_0x39c6('0x1b')]({'where':{'phone':_0x365139[_0x39c6('0xb')],'VoiceQueueId':_0x588c1d['id']}})[_0x39c6('0x15')](function(_0x33132f){if(!_[_0x39c6('0x1c')](_0x33132f)){throw new Error(_0x39c6('0x16')+_0x365139[_0x39c6('0xb')]+_0x39c6('0x1d')+_0x588c1d['id']);}return _0x231669[_0x39c6('0x1e')][_0x39c6('0x1b')]({'where':{'calleridnum':_0x365139[_0x39c6('0xb')],'VoiceQueueId':_0x588c1d['id']}});})[_0x39c6('0x15')](function(_0x1ebdf2){if(!_[_0x39c6('0x1c')](_0x1ebdf2)){throw new Error(_0x39c6('0x1f')+_0x365139['phone']+_0x39c6('0x20')+_0x588c1d['id']);}return _0x231669[_0x39c6('0x14')][_0x39c6('0x18')]({'phone':_0x365139['phone'],'ContactId':_0x365139['id'],'ListId':_0x365139[_0x39c6('0x21')],'priority':_0x365139[_0x39c6('0x22')]?_0x365139[_0x39c6('0x22')]:0x2,'scheduledat':_0x365139[_0x39c6('0x23')]?_0x365139['scheduledat']:moment()['format'](_0x39c6('0x24')),'callback':_0x365139[_0x39c6('0x1a')]?!![]:![],'callbackuniqueid':_0x365139['callbackUniqueid']?_0x365139[_0x39c6('0x1a')]:undefined,'callbackat':_0x365139['callbackUniqueid']?moment()['format'](_0x39c6('0x24')):undefined,'VoiceQueueId':_0x588c1d['id']});})[_0x39c6('0x25')](function(_0x2a9b70){_0x58d69a(_0x2a9b70);});});};function _0x766f6c(){return function(_0x267441){logger[_0x39c6('0x11')](_0x39c6('0x12'),_0x39c6('0x13'),util[_0x39c6('0x26')](_0x267441,{'showHidden':![],'depth':null}));};}var _0x176e8e=function(_0xbf91fe){return new BPromise(function(_0x1b930f,_0x33db66){_0x231669[_0x39c6('0x14')][_0x39c6('0x1b')]({'where':{'phone':_0x365139[_0x39c6('0xb')],'CampaignId':_0xbf91fe['id']}})[_0x39c6('0x15')](function(_0x55f4e0){if(!_['isNil'](_0x55f4e0)){throw new Error(_0x39c6('0x16')+_0x365139[_0x39c6('0xb')]+_0x39c6('0x27')+_0xbf91fe['id']);}return _0x231669[_0x39c6('0x14')][_0x39c6('0x18')]({'phone':_0x365139[_0x39c6('0xb')],'ContactId':_0x365139['id'],'ListId':_0x365139[_0x39c6('0x21')],'priority':_0x365139['priority']?_0x365139[_0x39c6('0x22')]:0x2,'scheduledat':_0x365139[_0x39c6('0x23')]?_0x365139['scheduledat']:moment()['format'](_0x39c6('0x24')),'callback':_0x365139[_0x39c6('0x1a')]?!![]:![],'callbackuniqueid':_0x365139[_0x39c6('0x1a')]?_0x365139[_0x39c6('0x1a')]:undefined,'callbackat':_0x365139[_0x39c6('0x1a')]?moment()[_0x39c6('0x19')](_0x39c6('0x24')):undefined,'CampaignId':_0xbf91fe['id']});})[_0x39c6('0x25')](function(_0x3c86ea){_0x33db66(_0x3c86ea);});});};var _0x16d89a=function(_0x33daab){return new BPromise(function(_0x135b0e,_0x1340f4){_0x231669['CmHopper']['findOne']({'where':{'phone':_0x365139[_0x39c6('0xb')],'CampaignId':_0x33daab['id']}})[_0x39c6('0x15')](function(_0x4029aa){if(!_['isNil'](_0x4029aa)){throw new Error(_0x39c6('0x16')+_0x365139[_0x39c6('0xb')]+_0x39c6('0x28')+_0x33daab['id']);}return _0x231669[_0x39c6('0x1e')]['findOne']({'where':{'calleridnum':_0x365139['phone'],'CampaignId':_0x33daab['id']}});})[_0x39c6('0x15')](function(_0x59d4cb){if(!_[_0x39c6('0x1c')](_0x59d4cb)){throw new Error(_0x39c6('0x1f')+_0x365139[_0x39c6('0xb')]+_0x39c6('0x29')+_0x33daab['id']);}return _0x231669['CmHopper'][_0x39c6('0x18')]({'phone':_0x365139[_0x39c6('0xb')],'ContactId':_0x365139['id'],'ListId':_0x365139[_0x39c6('0x21')],'priority':_0x365139[_0x39c6('0x22')]?_0x365139[_0x39c6('0x22')]:0x2,'scheduledat':_0x365139[_0x39c6('0x23')]?_0x365139[_0x39c6('0x23')]:moment()[_0x39c6('0x19')](_0x39c6('0x24')),'callback':_0x365139['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x365139['callbackUniqueid']?_0x365139[_0x39c6('0x1a')]:undefined,'callbackat':_0x365139['callbackUniqueid']?moment()[_0x39c6('0x19')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x33daab['id']});})['catch'](function(_0x3642fc){_0x1340f4(_0x3642fc);});});};if(_0x365139[_0x39c6('0x21')]){_0x231669[_0x39c6('0x2a')]['findAll']({'where':{'type':_0x39c6('0x2b')},'attributes':['id',_0x39c6('0x2c')],'include':[{'model':_0x231669[_0x39c6('0x2d')],'as':_0x39c6('0x2e'),'where':{'id':_0x365139[_0x39c6('0x21')]}}]})[_0x39c6('0x15')](function(_0x4ef4bd){if(_0x4ef4bd){var _0x499693=[];for(var _0x2e7099=0x0,_0xc6706;_0x2e7099<_0x4ef4bd['length'];_0x2e7099+=0x1){_0xc6706=_0x4ef4bd[_0x2e7099][_0x39c6('0x2f')]({'plain':!![]});switch(_0xc6706[_0x39c6('0x2c')]){case'always':_0x35fc85(_0xc6706)[_0x39c6('0x25')](_0x58a65f());break;case _0x39c6('0x30'):_0x124d43(_0xc6706)[_0x39c6('0x25')](_0x58a65f());break;default:_0x231669[_0x39c6('0x14')][_0x39c6('0x18')]({'phone':_0x365139[_0x39c6('0xb')],'ContactId':_0x365139['id'],'ListId':_0x365139['ListId'],'scheduledat':_0x365139[_0x39c6('0x23')]?_0x365139[_0x39c6('0x23')]:moment()[_0x39c6('0x19')](_0x39c6('0x24')),'priority':_0x365139[_0x39c6('0x22')]?_0x365139['priority']:0x2,'callback':_0x365139[_0x39c6('0x1a')]?!![]:![],'callbackuniqueid':_0x365139['callbackUniqueid']?_0x365139[_0x39c6('0x1a')]:undefined,'callbackat':_0x365139[_0x39c6('0x1a')]?moment()[_0x39c6('0x19')](_0x39c6('0x24')):undefined,'VoiceQueueId':_0xc6706['id']})[_0x39c6('0x25')](_0x58a65f());}}}})[_0x39c6('0x15')](function(){return _0x231669[_0x39c6('0x2a')][_0x39c6('0x31')]({'where':{'type':'outbound'},'attributes':['id'],'include':[{'model':_0x231669[_0x39c6('0x2d')],'as':_0x39c6('0x32'),'where':{'id':_0x365139[_0x39c6('0x21')]}}]})[_0x39c6('0x15')](function(_0x2a70a9){if(_0x2a70a9){var _0x25150e=[];for(var _0x369859=0x0,_0x47841f;_0x369859<_0x2a70a9[_0x39c6('0x33')];_0x369859+=0x1){_0x47841f=_0x2a70a9[_0x369859]['get']({'plain':!![]});_0x231669[_0x39c6('0x34')][_0x39c6('0x18')]({'phone':_0x365139[_0x39c6('0xb')],'ContactId':_0x365139['id'],'ListId':_0x365139['ListId'],'VoiceQueueId':_0x47841f['id']})[_0x39c6('0x25')](function(_0x56df9b){logger[_0x39c6('0x11')]('cmContact,\x20%s,\x20%s',_0x39c6('0x13'),_0x56df9b[_0x39c6('0x35')]);});}}});})[_0x39c6('0x15')](function(){return _0x231669['Campaign'][_0x39c6('0x31')]({'attributes':['id',_0x39c6('0x2c')],'include':[{'model':_0x231669[_0x39c6('0x2d')],'as':_0x39c6('0x2e'),'where':{'id':_0x365139[_0x39c6('0x21')]}}]})[_0x39c6('0x15')](function(_0x59136d){if(_0x59136d){var _0x1c775f=[];for(var _0x14e7f4=0x0,_0x12a896;_0x14e7f4<_0x59136d['length'];_0x14e7f4+=0x1){_0x12a896=_0x59136d[_0x14e7f4][_0x39c6('0x2f')]({'plain':!![]});switch(_0x12a896[_0x39c6('0x2c')]){case'always':_0x16d89a(_0x12a896)[_0x39c6('0x25')](_0x766f6c());break;case _0x39c6('0x30'):_0x176e8e(_0x12a896)[_0x39c6('0x25')](_0x766f6c());break;default:_0x231669[_0x39c6('0x14')][_0x39c6('0x18')]({'phone':_0x365139[_0x39c6('0xb')],'ContactId':_0x365139['id'],'ListId':_0x365139['ListId'],'scheduledat':_0x365139[_0x39c6('0x23')]?_0x365139['scheduledat']:moment()[_0x39c6('0x19')](_0x39c6('0x24')),'priority':_0x365139['priority']?_0x365139['priority']:0x2,'callback':_0x365139[_0x39c6('0x1a')]?!![]:![],'callbackuniqueid':_0x365139[_0x39c6('0x1a')]?_0x365139[_0x39c6('0x1a')]:undefined,'callbackat':_0x365139[_0x39c6('0x1a')]?moment()[_0x39c6('0x19')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x12a896['id']})['catch'](_0x766f6c());}}}});})['then'](function(){return _0x231669[_0x39c6('0x36')][_0x39c6('0x31')]({'attributes':['id'],'include':[{'model':_0x231669[_0x39c6('0x2d')],'as':_0x39c6('0x32'),'where':{'id':_0x365139[_0x39c6('0x21')]}}]})['then'](function(_0x21c157){if(_0x21c157){var _0x92d574=[];for(var _0x2ca6f5=0x0,_0x45c196;_0x2ca6f5<_0x21c157[_0x39c6('0x33')];_0x2ca6f5+=0x1){_0x45c196=_0x21c157[_0x2ca6f5][_0x39c6('0x2f')]({'plain':!![]});_0x231669['CmHopperBlack']['create']({'phone':_0x365139[_0x39c6('0xb')],'ContactId':_0x365139['id'],'ListId':_0x365139['ListId'],'CampaignId':_0x45c196['id']})[_0x39c6('0x25')](function(_0x2608e0){logger[_0x39c6('0x11')](_0x39c6('0x37'),_0x39c6('0x13'),_0x2608e0[_0x39c6('0x35')]);});}}});})[_0x39c6('0x15')](function(){_0x3aa1b0();})[_0x39c6('0x25')](function(_0x3950ab){logger[_0x39c6('0x11')]('cmContact,\x20%s,\x20%s',_0x39c6('0x13'),_0x3950ab['message']);_0x3aa1b0(_0x3950ab);});}else{_0x3aa1b0(new Error(_0x39c6('0x38')));}},'afterDestroy':function(_0x479f83,_0x3356f6,_0x36aa95){var _0x3e4954=_0x1071e8[_0x39c6('0x39')];var _0x1fea76=_0x479f83['get']({'plain':!![]});return _0x3e4954[_0x39c6('0x14')][_0x39c6('0x31')]({'raw':!![],'where':{'ListId':_0x1fea76['ListId'],'ContactId':_0x1fea76['id']}})[_0x39c6('0x15')](function(_0x390bcf){if(!_[_0x39c6('0x3a')](_0x390bcf)){var _0xc66b83=[];for(var _0x299756=0x0;_0x299756<_0x390bcf[_0x39c6('0x33')];_0x299756+=0x1){var _0xdc594a=_0x3e4954[_0x39c6('0x14')][_0x39c6('0x3b')]({'where':{'ListId':_0x390bcf[_0x299756][_0x39c6('0x21')],'ContactId':_0x390bcf[_0x299756]['ContactId'],'VoiceQueueId':_0x390bcf[_0x299756][_0x39c6('0x3c')],'CampaignId':_0x390bcf[_0x299756][_0x39c6('0x3d')]}});_0xc66b83[_0x39c6('0x3e')](_0xdc594a);}return BPromise[_0x39c6('0x3f')](_0xc66b83);}})[_0x39c6('0x15')](function(_0x5394f9){logger[_0x39c6('0x40')](_0x39c6('0x41'),util[_0x39c6('0x26')](_0x5394f9,{'showHidden':![],'depth':null}));_0x36aa95();})[_0x39c6('0x25')](function(_0x1300a){logger[_0x39c6('0x11')]('[CmContact][afterDestroy][Error]',util['inspect'](_0x1300a,{'showHidden':![],'depth':null}));_0x36aa95(_0x1300a);});}}});};