Built motion from commit (unavailable).|2.5.31
[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 _0x761c=['Campaign','Lists','List\x20not\x20found','isEmpty','ContactId','CampaignId','push','all','info','[CmContact][afterDestroy][Error]','lodash','../../config/logger','api','bluebird','request-promise','path','../../config/environment','exports','define','CmContact','cm_contacts','phone','fti_cm_contacts','firstName','lastName','mobile','fax','email','error','afterCreate','inspect','CmHopper','then','isNil','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create','priority','scheduledat','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','catch','findOne','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopperFinal','cmContact,\x20afterCreate,\x20','cmContact','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','format','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','VoiceQueue','findAll','outbound','CmList','length','get','dialCheckDuplicateType','always','onlyIfOpen','ListId','BlackLists','CmHopperBlack','cmContact,\x20%s,\x20%s','message'];(function(_0x119710,_0x2704c9){var _0x331284=function(_0xbc59ec){while(--_0xbc59ec){_0x119710['push'](_0x119710['shift']());}};_0x331284(++_0x2704c9);}(_0x761c,0x18a));var _0xc761=function(_0xcfdcd3,_0x1b431b){_0xcfdcd3=_0xcfdcd3-0x0;var _0x2a009d=_0x761c[_0xcfdcd3];return _0x2a009d;};'use strict';var _=require(_0xc761('0x0'));var util=require('util');var logger=require(_0xc761('0x1'))(_0xc761('0x2'));var moment=require('moment');var BPromise=require(_0xc761('0x3'));var rp=require(_0xc761('0x4'));var fs=require('fs');var path=require(_0xc761('0x5'));var rimraf=require('rimraf');var config=require(_0xc761('0x6'));var attributes=require('./cmContact.attributes');module[_0xc761('0x7')]=function(_0x468f51,_0x23ba0b){return _0x468f51[_0xc761('0x8')](_0xc761('0x9'),attributes,{'tableName':_0xc761('0xa'),'paranoid':!![],'indexes':[{'name':_0xc761('0xb'),'fields':['phone']},{'name':_0xc761('0xc'),'fields':[_0xc761('0xd'),_0xc761('0xe'),_0xc761('0xb'),_0xc761('0xf'),_0xc761('0x10'),_0xc761('0x11')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x4d6b59,_0x39fbd2,_0x4405a2){var _0x51fe97=_0x468f51['models'];var _0x46571a=_0x4d6b59['get']({'plain':!![]});function _0x1444ff(){return function(_0x54dc3e){logger[_0xc761('0x12')]('cmContact',_0xc761('0x13'),util[_0xc761('0x14')](_0x54dc3e,{'showHidden':![],'depth':null}));};}var _0x186315=function(_0x31cc11){return new BPromise(function(_0x32f8a0,_0x20061d){_0x51fe97[_0xc761('0x15')]['findOne']({'where':{'phone':_0x46571a['phone'],'VoiceQueueId':_0x31cc11['id']}})[_0xc761('0x16')](function(_0x1d7fde){if(!_[_0xc761('0x17')](_0x1d7fde)){throw new Error('cmContact,\x20afterCreate\x20'+_0x46571a[_0xc761('0xb')]+_0xc761('0x18')+_0x31cc11['id']);}return _0x51fe97[_0xc761('0x15')][_0xc761('0x19')]({'phone':_0x46571a[_0xc761('0xb')],'ContactId':_0x46571a['id'],'ListId':_0x46571a['ListId'],'priority':_0x46571a['priority']?_0x46571a[_0xc761('0x1a')]:0x2,'scheduledat':_0x46571a[_0xc761('0x1b')]?_0x46571a['scheduledat']:moment()['format'](_0xc761('0x1c')),'callback':_0x46571a[_0xc761('0x1d')]?!![]:![],'callbackuniqueid':_0x46571a[_0xc761('0x1d')]?_0x46571a[_0xc761('0x1d')]:undefined,'callbackat':_0x46571a[_0xc761('0x1d')]?moment()['format'](_0xc761('0x1c')):undefined,'VoiceQueueId':_0x31cc11['id']});})[_0xc761('0x1e')](function(_0x278b51){_0x20061d(_0x278b51);});});};var _0x31b014=function(_0xb27b65){return new BPromise(function(_0x51eeba,_0x3de8fe){_0x51fe97[_0xc761('0x15')][_0xc761('0x1f')]({'where':{'phone':_0x46571a[_0xc761('0xb')],'VoiceQueueId':_0xb27b65['id']}})['then'](function(_0x5a4b77){if(!_[_0xc761('0x17')](_0x5a4b77)){throw new Error(_0xc761('0x20')+_0x46571a[_0xc761('0xb')]+_0xc761('0x21')+_0xb27b65['id']);}return _0x51fe97[_0xc761('0x22')][_0xc761('0x1f')]({'where':{'calleridnum':_0x46571a[_0xc761('0xb')],'VoiceQueueId':_0xb27b65['id']}});})[_0xc761('0x16')](function(_0x4a7690){if(!_[_0xc761('0x17')](_0x4a7690)){throw new Error(_0xc761('0x23')+_0x46571a[_0xc761('0xb')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20'+_0xb27b65['id']);}return _0x51fe97['CmHopper'][_0xc761('0x19')]({'phone':_0x46571a[_0xc761('0xb')],'ContactId':_0x46571a['id'],'ListId':_0x46571a['ListId'],'priority':_0x46571a[_0xc761('0x1a')]?_0x46571a['priority']:0x2,'scheduledat':_0x46571a[_0xc761('0x1b')]?_0x46571a['scheduledat']:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x46571a[_0xc761('0x1d')]?!![]:![],'callbackuniqueid':_0x46571a[_0xc761('0x1d')]?_0x46571a[_0xc761('0x1d')]:undefined,'callbackat':_0x46571a[_0xc761('0x1d')]?moment()['format'](_0xc761('0x1c')):undefined,'VoiceQueueId':_0xb27b65['id']});})[_0xc761('0x1e')](function(_0x3f37fb){_0x3de8fe(_0x3f37fb);});});};function _0x37da20(){return function(_0x33148a){logger['error'](_0xc761('0x24'),_0xc761('0x13'),util[_0xc761('0x14')](_0x33148a,{'showHidden':![],'depth':null}));};}var _0x46741d=function(_0x41e5a0){return new BPromise(function(_0x3b047b,_0x111dca){_0x51fe97[_0xc761('0x15')][_0xc761('0x1f')]({'where':{'phone':_0x46571a[_0xc761('0xb')],'CampaignId':_0x41e5a0['id']}})['then'](function(_0x6d53fa){if(!_[_0xc761('0x17')](_0x6d53fa)){throw new Error('cmContact,\x20afterCreate\x20'+_0x46571a['phone']+_0xc761('0x25')+_0x41e5a0['id']);}return _0x51fe97[_0xc761('0x15')][_0xc761('0x19')]({'phone':_0x46571a['phone'],'ContactId':_0x46571a['id'],'ListId':_0x46571a['ListId'],'priority':_0x46571a['priority']?_0x46571a[_0xc761('0x1a')]:0x2,'scheduledat':_0x46571a[_0xc761('0x1b')]?_0x46571a[_0xc761('0x1b')]:moment()[_0xc761('0x26')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x46571a[_0xc761('0x1d')]?!![]:![],'callbackuniqueid':_0x46571a['callbackUniqueid']?_0x46571a['callbackUniqueid']:undefined,'callbackat':_0x46571a[_0xc761('0x1d')]?moment()[_0xc761('0x26')](_0xc761('0x1c')):undefined,'CampaignId':_0x41e5a0['id']});})['catch'](function(_0x1362dd){_0x111dca(_0x1362dd);});});};var _0x23156b=function(_0x4733b5){return new BPromise(function(_0x504b11,_0x164be4){_0x51fe97[_0xc761('0x15')][_0xc761('0x1f')]({'where':{'phone':_0x46571a['phone'],'CampaignId':_0x4733b5['id']}})[_0xc761('0x16')](function(_0x31fbc5){if(!_['isNil'](_0x31fbc5)){throw new Error(_0xc761('0x20')+_0x46571a['phone']+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x4733b5['id']);}return _0x51fe97[_0xc761('0x22')][_0xc761('0x1f')]({'where':{'calleridnum':_0x46571a[_0xc761('0xb')],'CampaignId':_0x4733b5['id']}});})[_0xc761('0x16')](function(_0x589155){if(!_['isNil'](_0x589155)){throw new Error(_0xc761('0x23')+_0x46571a[_0xc761('0xb')]+_0xc761('0x27')+_0x4733b5['id']);}return _0x51fe97[_0xc761('0x15')][_0xc761('0x19')]({'phone':_0x46571a[_0xc761('0xb')],'ContactId':_0x46571a['id'],'ListId':_0x46571a['ListId'],'priority':_0x46571a[_0xc761('0x1a')]?_0x46571a[_0xc761('0x1a')]:0x2,'scheduledat':_0x46571a[_0xc761('0x1b')]?_0x46571a[_0xc761('0x1b')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x46571a[_0xc761('0x1d')]?!![]:![],'callbackuniqueid':_0x46571a[_0xc761('0x1d')]?_0x46571a['callbackUniqueid']:undefined,'callbackat':_0x46571a[_0xc761('0x1d')]?moment()[_0xc761('0x26')](_0xc761('0x1c')):undefined,'CampaignId':_0x4733b5['id']});})[_0xc761('0x1e')](function(_0x4395cb){_0x164be4(_0x4395cb);});});};if(_0x46571a['ListId']){_0x51fe97[_0xc761('0x28')][_0xc761('0x29')]({'where':{'type':_0xc761('0x2a')},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0x51fe97[_0xc761('0x2b')],'as':'Lists','where':{'id':_0x46571a['ListId']}}]})['then'](function(_0x3af6aa){if(_0x3af6aa){var _0x405687=[];for(var _0x529e7b=0x0,_0x22d58d;_0x529e7b<_0x3af6aa[_0xc761('0x2c')];_0x529e7b+=0x1){_0x22d58d=_0x3af6aa[_0x529e7b][_0xc761('0x2d')]({'plain':!![]});switch(_0x22d58d[_0xc761('0x2e')]){case _0xc761('0x2f'):_0x31b014(_0x22d58d)['catch'](_0x1444ff());break;case _0xc761('0x30'):_0x186315(_0x22d58d)[_0xc761('0x1e')](_0x1444ff());break;default:_0x51fe97[_0xc761('0x15')][_0xc761('0x19')]({'phone':_0x46571a[_0xc761('0xb')],'ContactId':_0x46571a['id'],'ListId':_0x46571a[_0xc761('0x31')],'scheduledat':_0x46571a[_0xc761('0x1b')]?_0x46571a[_0xc761('0x1b')]:moment()[_0xc761('0x26')](_0xc761('0x1c')),'priority':_0x46571a[_0xc761('0x1a')]?_0x46571a[_0xc761('0x1a')]:0x2,'callback':_0x46571a['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x46571a[_0xc761('0x1d')]?_0x46571a['callbackUniqueid']:undefined,'callbackat':_0x46571a['callbackUniqueid']?moment()[_0xc761('0x26')](_0xc761('0x1c')):undefined,'VoiceQueueId':_0x22d58d['id']})[_0xc761('0x1e')](_0x1444ff());}}}})['then'](function(){return _0x51fe97['VoiceQueue'][_0xc761('0x29')]({'where':{'type':_0xc761('0x2a')},'attributes':['id'],'include':[{'model':_0x51fe97['CmList'],'as':_0xc761('0x32'),'where':{'id':_0x46571a['ListId']}}]})['then'](function(_0x5a4b02){if(_0x5a4b02){var _0x5055d2=[];for(var _0x432a2f=0x0,_0x4217a9;_0x432a2f<_0x5a4b02[_0xc761('0x2c')];_0x432a2f+=0x1){_0x4217a9=_0x5a4b02[_0x432a2f][_0xc761('0x2d')]({'plain':!![]});_0x51fe97[_0xc761('0x33')][_0xc761('0x19')]({'phone':_0x46571a[_0xc761('0xb')],'ContactId':_0x46571a['id'],'ListId':_0x46571a['ListId'],'VoiceQueueId':_0x4217a9['id']})['catch'](function(_0x5aafc2){logger['error'](_0xc761('0x34'),_0xc761('0x13'),_0x5aafc2[_0xc761('0x35')]);});}}});})[_0xc761('0x16')](function(){return _0x51fe97[_0xc761('0x36')]['findAll']({'attributes':['id',_0xc761('0x2e')],'include':[{'model':_0x51fe97[_0xc761('0x2b')],'as':_0xc761('0x37'),'where':{'id':_0x46571a[_0xc761('0x31')]}}]})[_0xc761('0x16')](function(_0x32e280){if(_0x32e280){var _0x23cb31=[];for(var _0x5bf3de=0x0,_0x3776fb;_0x5bf3de<_0x32e280[_0xc761('0x2c')];_0x5bf3de+=0x1){_0x3776fb=_0x32e280[_0x5bf3de]['get']({'plain':!![]});switch(_0x3776fb['dialCheckDuplicateType']){case _0xc761('0x2f'):_0x23156b(_0x3776fb)[_0xc761('0x1e')](_0x37da20());break;case _0xc761('0x30'):_0x46741d(_0x3776fb)['catch'](_0x37da20());break;default:_0x51fe97[_0xc761('0x15')][_0xc761('0x19')]({'phone':_0x46571a['phone'],'ContactId':_0x46571a['id'],'ListId':_0x46571a[_0xc761('0x31')],'scheduledat':_0x46571a[_0xc761('0x1b')]?_0x46571a['scheduledat']:moment()['format'](_0xc761('0x1c')),'priority':_0x46571a['priority']?_0x46571a['priority']:0x2,'callback':_0x46571a[_0xc761('0x1d')]?!![]:![],'callbackuniqueid':_0x46571a[_0xc761('0x1d')]?_0x46571a[_0xc761('0x1d')]:undefined,'callbackat':_0x46571a[_0xc761('0x1d')]?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x3776fb['id']})[_0xc761('0x1e')](_0x37da20());}}}});})[_0xc761('0x16')](function(){return _0x51fe97[_0xc761('0x36')][_0xc761('0x29')]({'attributes':['id'],'include':[{'model':_0x51fe97[_0xc761('0x2b')],'as':_0xc761('0x32'),'where':{'id':_0x46571a[_0xc761('0x31')]}}]})['then'](function(_0x3db4cc){if(_0x3db4cc){var _0x5cd0b6=[];for(var _0x288503=0x0,_0x54df3e;_0x288503<_0x3db4cc[_0xc761('0x2c')];_0x288503+=0x1){_0x54df3e=_0x3db4cc[_0x288503][_0xc761('0x2d')]({'plain':!![]});_0x51fe97[_0xc761('0x33')][_0xc761('0x19')]({'phone':_0x46571a[_0xc761('0xb')],'ContactId':_0x46571a['id'],'ListId':_0x46571a[_0xc761('0x31')],'CampaignId':_0x54df3e['id']})['catch'](function(_0xbf1dad){logger[_0xc761('0x12')](_0xc761('0x34'),_0xc761('0x13'),_0xbf1dad[_0xc761('0x35')]);});}}});})[_0xc761('0x16')](function(){_0x4405a2();})[_0xc761('0x1e')](function(_0xaac3f2){logger[_0xc761('0x12')](_0xc761('0x34'),_0xc761('0x13'),_0xaac3f2[_0xc761('0x35')]);_0x4405a2(_0xaac3f2);});}else{_0x4405a2(new Error(_0xc761('0x38')));}},'afterDestroy':function(_0x27c223,_0x133528,_0x57ed98){var _0x249768=_0x468f51['models'];var _0x33daef=_0x27c223[_0xc761('0x2d')]({'plain':!![]});return _0x249768[_0xc761('0x15')]['findAll']({'raw':!![],'where':{'ListId':_0x33daef['ListId'],'ContactId':_0x33daef['id']}})['then'](function(_0x1f2687){if(!_[_0xc761('0x39')](_0x1f2687)){var _0x4c2cbd=[];for(var _0x1be0f3=0x0;_0x1be0f3<_0x1f2687['length'];_0x1be0f3+=0x1){var _0x49fc09=_0x249768['CmHopper']['destroy']({'where':{'ListId':_0x1f2687[_0x1be0f3]['ListId'],'ContactId':_0x1f2687[_0x1be0f3][_0xc761('0x3a')],'VoiceQueueId':_0x1f2687[_0x1be0f3]['VoiceQueueId'],'CampaignId':_0x1f2687[_0x1be0f3][_0xc761('0x3b')]}});_0x4c2cbd[_0xc761('0x3c')](_0x49fc09);}return BPromise[_0xc761('0x3d')](_0x4c2cbd);}})[_0xc761('0x16')](function(_0x48d156){logger[_0xc761('0x3e')]('[CmContact][afterDestroy][Succesfull]',util[_0xc761('0x14')](_0x48d156,{'showHidden':![],'depth':null}));_0x57ed98();})[_0xc761('0x1e')](function(_0x5e1193){logger[_0xc761('0x12')](_0xc761('0x3f'),util[_0xc761('0x14')](_0x5e1193,{'showHidden':![],'depth':null}));_0x57ed98(_0x5e1193);});}}});};