Built motion from commit (unavailable).|2.5.18
[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 _0xf40b=['models','get','cmContact','afterCreate','inspect','CmHopper','findOne','then','isNil','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create','ListId','priority','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','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','error','cmContact,\x20afterCreate\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','findAll','outbound','CmList','length','dialCheckDuplicateType','onlyIfOpen','BlackLists','CmHopperBlack','cmContact,\x20%s,\x20%s','message','Campaign','Lists','destroy','ContactId','CampaignId','push','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./cmContact.attributes','define','CmContact','cm_contacts','phone','fti_cm_contacts','firstName','lastName','mobile','fax','email'];(function(_0x11f1db,_0xbd2de5){var _0xea2968=function(_0x113fe2){while(--_0x113fe2){_0x11f1db['push'](_0x11f1db['shift']());}};_0xea2968(++_0xbd2de5);}(_0xf40b,0xb0));var _0xbf40=function(_0x3bdd36,_0x139fe0){_0x3bdd36=_0x3bdd36-0x0;var _0x4c3089=_0xf40b[_0x3bdd36];return _0x4c3089;};'use strict';var _=require('lodash');var util=require(_0xbf40('0x0'));var logger=require(_0xbf40('0x1'))(_0xbf40('0x2'));var moment=require(_0xbf40('0x3'));var BPromise=require('bluebird');var rp=require(_0xbf40('0x4'));var fs=require('fs');var path=require(_0xbf40('0x5'));var rimraf=require(_0xbf40('0x6'));var config=require(_0xbf40('0x7'));var attributes=require(_0xbf40('0x8'));module['exports']=function(_0x2e74b5,_0xbe1c47){return _0x2e74b5[_0xbf40('0x9')](_0xbf40('0xa'),attributes,{'tableName':_0xbf40('0xb'),'paranoid':!![],'indexes':[{'name':'phone','fields':[_0xbf40('0xc')]},{'name':_0xbf40('0xd'),'fields':[_0xbf40('0xe'),_0xbf40('0xf'),_0xbf40('0xc'),_0xbf40('0x10'),_0xbf40('0x11'),_0xbf40('0x12')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x57d942,_0x38d607,_0x40ee4a){var _0x3118d9=_0x2e74b5[_0xbf40('0x13')];var _0x1eef4c=_0x57d942[_0xbf40('0x14')]({'plain':!![]});function _0x46e5a5(){return function(_0x52c58c){logger['error'](_0xbf40('0x15'),_0xbf40('0x16'),util[_0xbf40('0x17')](_0x52c58c,{'showHidden':![],'depth':null}));};}var _0x106e68=function(_0x562346){return new BPromise(function(_0xb61909,_0x3c9329){_0x3118d9[_0xbf40('0x18')][_0xbf40('0x19')]({'where':{'phone':_0x1eef4c[_0xbf40('0xc')],'VoiceQueueId':_0x562346['id']}})[_0xbf40('0x1a')](function(_0x128f7d){if(!_[_0xbf40('0x1b')](_0x128f7d)){throw new Error('cmContact,\x20afterCreate\x20'+_0x1eef4c[_0xbf40('0xc')]+_0xbf40('0x1c')+_0x562346['id']);}return _0x3118d9[_0xbf40('0x18')][_0xbf40('0x1d')]({'phone':_0x1eef4c[_0xbf40('0xc')],'ContactId':_0x1eef4c['id'],'ListId':_0x1eef4c[_0xbf40('0x1e')],'priority':_0x1eef4c[_0xbf40('0x1f')]?_0x1eef4c[_0xbf40('0x1f')]:0x2,'scheduledat':_0x1eef4c['scheduledat']?_0x1eef4c[_0xbf40('0x20')]:moment()[_0xbf40('0x21')](_0xbf40('0x22')),'callback':_0x1eef4c[_0xbf40('0x23')]?!![]:![],'callbackuniqueid':_0x1eef4c['callbackUniqueid']?_0x1eef4c[_0xbf40('0x23')]:undefined,'callbackat':_0x1eef4c[_0xbf40('0x23')]?moment()[_0xbf40('0x21')](_0xbf40('0x22')):undefined,'VoiceQueueId':_0x562346['id']});})[_0xbf40('0x24')](function(_0x23fc5b){_0x3c9329(_0x23fc5b);});});};var _0x275ff1=function(_0x36aef3){return new BPromise(function(_0x558e1f,_0x3e22a1){_0x3118d9[_0xbf40('0x18')][_0xbf40('0x19')]({'where':{'phone':_0x1eef4c[_0xbf40('0xc')],'VoiceQueueId':_0x36aef3['id']}})[_0xbf40('0x1a')](function(_0x2ead11){if(!_[_0xbf40('0x1b')](_0x2ead11)){throw new Error('cmContact,\x20afterCreate\x20'+_0x1eef4c[_0xbf40('0xc')]+_0xbf40('0x25')+_0x36aef3['id']);}return _0x3118d9[_0xbf40('0x26')][_0xbf40('0x19')]({'where':{'calleridnum':_0x1eef4c[_0xbf40('0xc')],'VoiceQueueId':_0x36aef3['id']}});})[_0xbf40('0x1a')](function(_0x2464d9){if(!_[_0xbf40('0x1b')](_0x2464d9)){throw new Error(_0xbf40('0x27')+_0x1eef4c[_0xbf40('0xc')]+_0xbf40('0x28')+_0x36aef3['id']);}return _0x3118d9[_0xbf40('0x18')][_0xbf40('0x1d')]({'phone':_0x1eef4c[_0xbf40('0xc')],'ContactId':_0x1eef4c['id'],'ListId':_0x1eef4c['ListId'],'priority':_0x1eef4c[_0xbf40('0x1f')]?_0x1eef4c['priority']:0x2,'scheduledat':_0x1eef4c[_0xbf40('0x20')]?_0x1eef4c[_0xbf40('0x20')]:moment()[_0xbf40('0x21')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x1eef4c[_0xbf40('0x23')]?!![]:![],'callbackuniqueid':_0x1eef4c[_0xbf40('0x23')]?_0x1eef4c[_0xbf40('0x23')]:undefined,'callbackat':_0x1eef4c['callbackUniqueid']?moment()[_0xbf40('0x21')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x36aef3['id']});})[_0xbf40('0x24')](function(_0x41cbe7){_0x3e22a1(_0x41cbe7);});});};function _0x2bf542(){return function(_0x53f872){logger[_0xbf40('0x29')](_0xbf40('0x15'),_0xbf40('0x16'),util[_0xbf40('0x17')](_0x53f872,{'showHidden':![],'depth':null}));};}var _0x1ccdb9=function(_0x38e39f){return new BPromise(function(_0x6035a8,_0x387f15){_0x3118d9[_0xbf40('0x18')]['findOne']({'where':{'phone':_0x1eef4c[_0xbf40('0xc')],'CampaignId':_0x38e39f['id']}})[_0xbf40('0x1a')](function(_0x237bff){if(!_[_0xbf40('0x1b')](_0x237bff)){throw new Error('cmContact,\x20afterCreate\x20'+_0x1eef4c[_0xbf40('0xc')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x38e39f['id']);}return _0x3118d9[_0xbf40('0x18')][_0xbf40('0x1d')]({'phone':_0x1eef4c[_0xbf40('0xc')],'ContactId':_0x1eef4c['id'],'ListId':_0x1eef4c['ListId'],'priority':_0x1eef4c[_0xbf40('0x1f')]?_0x1eef4c[_0xbf40('0x1f')]:0x2,'scheduledat':_0x1eef4c[_0xbf40('0x20')]?_0x1eef4c[_0xbf40('0x20')]:moment()[_0xbf40('0x21')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x1eef4c[_0xbf40('0x23')]?!![]:![],'callbackuniqueid':_0x1eef4c[_0xbf40('0x23')]?_0x1eef4c[_0xbf40('0x23')]:undefined,'callbackat':_0x1eef4c['callbackUniqueid']?moment()[_0xbf40('0x21')](_0xbf40('0x22')):undefined,'CampaignId':_0x38e39f['id']});})[_0xbf40('0x24')](function(_0x4dbbbd){_0x387f15(_0x4dbbbd);});});};var _0x408ec9=function(_0x3b8707){return new BPromise(function(_0x71c173,_0x3b4231){_0x3118d9[_0xbf40('0x18')][_0xbf40('0x19')]({'where':{'phone':_0x1eef4c[_0xbf40('0xc')],'CampaignId':_0x3b8707['id']}})[_0xbf40('0x1a')](function(_0x21ec59){if(!_[_0xbf40('0x1b')](_0x21ec59)){throw new Error(_0xbf40('0x2a')+_0x1eef4c[_0xbf40('0xc')]+_0xbf40('0x2b')+_0x3b8707['id']);}return _0x3118d9[_0xbf40('0x26')]['findOne']({'where':{'calleridnum':_0x1eef4c[_0xbf40('0xc')],'CampaignId':_0x3b8707['id']}});})['then'](function(_0x17aa55){if(!_[_0xbf40('0x1b')](_0x17aa55)){throw new Error(_0xbf40('0x27')+_0x1eef4c[_0xbf40('0xc')]+_0xbf40('0x2c')+_0x3b8707['id']);}return _0x3118d9['CmHopper'][_0xbf40('0x1d')]({'phone':_0x1eef4c[_0xbf40('0xc')],'ContactId':_0x1eef4c['id'],'ListId':_0x1eef4c['ListId'],'priority':_0x1eef4c[_0xbf40('0x1f')]?_0x1eef4c['priority']:0x2,'scheduledat':_0x1eef4c[_0xbf40('0x20')]?_0x1eef4c[_0xbf40('0x20')]:moment()[_0xbf40('0x21')](_0xbf40('0x22')),'callback':_0x1eef4c[_0xbf40('0x23')]?!![]:![],'callbackuniqueid':_0x1eef4c[_0xbf40('0x23')]?_0x1eef4c[_0xbf40('0x23')]:undefined,'callbackat':_0x1eef4c['callbackUniqueid']?moment()[_0xbf40('0x21')](_0xbf40('0x22')):undefined,'CampaignId':_0x3b8707['id']});})[_0xbf40('0x24')](function(_0xaf4311){_0x3b4231(_0xaf4311);});});};if(_0x1eef4c[_0xbf40('0x1e')]){_0x3118d9[_0xbf40('0x2d')][_0xbf40('0x2e')]({'where':{'type':_0xbf40('0x2f')},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0x3118d9[_0xbf40('0x30')],'as':'Lists','where':{'id':_0x1eef4c[_0xbf40('0x1e')]}}]})[_0xbf40('0x1a')](function(_0x350e14){if(_0x350e14){var _0xe84187=[];for(var _0x56e3a4=0x0,_0x5bc13a;_0x56e3a4<_0x350e14[_0xbf40('0x31')];_0x56e3a4+=0x1){_0x5bc13a=_0x350e14[_0x56e3a4][_0xbf40('0x14')]({'plain':!![]});switch(_0x5bc13a[_0xbf40('0x32')]){case'always':_0x275ff1(_0x5bc13a)['catch'](_0x46e5a5());break;case _0xbf40('0x33'):_0x106e68(_0x5bc13a)['catch'](_0x46e5a5());break;default:_0x3118d9[_0xbf40('0x18')]['create']({'phone':_0x1eef4c[_0xbf40('0xc')],'ContactId':_0x1eef4c['id'],'ListId':_0x1eef4c[_0xbf40('0x1e')],'scheduledat':_0x1eef4c['scheduledat']?_0x1eef4c[_0xbf40('0x20')]:moment()[_0xbf40('0x21')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x1eef4c['priority']?_0x1eef4c[_0xbf40('0x1f')]:0x2,'callback':_0x1eef4c[_0xbf40('0x23')]?!![]:![],'callbackuniqueid':_0x1eef4c['callbackUniqueid']?_0x1eef4c[_0xbf40('0x23')]:undefined,'callbackat':_0x1eef4c[_0xbf40('0x23')]?moment()[_0xbf40('0x21')](_0xbf40('0x22')):undefined,'VoiceQueueId':_0x5bc13a['id']})[_0xbf40('0x24')](_0x46e5a5());}}}})['then'](function(){return _0x3118d9[_0xbf40('0x2d')][_0xbf40('0x2e')]({'where':{'type':_0xbf40('0x2f')},'attributes':['id'],'include':[{'model':_0x3118d9[_0xbf40('0x30')],'as':_0xbf40('0x34'),'where':{'id':_0x1eef4c[_0xbf40('0x1e')]}}]})[_0xbf40('0x1a')](function(_0x50af71){if(_0x50af71){var _0x49abb1=[];for(var _0xcf258e=0x0,_0x35bc7e;_0xcf258e<_0x50af71['length'];_0xcf258e+=0x1){_0x35bc7e=_0x50af71[_0xcf258e][_0xbf40('0x14')]({'plain':!![]});_0x3118d9[_0xbf40('0x35')][_0xbf40('0x1d')]({'phone':_0x1eef4c['phone'],'ContactId':_0x1eef4c['id'],'ListId':_0x1eef4c[_0xbf40('0x1e')],'VoiceQueueId':_0x35bc7e['id']})[_0xbf40('0x24')](function(_0x468a44){logger['error'](_0xbf40('0x36'),'afterCreate',_0x468a44[_0xbf40('0x37')]);});}}});})['then'](function(){return _0x3118d9[_0xbf40('0x38')]['findAll']({'attributes':['id',_0xbf40('0x32')],'include':[{'model':_0x3118d9[_0xbf40('0x30')],'as':_0xbf40('0x39'),'where':{'id':_0x1eef4c[_0xbf40('0x1e')]}}]})[_0xbf40('0x1a')](function(_0x35c15b){if(_0x35c15b){var _0x360c82=[];for(var _0x3cda5d=0x0,_0x2bd3df;_0x3cda5d<_0x35c15b['length'];_0x3cda5d+=0x1){_0x2bd3df=_0x35c15b[_0x3cda5d][_0xbf40('0x14')]({'plain':!![]});switch(_0x2bd3df['dialCheckDuplicateType']){case'always':_0x408ec9(_0x2bd3df)[_0xbf40('0x24')](_0x2bf542());break;case'onlyIfOpen':_0x1ccdb9(_0x2bd3df)[_0xbf40('0x24')](_0x2bf542());break;default:_0x3118d9[_0xbf40('0x18')][_0xbf40('0x1d')]({'phone':_0x1eef4c[_0xbf40('0xc')],'ContactId':_0x1eef4c['id'],'ListId':_0x1eef4c['ListId'],'scheduledat':_0x1eef4c['scheduledat']?_0x1eef4c[_0xbf40('0x20')]:moment()[_0xbf40('0x21')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x1eef4c[_0xbf40('0x1f')]?_0x1eef4c['priority']:0x2,'callback':_0x1eef4c[_0xbf40('0x23')]?!![]:![],'callbackuniqueid':_0x1eef4c['callbackUniqueid']?_0x1eef4c['callbackUniqueid']:undefined,'callbackat':_0x1eef4c['callbackUniqueid']?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x2bd3df['id']})[_0xbf40('0x24')](_0x2bf542());}}}});})[_0xbf40('0x1a')](function(){return _0x3118d9[_0xbf40('0x38')][_0xbf40('0x2e')]({'attributes':['id'],'include':[{'model':_0x3118d9[_0xbf40('0x30')],'as':'BlackLists','where':{'id':_0x1eef4c[_0xbf40('0x1e')]}}]})[_0xbf40('0x1a')](function(_0x2adfae){if(_0x2adfae){var _0x38ba67=[];for(var _0x2bf5ce=0x0,_0x30eace;_0x2bf5ce<_0x2adfae[_0xbf40('0x31')];_0x2bf5ce+=0x1){_0x30eace=_0x2adfae[_0x2bf5ce][_0xbf40('0x14')]({'plain':!![]});_0x3118d9[_0xbf40('0x35')][_0xbf40('0x1d')]({'phone':_0x1eef4c['phone'],'ContactId':_0x1eef4c['id'],'ListId':_0x1eef4c['ListId'],'CampaignId':_0x30eace['id']})[_0xbf40('0x24')](function(_0x2dc32f){logger[_0xbf40('0x29')](_0xbf40('0x36'),_0xbf40('0x16'),_0x2dc32f['message']);});}}});})[_0xbf40('0x1a')](function(){_0x40ee4a();})[_0xbf40('0x24')](function(_0x22e71c){logger[_0xbf40('0x29')](_0xbf40('0x36'),_0xbf40('0x16'),_0x22e71c[_0xbf40('0x37')]);_0x40ee4a(_0x22e71c);});}else{_0x40ee4a(new Error('List\x20not\x20found'));}},'afterDestroy':function(_0x4ef568,_0x2f9037,_0x1074a8){var _0x4b9f5d=_0x2e74b5[_0xbf40('0x13')];var _0x264c02=_0x4ef568[_0xbf40('0x14')]({'plain':!![]});return _0x4b9f5d[_0xbf40('0x18')][_0xbf40('0x2e')]({'raw':!![],'where':{'ListId':_0x264c02[_0xbf40('0x1e')],'ContactId':_0x264c02['id']}})[_0xbf40('0x1a')](function(_0x57a514){if(!_['isEmpty'](_0x57a514)){var _0x44ea89=[];for(var _0x377456=0x0;_0x377456<_0x57a514['length'];_0x377456+=0x1){var _0x114d91=_0x4b9f5d[_0xbf40('0x18')][_0xbf40('0x3a')]({'where':{'ListId':_0x57a514[_0x377456][_0xbf40('0x1e')],'ContactId':_0x57a514[_0x377456][_0xbf40('0x3b')],'VoiceQueueId':_0x57a514[_0x377456]['VoiceQueueId'],'CampaignId':_0x57a514[_0x377456][_0xbf40('0x3c')]}});_0x44ea89[_0xbf40('0x3d')](_0x114d91);}return BPromise['all'](_0x44ea89);}})[_0xbf40('0x1a')](function(_0x348756){logger[_0xbf40('0x3e')](_0xbf40('0x3f'),util[_0xbf40('0x17')](_0x348756,{'showHidden':![],'depth':null}));_0x1074a8();})[_0xbf40('0x24')](function(_0x2622a1){logger[_0xbf40('0x29')](_0xbf40('0x40'),util[_0xbf40('0x17')](_0x2622a1,{'showHidden':![],'depth':null}));_0x1074a8(_0x2622a1);});}}});};