Built motion from commit (unavailable).|2.5.16
[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 _0xed1c=['error','cmContact','inspect','CmHopper','findOne','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','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','then','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','create','afterCreate','\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','findAll','outbound','CmList','get','always','onlyIfOpen','BlackLists','length','cmContact,\x20%s,\x20%s','Campaign','dialCheckDuplicateType','CmHopperBlack','message','isEmpty','destroy','VoiceQueueId','CampaignId','all','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','util','request-promise','path','rimraf','./cmContact.attributes','exports','CmContact','cm_contacts','phone','fti_cm_contacts','firstName','lastName','fax','FULLTEXT','models'];(function(_0x44290a,_0xa50a07){var _0x3316fa=function(_0x37a522){while(--_0x37a522){_0x44290a['push'](_0x44290a['shift']());}};_0x3316fa(++_0xa50a07);}(_0xed1c,0xe4));var _0xced1=function(_0x412725,_0x35d980){_0x412725=_0x412725-0x0;var _0x457bdf=_0xed1c[_0x412725];return _0x457bdf;};'use strict';var _=require(_0xced1('0x0'));var util=require(_0xced1('0x1'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xced1('0x2'));var fs=require('fs');var path=require(_0xced1('0x3'));var rimraf=require(_0xced1('0x4'));var config=require('../../config/environment');var attributes=require(_0xced1('0x5'));module[_0xced1('0x6')]=function(_0x466657,_0x37b22b){return _0x466657['define'](_0xced1('0x7'),attributes,{'tableName':_0xced1('0x8'),'paranoid':!![],'indexes':[{'name':_0xced1('0x9'),'fields':[_0xced1('0x9')]},{'name':_0xced1('0xa'),'fields':[_0xced1('0xb'),_0xced1('0xc'),_0xced1('0x9'),'mobile',_0xced1('0xd'),'email'],'type':_0xced1('0xe')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x15e99f,_0x1edaaa,_0x18c028){var _0x15f678=_0x466657[_0xced1('0xf')];var _0x3779d3=_0x15e99f['get']({'plain':!![]});function _0x118f69(){return function(_0x2a5cd6){logger[_0xced1('0x10')](_0xced1('0x11'),'afterCreate',util[_0xced1('0x12')](_0x2a5cd6,{'showHidden':![],'depth':null}));};}var _0x31a32c=function(_0x54cba9){return new BPromise(function(_0x388e21,_0x26f81){_0x15f678[_0xced1('0x13')][_0xced1('0x14')]({'where':{'phone':_0x3779d3['phone'],'VoiceQueueId':_0x54cba9['id']}})['then'](function(_0x3eb3ac){if(!_[_0xced1('0x15')](_0x3eb3ac)){throw new Error(_0xced1('0x16')+_0x3779d3[_0xced1('0x9')]+_0xced1('0x17')+_0x54cba9['id']);}return _0x15f678[_0xced1('0x13')]['create']({'phone':_0x3779d3['phone'],'ContactId':_0x3779d3['id'],'ListId':_0x3779d3[_0xced1('0x18')],'priority':_0x3779d3[_0xced1('0x19')]?_0x3779d3[_0xced1('0x19')]:0x2,'scheduledat':_0x3779d3['scheduledat']?_0x3779d3[_0xced1('0x1a')]:moment()[_0xced1('0x1b')](_0xced1('0x1c')),'callback':_0x3779d3['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x3779d3[_0xced1('0x1d')]?_0x3779d3[_0xced1('0x1d')]:undefined,'callbackat':_0x3779d3[_0xced1('0x1d')]?moment()['format'](_0xced1('0x1c')):undefined,'VoiceQueueId':_0x54cba9['id']});})[_0xced1('0x1e')](function(_0xc1bd39){_0x26f81(_0xc1bd39);});});};var _0x5f1474=function(_0x4dab56){return new BPromise(function(_0x1d3884,_0x41ee91){_0x15f678[_0xced1('0x13')][_0xced1('0x14')]({'where':{'phone':_0x3779d3[_0xced1('0x9')],'VoiceQueueId':_0x4dab56['id']}})['then'](function(_0x14f47e){if(!_[_0xced1('0x15')](_0x14f47e)){throw new Error('cmContact,\x20afterCreate\x20'+_0x3779d3['phone']+_0xced1('0x1f')+_0x4dab56['id']);}return _0x15f678[_0xced1('0x20')][_0xced1('0x14')]({'where':{'calleridnum':_0x3779d3[_0xced1('0x9')],'VoiceQueueId':_0x4dab56['id']}});})[_0xced1('0x21')](function(_0x25b6e7){if(!_['isNil'](_0x25b6e7)){throw new Error(_0xced1('0x22')+_0x3779d3[_0xced1('0x9')]+_0xced1('0x23')+_0x4dab56['id']);}return _0x15f678[_0xced1('0x13')][_0xced1('0x24')]({'phone':_0x3779d3[_0xced1('0x9')],'ContactId':_0x3779d3['id'],'ListId':_0x3779d3[_0xced1('0x18')],'priority':_0x3779d3['priority']?_0x3779d3[_0xced1('0x19')]:0x2,'scheduledat':_0x3779d3['scheduledat']?_0x3779d3[_0xced1('0x1a')]:moment()[_0xced1('0x1b')](_0xced1('0x1c')),'callback':_0x3779d3[_0xced1('0x1d')]?!![]:![],'callbackuniqueid':_0x3779d3['callbackUniqueid']?_0x3779d3['callbackUniqueid']:undefined,'callbackat':_0x3779d3[_0xced1('0x1d')]?moment()[_0xced1('0x1b')](_0xced1('0x1c')):undefined,'VoiceQueueId':_0x4dab56['id']});})['catch'](function(_0x573146){_0x41ee91(_0x573146);});});};function _0x543c47(){return function(_0xb5490c){logger[_0xced1('0x10')](_0xced1('0x11'),_0xced1('0x25'),util['inspect'](_0xb5490c,{'showHidden':![],'depth':null}));};}var _0x4023e4=function(_0x4298d2){return new BPromise(function(_0x46b672,_0x2109c4){_0x15f678[_0xced1('0x13')][_0xced1('0x14')]({'where':{'phone':_0x3779d3[_0xced1('0x9')],'CampaignId':_0x4298d2['id']}})['then'](function(_0x5453e6){if(!_[_0xced1('0x15')](_0x5453e6)){throw new Error(_0xced1('0x16')+_0x3779d3[_0xced1('0x9')]+_0xced1('0x26')+_0x4298d2['id']);}return _0x15f678[_0xced1('0x13')][_0xced1('0x24')]({'phone':_0x3779d3['phone'],'ContactId':_0x3779d3['id'],'ListId':_0x3779d3['ListId'],'priority':_0x3779d3['priority']?_0x3779d3['priority']:0x2,'scheduledat':_0x3779d3[_0xced1('0x1a')]?_0x3779d3[_0xced1('0x1a')]:moment()[_0xced1('0x1b')](_0xced1('0x1c')),'callback':_0x3779d3[_0xced1('0x1d')]?!![]:![],'callbackuniqueid':_0x3779d3[_0xced1('0x1d')]?_0x3779d3[_0xced1('0x1d')]:undefined,'callbackat':_0x3779d3[_0xced1('0x1d')]?moment()[_0xced1('0x1b')](_0xced1('0x1c')):undefined,'CampaignId':_0x4298d2['id']});})[_0xced1('0x1e')](function(_0x1db647){_0x2109c4(_0x1db647);});});};var _0x399c77=function(_0x4a86c3){return new BPromise(function(_0x1348a4,_0x23db06){_0x15f678[_0xced1('0x13')][_0xced1('0x14')]({'where':{'phone':_0x3779d3[_0xced1('0x9')],'CampaignId':_0x4a86c3['id']}})[_0xced1('0x21')](function(_0x4b8187){if(!_[_0xced1('0x15')](_0x4b8187)){throw new Error(_0xced1('0x16')+_0x3779d3[_0xced1('0x9')]+_0xced1('0x27')+_0x4a86c3['id']);}return _0x15f678[_0xced1('0x20')][_0xced1('0x14')]({'where':{'calleridnum':_0x3779d3[_0xced1('0x9')],'CampaignId':_0x4a86c3['id']}});})[_0xced1('0x21')](function(_0x355806){if(!_[_0xced1('0x15')](_0x355806)){throw new Error(_0xced1('0x22')+_0x3779d3['phone']+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20'+_0x4a86c3['id']);}return _0x15f678[_0xced1('0x13')][_0xced1('0x24')]({'phone':_0x3779d3[_0xced1('0x9')],'ContactId':_0x3779d3['id'],'ListId':_0x3779d3['ListId'],'priority':_0x3779d3[_0xced1('0x19')]?_0x3779d3[_0xced1('0x19')]:0x2,'scheduledat':_0x3779d3[_0xced1('0x1a')]?_0x3779d3['scheduledat']:moment()[_0xced1('0x1b')](_0xced1('0x1c')),'callback':_0x3779d3['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x3779d3[_0xced1('0x1d')]?_0x3779d3['callbackUniqueid']:undefined,'callbackat':_0x3779d3[_0xced1('0x1d')]?moment()[_0xced1('0x1b')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x4a86c3['id']});})[_0xced1('0x1e')](function(_0x172a7e){_0x23db06(_0x172a7e);});});};if(_0x3779d3[_0xced1('0x18')]){_0x15f678['VoiceQueue'][_0xced1('0x28')]({'where':{'type':_0xced1('0x29')},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0x15f678[_0xced1('0x2a')],'as':'Lists','where':{'id':_0x3779d3['ListId']}}]})[_0xced1('0x21')](function(_0x4c74a1){if(_0x4c74a1){var _0x2e704f=[];for(var _0x217399=0x0,_0xb344a2;_0x217399<_0x4c74a1['length'];_0x217399+=0x1){_0xb344a2=_0x4c74a1[_0x217399][_0xced1('0x2b')]({'plain':!![]});switch(_0xb344a2['dialCheckDuplicateType']){case _0xced1('0x2c'):_0x5f1474(_0xb344a2)[_0xced1('0x1e')](_0x118f69());break;case _0xced1('0x2d'):_0x31a32c(_0xb344a2)[_0xced1('0x1e')](_0x118f69());break;default:_0x15f678['CmHopper'][_0xced1('0x24')]({'phone':_0x3779d3[_0xced1('0x9')],'ContactId':_0x3779d3['id'],'ListId':_0x3779d3['ListId'],'scheduledat':_0x3779d3[_0xced1('0x1a')]?_0x3779d3[_0xced1('0x1a')]:moment()['format'](_0xced1('0x1c')),'priority':_0x3779d3[_0xced1('0x19')]?_0x3779d3[_0xced1('0x19')]:0x2,'callback':_0x3779d3['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x3779d3[_0xced1('0x1d')]?_0x3779d3[_0xced1('0x1d')]:undefined,'callbackat':_0x3779d3[_0xced1('0x1d')]?moment()[_0xced1('0x1b')](_0xced1('0x1c')):undefined,'VoiceQueueId':_0xb344a2['id']})['catch'](_0x118f69());}}}})[_0xced1('0x21')](function(){return _0x15f678['VoiceQueue'][_0xced1('0x28')]({'where':{'type':_0xced1('0x29')},'attributes':['id'],'include':[{'model':_0x15f678[_0xced1('0x2a')],'as':_0xced1('0x2e'),'where':{'id':_0x3779d3[_0xced1('0x18')]}}]})[_0xced1('0x21')](function(_0x565311){if(_0x565311){var _0x3570ff=[];for(var _0x1ac8ed=0x0,_0x47f5ce;_0x1ac8ed<_0x565311[_0xced1('0x2f')];_0x1ac8ed+=0x1){_0x47f5ce=_0x565311[_0x1ac8ed]['get']({'plain':!![]});_0x15f678['CmHopperBlack'][_0xced1('0x24')]({'phone':_0x3779d3[_0xced1('0x9')],'ContactId':_0x3779d3['id'],'ListId':_0x3779d3[_0xced1('0x18')],'VoiceQueueId':_0x47f5ce['id']})[_0xced1('0x1e')](function(_0x4f0183){logger[_0xced1('0x10')](_0xced1('0x30'),_0xced1('0x25'),_0x4f0183['message']);});}}});})['then'](function(){return _0x15f678[_0xced1('0x31')][_0xced1('0x28')]({'attributes':['id',_0xced1('0x32')],'include':[{'model':_0x15f678[_0xced1('0x2a')],'as':'Lists','where':{'id':_0x3779d3['ListId']}}]})['then'](function(_0x7df9c5){if(_0x7df9c5){var _0x14fcc0=[];for(var _0x35a8f0=0x0,_0x1b1631;_0x35a8f0<_0x7df9c5[_0xced1('0x2f')];_0x35a8f0+=0x1){_0x1b1631=_0x7df9c5[_0x35a8f0][_0xced1('0x2b')]({'plain':!![]});switch(_0x1b1631[_0xced1('0x32')]){case _0xced1('0x2c'):_0x399c77(_0x1b1631)[_0xced1('0x1e')](_0x543c47());break;case'onlyIfOpen':_0x4023e4(_0x1b1631)[_0xced1('0x1e')](_0x543c47());break;default:_0x15f678[_0xced1('0x13')][_0xced1('0x24')]({'phone':_0x3779d3['phone'],'ContactId':_0x3779d3['id'],'ListId':_0x3779d3[_0xced1('0x18')],'scheduledat':_0x3779d3[_0xced1('0x1a')]?_0x3779d3[_0xced1('0x1a')]:moment()[_0xced1('0x1b')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x3779d3[_0xced1('0x19')]?_0x3779d3['priority']:0x2,'callback':_0x3779d3['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x3779d3[_0xced1('0x1d')]?_0x3779d3[_0xced1('0x1d')]:undefined,'callbackat':_0x3779d3['callbackUniqueid']?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x1b1631['id']})[_0xced1('0x1e')](_0x543c47());}}}});})['then'](function(){return _0x15f678[_0xced1('0x31')][_0xced1('0x28')]({'attributes':['id'],'include':[{'model':_0x15f678[_0xced1('0x2a')],'as':_0xced1('0x2e'),'where':{'id':_0x3779d3[_0xced1('0x18')]}}]})[_0xced1('0x21')](function(_0x1388e0){if(_0x1388e0){var _0x849056=[];for(var _0x4d5a58=0x0,_0x4f17fb;_0x4d5a58<_0x1388e0[_0xced1('0x2f')];_0x4d5a58+=0x1){_0x4f17fb=_0x1388e0[_0x4d5a58][_0xced1('0x2b')]({'plain':!![]});_0x15f678[_0xced1('0x33')][_0xced1('0x24')]({'phone':_0x3779d3['phone'],'ContactId':_0x3779d3['id'],'ListId':_0x3779d3[_0xced1('0x18')],'CampaignId':_0x4f17fb['id']})[_0xced1('0x1e')](function(_0x251d25){logger[_0xced1('0x10')]('cmContact,\x20%s,\x20%s',_0xced1('0x25'),_0x251d25[_0xced1('0x34')]);});}}});})[_0xced1('0x21')](function(){_0x18c028();})[_0xced1('0x1e')](function(_0x2a35b9){logger[_0xced1('0x10')](_0xced1('0x30'),_0xced1('0x25'),_0x2a35b9['message']);_0x18c028(_0x2a35b9);});}else{_0x18c028(new Error('List\x20not\x20found'));}},'afterDestroy':function(_0x4cc559,_0x440b22,_0x52e873){var _0x398264=_0x466657['models'];var _0x5987a3=_0x4cc559[_0xced1('0x2b')]({'plain':!![]});return _0x398264[_0xced1('0x13')][_0xced1('0x28')]({'raw':!![],'where':{'ListId':_0x5987a3[_0xced1('0x18')],'ContactId':_0x5987a3['id']}})[_0xced1('0x21')](function(_0x466da1){if(!_[_0xced1('0x35')](_0x466da1)){var _0x164ca1=[];for(var _0x395b52=0x0;_0x395b52<_0x466da1[_0xced1('0x2f')];_0x395b52+=0x1){var _0x1d850b=_0x398264['CmHopper'][_0xced1('0x36')]({'where':{'ListId':_0x466da1[_0x395b52][_0xced1('0x18')],'ContactId':_0x466da1[_0x395b52]['ContactId'],'VoiceQueueId':_0x466da1[_0x395b52][_0xced1('0x37')],'CampaignId':_0x466da1[_0x395b52][_0xced1('0x38')]}});_0x164ca1['push'](_0x1d850b);}return BPromise[_0xced1('0x39')](_0x164ca1);}})[_0xced1('0x21')](function(_0x2dd0d6){logger[_0xced1('0x3a')](_0xced1('0x3b'),util['inspect'](_0x2dd0d6,{'showHidden':![],'depth':null}));_0x52e873();})['catch'](function(_0x487094){logger[_0xced1('0x10')](_0xced1('0x3c'),util['inspect'](_0x487094,{'showHidden':![],'depth':null}));_0x52e873(_0x487094);});}}});};