Built motion from commit (unavailable).|2.2.0
[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 _0x236d=['message','List\x20not\x20found','destroy','CampaignId','push','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','util','api','bluebird','request-promise','./cmContact.attributes','exports','define','CmContact','cm_contacts','phone','models','error','afterCreate','inspect','CmHopper','findOne','then','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create','ListId','priority','scheduledat','format','callbackUniqueid','YYYY-MM-DD\x20HH:mm:ss','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','cmContact','\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','dialCheckDuplicateType','CmList','length','always','onlyIfOpen','findAll','outbound','BlackLists','get','cmContact,\x20%s,\x20%s','Campaign','Lists','CmHopperBlack'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x236d,0x7e));var _0xd236=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x236d[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0xd236('0x0'));var util=require(_0xd236('0x1'));var logger=require('../../config/logger')(_0xd236('0x2'));var moment=require('moment');var BPromise=require(_0xd236('0x3'));var rp=require(_0xd236('0x4'));var attributes=require(_0xd236('0x5'));module[_0xd236('0x6')]=function(_0x52cdc5,_0x56bc88){return _0x52cdc5[_0xd236('0x7')](_0xd236('0x8'),attributes,{'tableName':_0xd236('0x9'),'paranoid':!![],'indexes':[{'name':_0xd236('0xa'),'fields':['phone']}],'timestamps':!![],'hooks':{'afterCreate':function(_0x54ac9c,_0x2d9025,_0x18d969){var _0x4e0460=_0x52cdc5[_0xd236('0xb')];var _0x110545=_0x54ac9c['get']({'plain':!![]});function _0x3d11c7(){return function(_0x29ba1d){logger[_0xd236('0xc')]('cmContact',_0xd236('0xd'),util[_0xd236('0xe')](_0x29ba1d,{'showHidden':![],'depth':null}));};}var _0x216cd2=function(_0x4bef7f){return new BPromise(function(_0xd8d64,_0x2fe18d){_0x4e0460[_0xd236('0xf')][_0xd236('0x10')]({'where':{'phone':_0x110545[_0xd236('0xa')],'VoiceQueueId':_0x4bef7f['id']}})[_0xd236('0x11')](function(_0x206b35){if(!_[_0xd236('0x12')](_0x206b35)){throw new Error(_0xd236('0x13')+_0x110545[_0xd236('0xa')]+_0xd236('0x14')+_0x4bef7f['id']);}return _0x4e0460[_0xd236('0xf')][_0xd236('0x15')]({'phone':_0x110545[_0xd236('0xa')],'ContactId':_0x110545['id'],'ListId':_0x110545[_0xd236('0x16')],'priority':_0x110545[_0xd236('0x17')]?_0x110545[_0xd236('0x17')]:0x2,'scheduledat':_0x110545[_0xd236('0x18')]?_0x110545[_0xd236('0x18')]:moment()[_0xd236('0x19')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x110545['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x110545[_0xd236('0x1a')]?_0x110545[_0xd236('0x1a')]:undefined,'callbackat':_0x110545['callbackUniqueid']?moment()[_0xd236('0x19')](_0xd236('0x1b')):undefined,'VoiceQueueId':_0x4bef7f['id']});})[_0xd236('0x1c')](function(_0x595fd4){_0x2fe18d(_0x595fd4);});});};var _0x355b65=function(_0x1b6aaa){return new BPromise(function(_0x31f0bb,_0x551b53){_0x4e0460[_0xd236('0xf')][_0xd236('0x10')]({'where':{'phone':_0x110545[_0xd236('0xa')],'VoiceQueueId':_0x1b6aaa['id']}})[_0xd236('0x11')](function(_0x2f512d){if(!_['isNil'](_0x2f512d)){throw new Error(_0xd236('0x13')+_0x110545[_0xd236('0xa')]+_0xd236('0x1d')+_0x1b6aaa['id']);}return _0x4e0460[_0xd236('0x1e')][_0xd236('0x10')]({'where':{'calleridnum':_0x110545['phone'],'VoiceQueueId':_0x1b6aaa['id']}});})['then'](function(_0x257f27){if(!_['isNil'](_0x257f27)){throw new Error(_0xd236('0x1f')+_0x110545['phone']+_0xd236('0x20')+_0x1b6aaa['id']);}return _0x4e0460[_0xd236('0xf')][_0xd236('0x15')]({'phone':_0x110545['phone'],'ContactId':_0x110545['id'],'ListId':_0x110545[_0xd236('0x16')],'priority':_0x110545[_0xd236('0x17')]?_0x110545[_0xd236('0x17')]:0x2,'scheduledat':_0x110545[_0xd236('0x18')]?_0x110545[_0xd236('0x18')]:moment()[_0xd236('0x19')](_0xd236('0x1b')),'callback':_0x110545[_0xd236('0x1a')]?!![]:![],'callbackuniqueid':_0x110545[_0xd236('0x1a')]?_0x110545[_0xd236('0x1a')]:undefined,'callbackat':_0x110545[_0xd236('0x1a')]?moment()[_0xd236('0x19')](_0xd236('0x1b')):undefined,'VoiceQueueId':_0x1b6aaa['id']});})[_0xd236('0x1c')](function(_0x3108f4){_0x551b53(_0x3108f4);});});};function _0x28175d(){return function(_0x436a19){logger[_0xd236('0xc')](_0xd236('0x21'),_0xd236('0xd'),util[_0xd236('0xe')](_0x436a19,{'showHidden':![],'depth':null}));};}var _0x37b099=function(_0x3c1617){return new BPromise(function(_0x36f8d4,_0xdd34a4){_0x4e0460[_0xd236('0xf')][_0xd236('0x10')]({'where':{'phone':_0x110545[_0xd236('0xa')],'CampaignId':_0x3c1617['id']}})[_0xd236('0x11')](function(_0x52a556){if(!_[_0xd236('0x12')](_0x52a556)){throw new Error('cmContact,\x20afterCreate\x20'+_0x110545[_0xd236('0xa')]+_0xd236('0x22')+_0x3c1617['id']);}return _0x4e0460[_0xd236('0xf')]['create']({'phone':_0x110545[_0xd236('0xa')],'ContactId':_0x110545['id'],'ListId':_0x110545[_0xd236('0x16')],'priority':_0x110545[_0xd236('0x17')]?_0x110545[_0xd236('0x17')]:0x2,'scheduledat':_0x110545[_0xd236('0x18')]?_0x110545[_0xd236('0x18')]:moment()[_0xd236('0x19')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x110545[_0xd236('0x1a')]?!![]:![],'callbackuniqueid':_0x110545['callbackUniqueid']?_0x110545[_0xd236('0x1a')]:undefined,'callbackat':_0x110545['callbackUniqueid']?moment()[_0xd236('0x19')](_0xd236('0x1b')):undefined,'CampaignId':_0x3c1617['id']});})[_0xd236('0x1c')](function(_0x208914){_0xdd34a4(_0x208914);});});};var _0x26dc56=function(_0x2b055b){return new BPromise(function(_0x1d6e1,_0x94c21b){_0x4e0460[_0xd236('0xf')][_0xd236('0x10')]({'where':{'phone':_0x110545[_0xd236('0xa')],'CampaignId':_0x2b055b['id']}})[_0xd236('0x11')](function(_0x2d02ac){if(!_['isNil'](_0x2d02ac)){throw new Error(_0xd236('0x13')+_0x110545[_0xd236('0xa')]+_0xd236('0x23')+_0x2b055b['id']);}return _0x4e0460['CmHopperFinal'][_0xd236('0x10')]({'where':{'calleridnum':_0x110545[_0xd236('0xa')],'CampaignId':_0x2b055b['id']}});})[_0xd236('0x11')](function(_0x1848a4){if(!_[_0xd236('0x12')](_0x1848a4)){throw new Error(_0xd236('0x1f')+_0x110545['phone']+_0xd236('0x24')+_0x2b055b['id']);}return _0x4e0460[_0xd236('0xf')][_0xd236('0x15')]({'phone':_0x110545[_0xd236('0xa')],'ContactId':_0x110545['id'],'ListId':_0x110545[_0xd236('0x16')],'priority':_0x110545[_0xd236('0x17')]?_0x110545['priority']:0x2,'scheduledat':_0x110545[_0xd236('0x18')]?_0x110545[_0xd236('0x18')]:moment()[_0xd236('0x19')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x110545[_0xd236('0x1a')]?!![]:![],'callbackuniqueid':_0x110545['callbackUniqueid']?_0x110545[_0xd236('0x1a')]:undefined,'callbackat':_0x110545['callbackUniqueid']?moment()['format'](_0xd236('0x1b')):undefined,'CampaignId':_0x2b055b['id']});})[_0xd236('0x1c')](function(_0x45ad0b){_0x94c21b(_0x45ad0b);});});};if(_0x110545[_0xd236('0x16')]){_0x4e0460[_0xd236('0x25')]['findAll']({'where':{'type':'outbound'},'attributes':['id',_0xd236('0x26')],'include':[{'model':_0x4e0460[_0xd236('0x27')],'as':'Lists','where':{'id':_0x110545[_0xd236('0x16')]}}]})[_0xd236('0x11')](function(_0x2d815b){if(_0x2d815b){var _0x55007d=[];for(var _0x58a93a=0x0,_0x5c6d39;_0x58a93a<_0x2d815b[_0xd236('0x28')];_0x58a93a+=0x1){_0x5c6d39=_0x2d815b[_0x58a93a]['get']({'plain':!![]});switch(_0x5c6d39['dialCheckDuplicateType']){case _0xd236('0x29'):_0x355b65(_0x5c6d39)[_0xd236('0x1c')](_0x3d11c7());break;case _0xd236('0x2a'):_0x216cd2(_0x5c6d39)[_0xd236('0x1c')](_0x3d11c7());break;default:_0x4e0460[_0xd236('0xf')]['create']({'phone':_0x110545['phone'],'ContactId':_0x110545['id'],'ListId':_0x110545[_0xd236('0x16')],'scheduledat':_0x110545[_0xd236('0x18')]?_0x110545[_0xd236('0x18')]:moment()[_0xd236('0x19')](_0xd236('0x1b')),'priority':_0x110545[_0xd236('0x17')]?_0x110545['priority']:0x2,'callback':_0x110545[_0xd236('0x1a')]?!![]:![],'callbackuniqueid':_0x110545['callbackUniqueid']?_0x110545[_0xd236('0x1a')]:undefined,'callbackat':_0x110545[_0xd236('0x1a')]?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x5c6d39['id']})['catch'](_0x3d11c7());}}}})['then'](function(){return _0x4e0460[_0xd236('0x25')][_0xd236('0x2b')]({'where':{'type':_0xd236('0x2c')},'attributes':['id'],'include':[{'model':_0x4e0460[_0xd236('0x27')],'as':_0xd236('0x2d'),'where':{'id':_0x110545['ListId']}}]})['then'](function(_0x2f3b1f){if(_0x2f3b1f){var _0x7c0650=[];for(var _0xbf4ba9=0x0,_0x208548;_0xbf4ba9<_0x2f3b1f[_0xd236('0x28')];_0xbf4ba9+=0x1){_0x208548=_0x2f3b1f[_0xbf4ba9][_0xd236('0x2e')]({'plain':!![]});_0x4e0460['CmHopperBlack'][_0xd236('0x15')]({'phone':_0x110545['phone'],'ContactId':_0x110545['id'],'ListId':_0x110545[_0xd236('0x16')],'VoiceQueueId':_0x208548['id']})[_0xd236('0x1c')](function(_0x578664){logger[_0xd236('0xc')](_0xd236('0x2f'),'afterCreate',_0x578664['message']);});}}});})[_0xd236('0x11')](function(){return _0x4e0460[_0xd236('0x30')][_0xd236('0x2b')]({'attributes':['id',_0xd236('0x26')],'include':[{'model':_0x4e0460['CmList'],'as':_0xd236('0x31'),'where':{'id':_0x110545[_0xd236('0x16')]}}]})[_0xd236('0x11')](function(_0x18d606){if(_0x18d606){var _0x1282cd=[];for(var _0x204738=0x0,_0x5a4d5b;_0x204738<_0x18d606['length'];_0x204738+=0x1){_0x5a4d5b=_0x18d606[_0x204738][_0xd236('0x2e')]({'plain':!![]});switch(_0x5a4d5b['dialCheckDuplicateType']){case _0xd236('0x29'):_0x26dc56(_0x5a4d5b)[_0xd236('0x1c')](_0x28175d());break;case'onlyIfOpen':_0x37b099(_0x5a4d5b)[_0xd236('0x1c')](_0x28175d());break;default:_0x4e0460[_0xd236('0xf')]['create']({'phone':_0x110545[_0xd236('0xa')],'ContactId':_0x110545['id'],'ListId':_0x110545[_0xd236('0x16')],'scheduledat':_0x110545[_0xd236('0x18')]?_0x110545[_0xd236('0x18')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x110545[_0xd236('0x17')]?_0x110545[_0xd236('0x17')]:0x2,'callback':_0x110545['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x110545[_0xd236('0x1a')]?_0x110545[_0xd236('0x1a')]:undefined,'callbackat':_0x110545[_0xd236('0x1a')]?moment()[_0xd236('0x19')](_0xd236('0x1b')):undefined,'CampaignId':_0x5a4d5b['id']})['catch'](_0x28175d());}}}});})[_0xd236('0x11')](function(){return _0x4e0460[_0xd236('0x30')][_0xd236('0x2b')]({'attributes':['id'],'include':[{'model':_0x4e0460['CmList'],'as':_0xd236('0x2d'),'where':{'id':_0x110545['ListId']}}]})['then'](function(_0x85ae2b){if(_0x85ae2b){var _0x2ebe3f=[];for(var _0x332dc0=0x0,_0x16bf1d;_0x332dc0<_0x85ae2b[_0xd236('0x28')];_0x332dc0+=0x1){_0x16bf1d=_0x85ae2b[_0x332dc0][_0xd236('0x2e')]({'plain':!![]});_0x4e0460[_0xd236('0x32')]['create']({'phone':_0x110545[_0xd236('0xa')],'ContactId':_0x110545['id'],'ListId':_0x110545[_0xd236('0x16')],'CampaignId':_0x16bf1d['id']})[_0xd236('0x1c')](function(_0x33521d){logger[_0xd236('0xc')](_0xd236('0x2f'),'afterCreate',_0x33521d[_0xd236('0x33')]);});}}});})[_0xd236('0x11')](function(){_0x18d969();})[_0xd236('0x1c')](function(_0x498ec5){logger[_0xd236('0xc')](_0xd236('0x2f'),_0xd236('0xd'),_0x498ec5['message']);_0x18d969(_0x498ec5);});}else{_0x18d969(new Error(_0xd236('0x34')));}},'afterDestroy':function(_0x3f41ca,_0x18b121,_0x3413b0){var _0x50c1dd=_0x52cdc5[_0xd236('0xb')];var _0x53fe00=_0x3f41ca[_0xd236('0x2e')]({'plain':!![]});return _0x50c1dd['CmHopper'][_0xd236('0x2b')]({'raw':!![],'where':{'ListId':_0x53fe00['ListId'],'ContactId':_0x53fe00['id']}})[_0xd236('0x11')](function(_0x169070){if(!_['isEmpty'](_0x169070)){var _0x3c4dab=[];for(var _0x5865cd=0x0;_0x5865cd<_0x169070[_0xd236('0x28')];_0x5865cd+=0x1){var _0xe32357=_0x50c1dd['CmHopper'][_0xd236('0x35')]({'where':{'ListId':_0x169070[_0x5865cd][_0xd236('0x16')],'ContactId':_0x169070[_0x5865cd]['ContactId'],'VoiceQueueId':_0x169070[_0x5865cd]['VoiceQueueId'],'CampaignId':_0x169070[_0x5865cd][_0xd236('0x36')]}});_0x3c4dab[_0xd236('0x37')](_0xe32357);}return BPromise['all'](_0x3c4dab);}})[_0xd236('0x11')](function(_0x5a1b6f){logger[_0xd236('0x38')](_0xd236('0x39'),util['inspect'](_0x5a1b6f,{'showHidden':![],'depth':null}));_0x3413b0();})[_0xd236('0x1c')](function(_0x3d3954){logger[_0xd236('0xc')](_0xd236('0x3a'),util['inspect'](_0x3d3954,{'showHidden':![],'depth':null}));_0x3413b0(_0x3d3954);});}}});};