Built motion from commit (unavailable).|2.5.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 _0x2eba=['CmList','length','dialCheckDuplicateType','always','onlyIfOpen','BlackLists','CmHopperBlack','cmContact,\x20%s,\x20%s','Campaign','Lists','message','List\x20not\x20found','models','ContactId','VoiceQueueId','CampaignId','push','all','[CmContact][afterDestroy][Succesfull]','util','../../config/logger','api','moment','path','../../config/environment','./cmContact.attributes','exports','cm_contacts','phone','fti_cm_contacts','firstName','mobile','fax','email','get','error','cmContact','inspect','CmHopper','findOne','then','isNil','cmContact,\x20afterCreate\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','afterCreate','\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','findAll','outbound'];(function(_0x5ea58e,_0x288b5c){var _0x107510=function(_0x4af763){while(--_0x4af763){_0x5ea58e['push'](_0x5ea58e['shift']());}};_0x107510(++_0x288b5c);}(_0x2eba,0xc7));var _0xa2eb=function(_0x56168d,_0x5208e9){_0x56168d=_0x56168d-0x0;var _0x30fcc9=_0x2eba[_0x56168d];return _0x30fcc9;};'use strict';var _=require('lodash');var util=require(_0xa2eb('0x0'));var logger=require(_0xa2eb('0x1'))(_0xa2eb('0x2'));var moment=require(_0xa2eb('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xa2eb('0x4'));var rimraf=require('rimraf');var config=require(_0xa2eb('0x5'));var attributes=require(_0xa2eb('0x6'));module[_0xa2eb('0x7')]=function(_0x1e6fa2,_0x575a5c){return _0x1e6fa2['define']('CmContact',attributes,{'tableName':_0xa2eb('0x8'),'paranoid':!![],'indexes':[{'name':'phone','fields':[_0xa2eb('0x9')]},{'name':_0xa2eb('0xa'),'fields':[_0xa2eb('0xb'),'lastName','phone',_0xa2eb('0xc'),_0xa2eb('0xd'),_0xa2eb('0xe')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x17468e,_0x171079,_0x590cb1){var _0xbc6c5=_0x1e6fa2['models'];var _0x3ad510=_0x17468e[_0xa2eb('0xf')]({'plain':!![]});function _0x5e492a(){return function(_0xfebbb4){logger[_0xa2eb('0x10')](_0xa2eb('0x11'),'afterCreate',util[_0xa2eb('0x12')](_0xfebbb4,{'showHidden':![],'depth':null}));};}var _0x2c1cba=function(_0x2e2426){return new BPromise(function(_0x108236,_0x256c34){_0xbc6c5[_0xa2eb('0x13')][_0xa2eb('0x14')]({'where':{'phone':_0x3ad510[_0xa2eb('0x9')],'VoiceQueueId':_0x2e2426['id']}})[_0xa2eb('0x15')](function(_0x32cd0c){if(!_[_0xa2eb('0x16')](_0x32cd0c)){throw new Error(_0xa2eb('0x17')+_0x3ad510['phone']+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x2e2426['id']);}return _0xbc6c5[_0xa2eb('0x13')][_0xa2eb('0x18')]({'phone':_0x3ad510[_0xa2eb('0x9')],'ContactId':_0x3ad510['id'],'ListId':_0x3ad510[_0xa2eb('0x19')],'priority':_0x3ad510[_0xa2eb('0x1a')]?_0x3ad510[_0xa2eb('0x1a')]:0x2,'scheduledat':_0x3ad510[_0xa2eb('0x1b')]?_0x3ad510['scheduledat']:moment()[_0xa2eb('0x1c')](_0xa2eb('0x1d')),'callback':_0x3ad510[_0xa2eb('0x1e')]?!![]:![],'callbackuniqueid':_0x3ad510[_0xa2eb('0x1e')]?_0x3ad510[_0xa2eb('0x1e')]:undefined,'callbackat':_0x3ad510['callbackUniqueid']?moment()['format'](_0xa2eb('0x1d')):undefined,'VoiceQueueId':_0x2e2426['id']});})[_0xa2eb('0x1f')](function(_0x4f8af4){_0x256c34(_0x4f8af4);});});};var _0x28aec8=function(_0x1c93cf){return new BPromise(function(_0x5b65e8,_0x518c14){_0xbc6c5[_0xa2eb('0x13')][_0xa2eb('0x14')]({'where':{'phone':_0x3ad510[_0xa2eb('0x9')],'VoiceQueueId':_0x1c93cf['id']}})[_0xa2eb('0x15')](function(_0x2d74f3){if(!_['isNil'](_0x2d74f3)){throw new Error(_0xa2eb('0x17')+_0x3ad510[_0xa2eb('0x9')]+_0xa2eb('0x20')+_0x1c93cf['id']);}return _0xbc6c5[_0xa2eb('0x21')][_0xa2eb('0x14')]({'where':{'calleridnum':_0x3ad510[_0xa2eb('0x9')],'VoiceQueueId':_0x1c93cf['id']}});})['then'](function(_0x2f386c){if(!_['isNil'](_0x2f386c)){throw new Error(_0xa2eb('0x22')+_0x3ad510[_0xa2eb('0x9')]+_0xa2eb('0x23')+_0x1c93cf['id']);}return _0xbc6c5[_0xa2eb('0x13')][_0xa2eb('0x18')]({'phone':_0x3ad510['phone'],'ContactId':_0x3ad510['id'],'ListId':_0x3ad510[_0xa2eb('0x19')],'priority':_0x3ad510[_0xa2eb('0x1a')]?_0x3ad510[_0xa2eb('0x1a')]:0x2,'scheduledat':_0x3ad510[_0xa2eb('0x1b')]?_0x3ad510[_0xa2eb('0x1b')]:moment()[_0xa2eb('0x1c')](_0xa2eb('0x1d')),'callback':_0x3ad510['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x3ad510['callbackUniqueid']?_0x3ad510['callbackUniqueid']:undefined,'callbackat':_0x3ad510[_0xa2eb('0x1e')]?moment()[_0xa2eb('0x1c')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x1c93cf['id']});})[_0xa2eb('0x1f')](function(_0x353b28){_0x518c14(_0x353b28);});});};function _0x56ddc4(){return function(_0x22f3cb){logger['error']('cmContact',_0xa2eb('0x24'),util['inspect'](_0x22f3cb,{'showHidden':![],'depth':null}));};}var _0x15da88=function(_0x5db8fb){return new BPromise(function(_0x5c80e2,_0x1639ad){_0xbc6c5[_0xa2eb('0x13')][_0xa2eb('0x14')]({'where':{'phone':_0x3ad510[_0xa2eb('0x9')],'CampaignId':_0x5db8fb['id']}})[_0xa2eb('0x15')](function(_0x475087){if(!_[_0xa2eb('0x16')](_0x475087)){throw new Error(_0xa2eb('0x17')+_0x3ad510[_0xa2eb('0x9')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x5db8fb['id']);}return _0xbc6c5[_0xa2eb('0x13')][_0xa2eb('0x18')]({'phone':_0x3ad510[_0xa2eb('0x9')],'ContactId':_0x3ad510['id'],'ListId':_0x3ad510[_0xa2eb('0x19')],'priority':_0x3ad510[_0xa2eb('0x1a')]?_0x3ad510[_0xa2eb('0x1a')]:0x2,'scheduledat':_0x3ad510[_0xa2eb('0x1b')]?_0x3ad510[_0xa2eb('0x1b')]:moment()[_0xa2eb('0x1c')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x3ad510[_0xa2eb('0x1e')]?!![]:![],'callbackuniqueid':_0x3ad510[_0xa2eb('0x1e')]?_0x3ad510['callbackUniqueid']:undefined,'callbackat':_0x3ad510[_0xa2eb('0x1e')]?moment()[_0xa2eb('0x1c')](_0xa2eb('0x1d')):undefined,'CampaignId':_0x5db8fb['id']});})[_0xa2eb('0x1f')](function(_0x52bdfc){_0x1639ad(_0x52bdfc);});});};var _0x16fea8=function(_0x32a573){return new BPromise(function(_0x29f3d5,_0x32bdc9){_0xbc6c5[_0xa2eb('0x13')][_0xa2eb('0x14')]({'where':{'phone':_0x3ad510[_0xa2eb('0x9')],'CampaignId':_0x32a573['id']}})[_0xa2eb('0x15')](function(_0x2a10dc){if(!_[_0xa2eb('0x16')](_0x2a10dc)){throw new Error(_0xa2eb('0x17')+_0x3ad510[_0xa2eb('0x9')]+_0xa2eb('0x25')+_0x32a573['id']);}return _0xbc6c5[_0xa2eb('0x21')]['findOne']({'where':{'calleridnum':_0x3ad510['phone'],'CampaignId':_0x32a573['id']}});})['then'](function(_0x1e03f2){if(!_[_0xa2eb('0x16')](_0x1e03f2)){throw new Error(_0xa2eb('0x22')+_0x3ad510[_0xa2eb('0x9')]+_0xa2eb('0x26')+_0x32a573['id']);}return _0xbc6c5[_0xa2eb('0x13')]['create']({'phone':_0x3ad510[_0xa2eb('0x9')],'ContactId':_0x3ad510['id'],'ListId':_0x3ad510['ListId'],'priority':_0x3ad510[_0xa2eb('0x1a')]?_0x3ad510[_0xa2eb('0x1a')]:0x2,'scheduledat':_0x3ad510[_0xa2eb('0x1b')]?_0x3ad510[_0xa2eb('0x1b')]:moment()[_0xa2eb('0x1c')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x3ad510[_0xa2eb('0x1e')]?!![]:![],'callbackuniqueid':_0x3ad510[_0xa2eb('0x1e')]?_0x3ad510['callbackUniqueid']:undefined,'callbackat':_0x3ad510['callbackUniqueid']?moment()[_0xa2eb('0x1c')](_0xa2eb('0x1d')):undefined,'CampaignId':_0x32a573['id']});})[_0xa2eb('0x1f')](function(_0x4043d5){_0x32bdc9(_0x4043d5);});});};if(_0x3ad510['ListId']){_0xbc6c5['VoiceQueue'][_0xa2eb('0x27')]({'where':{'type':_0xa2eb('0x28')},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0xbc6c5[_0xa2eb('0x29')],'as':'Lists','where':{'id':_0x3ad510['ListId']}}]})[_0xa2eb('0x15')](function(_0x43b0bb){if(_0x43b0bb){var _0x200af=[];for(var _0x20462=0x0,_0x4a7ed4;_0x20462<_0x43b0bb[_0xa2eb('0x2a')];_0x20462+=0x1){_0x4a7ed4=_0x43b0bb[_0x20462]['get']({'plain':!![]});switch(_0x4a7ed4[_0xa2eb('0x2b')]){case _0xa2eb('0x2c'):_0x28aec8(_0x4a7ed4)[_0xa2eb('0x1f')](_0x5e492a());break;case _0xa2eb('0x2d'):_0x2c1cba(_0x4a7ed4)[_0xa2eb('0x1f')](_0x5e492a());break;default:_0xbc6c5[_0xa2eb('0x13')][_0xa2eb('0x18')]({'phone':_0x3ad510[_0xa2eb('0x9')],'ContactId':_0x3ad510['id'],'ListId':_0x3ad510['ListId'],'scheduledat':_0x3ad510['scheduledat']?_0x3ad510['scheduledat']:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x3ad510[_0xa2eb('0x1a')]?_0x3ad510[_0xa2eb('0x1a')]:0x2,'callback':_0x3ad510[_0xa2eb('0x1e')]?!![]:![],'callbackuniqueid':_0x3ad510[_0xa2eb('0x1e')]?_0x3ad510[_0xa2eb('0x1e')]:undefined,'callbackat':_0x3ad510[_0xa2eb('0x1e')]?moment()[_0xa2eb('0x1c')](_0xa2eb('0x1d')):undefined,'VoiceQueueId':_0x4a7ed4['id']})[_0xa2eb('0x1f')](_0x5e492a());}}}})['then'](function(){return _0xbc6c5['VoiceQueue'][_0xa2eb('0x27')]({'where':{'type':_0xa2eb('0x28')},'attributes':['id'],'include':[{'model':_0xbc6c5['CmList'],'as':_0xa2eb('0x2e'),'where':{'id':_0x3ad510[_0xa2eb('0x19')]}}]})[_0xa2eb('0x15')](function(_0x1c8e48){if(_0x1c8e48){var _0x4b864d=[];for(var _0xa9b13e=0x0,_0x15a930;_0xa9b13e<_0x1c8e48[_0xa2eb('0x2a')];_0xa9b13e+=0x1){_0x15a930=_0x1c8e48[_0xa9b13e][_0xa2eb('0xf')]({'plain':!![]});_0xbc6c5[_0xa2eb('0x2f')]['create']({'phone':_0x3ad510['phone'],'ContactId':_0x3ad510['id'],'ListId':_0x3ad510[_0xa2eb('0x19')],'VoiceQueueId':_0x15a930['id']})[_0xa2eb('0x1f')](function(_0x476c5f){logger[_0xa2eb('0x10')](_0xa2eb('0x30'),_0xa2eb('0x24'),_0x476c5f['message']);});}}});})[_0xa2eb('0x15')](function(){return _0xbc6c5[_0xa2eb('0x31')][_0xa2eb('0x27')]({'attributes':['id',_0xa2eb('0x2b')],'include':[{'model':_0xbc6c5['CmList'],'as':_0xa2eb('0x32'),'where':{'id':_0x3ad510[_0xa2eb('0x19')]}}]})[_0xa2eb('0x15')](function(_0xe4faf6){if(_0xe4faf6){var _0x1d4017=[];for(var _0x395015=0x0,_0x2592b2;_0x395015<_0xe4faf6['length'];_0x395015+=0x1){_0x2592b2=_0xe4faf6[_0x395015][_0xa2eb('0xf')]({'plain':!![]});switch(_0x2592b2[_0xa2eb('0x2b')]){case'always':_0x16fea8(_0x2592b2)[_0xa2eb('0x1f')](_0x56ddc4());break;case _0xa2eb('0x2d'):_0x15da88(_0x2592b2)[_0xa2eb('0x1f')](_0x56ddc4());break;default:_0xbc6c5[_0xa2eb('0x13')][_0xa2eb('0x18')]({'phone':_0x3ad510[_0xa2eb('0x9')],'ContactId':_0x3ad510['id'],'ListId':_0x3ad510[_0xa2eb('0x19')],'scheduledat':_0x3ad510[_0xa2eb('0x1b')]?_0x3ad510['scheduledat']:moment()[_0xa2eb('0x1c')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x3ad510['priority']?_0x3ad510['priority']:0x2,'callback':_0x3ad510[_0xa2eb('0x1e')]?!![]:![],'callbackuniqueid':_0x3ad510[_0xa2eb('0x1e')]?_0x3ad510[_0xa2eb('0x1e')]:undefined,'callbackat':_0x3ad510[_0xa2eb('0x1e')]?moment()[_0xa2eb('0x1c')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x2592b2['id']})['catch'](_0x56ddc4());}}}});})[_0xa2eb('0x15')](function(){return _0xbc6c5[_0xa2eb('0x31')][_0xa2eb('0x27')]({'attributes':['id'],'include':[{'model':_0xbc6c5[_0xa2eb('0x29')],'as':_0xa2eb('0x2e'),'where':{'id':_0x3ad510[_0xa2eb('0x19')]}}]})[_0xa2eb('0x15')](function(_0x41ade0){if(_0x41ade0){var _0x580825=[];for(var _0x359f4d=0x0,_0x4ec6fd;_0x359f4d<_0x41ade0[_0xa2eb('0x2a')];_0x359f4d+=0x1){_0x4ec6fd=_0x41ade0[_0x359f4d][_0xa2eb('0xf')]({'plain':!![]});_0xbc6c5[_0xa2eb('0x2f')][_0xa2eb('0x18')]({'phone':_0x3ad510[_0xa2eb('0x9')],'ContactId':_0x3ad510['id'],'ListId':_0x3ad510['ListId'],'CampaignId':_0x4ec6fd['id']})['catch'](function(_0x473cd1){logger[_0xa2eb('0x10')](_0xa2eb('0x30'),_0xa2eb('0x24'),_0x473cd1[_0xa2eb('0x33')]);});}}});})[_0xa2eb('0x15')](function(){_0x590cb1();})[_0xa2eb('0x1f')](function(_0x42bc14){logger[_0xa2eb('0x10')](_0xa2eb('0x30'),_0xa2eb('0x24'),_0x42bc14[_0xa2eb('0x33')]);_0x590cb1(_0x42bc14);});}else{_0x590cb1(new Error(_0xa2eb('0x34')));}},'afterDestroy':function(_0x583983,_0x3d8d0f,_0x2c7537){var _0x3c2060=_0x1e6fa2[_0xa2eb('0x35')];var _0x4acc59=_0x583983[_0xa2eb('0xf')]({'plain':!![]});return _0x3c2060[_0xa2eb('0x13')][_0xa2eb('0x27')]({'raw':!![],'where':{'ListId':_0x4acc59['ListId'],'ContactId':_0x4acc59['id']}})['then'](function(_0x130b88){if(!_['isEmpty'](_0x130b88)){var _0x556944=[];for(var _0x546d3d=0x0;_0x546d3d<_0x130b88[_0xa2eb('0x2a')];_0x546d3d+=0x1){var _0xf3951f=_0x3c2060[_0xa2eb('0x13')]['destroy']({'where':{'ListId':_0x130b88[_0x546d3d][_0xa2eb('0x19')],'ContactId':_0x130b88[_0x546d3d][_0xa2eb('0x36')],'VoiceQueueId':_0x130b88[_0x546d3d][_0xa2eb('0x37')],'CampaignId':_0x130b88[_0x546d3d][_0xa2eb('0x38')]}});_0x556944[_0xa2eb('0x39')](_0xf3951f);}return BPromise[_0xa2eb('0x3a')](_0x556944);}})[_0xa2eb('0x15')](function(_0x515c87){logger['info'](_0xa2eb('0x3b'),util[_0xa2eb('0x12')](_0x515c87,{'showHidden':![],'depth':null}));_0x2c7537();})[_0xa2eb('0x1f')](function(_0x5579b3){logger[_0xa2eb('0x10')]('[CmContact][afterDestroy][Error]',util['inspect'](_0x5579b3,{'showHidden':![],'depth':null}));_0x2c7537(_0x5579b3);});}}});};