Built motion from commit (unavailable).|2.5.11
[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 _0x87d8=['email','FULLTEXT','models','get','error','afterCreate','inspect','then','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create','priority','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','CmHopper','findOne','isNil','\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','ListId','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','catch','VoiceQueue','outbound','dialCheckDuplicateType','Lists','length','CmList','BlackLists','CmHopperBlack','cmContact,\x20%s,\x20%s','Campaign','onlyIfOpen','message','List\x20not\x20found','isEmpty','destroy','VoiceQueueId','push','all','[CmContact][afterDestroy][Succesfull]','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./cmContact.attributes','exports','define','CmContact','phone','mobile','fax'];(function(_0x29bb0a,_0x4a49e6){var _0x1725e4=function(_0xc984bd){while(--_0xc984bd){_0x29bb0a['push'](_0x29bb0a['shift']());}};_0x1725e4(++_0x4a49e6);}(_0x87d8,0x1a9));var _0x887d=function(_0x5d92c2,_0x26d815){_0x5d92c2=_0x5d92c2-0x0;var _0x415601=_0x87d8[_0x5d92c2];return _0x415601;};'use strict';var _=require('lodash');var util=require(_0x887d('0x0'));var logger=require(_0x887d('0x1'))(_0x887d('0x2'));var moment=require(_0x887d('0x3'));var BPromise=require(_0x887d('0x4'));var rp=require(_0x887d('0x5'));var fs=require('fs');var path=require(_0x887d('0x6'));var rimraf=require(_0x887d('0x7'));var config=require(_0x887d('0x8'));var attributes=require(_0x887d('0x9'));module[_0x887d('0xa')]=function(_0x256742,_0x317a7){return _0x256742[_0x887d('0xb')](_0x887d('0xc'),attributes,{'tableName':'cm_contacts','paranoid':!![],'indexes':[{'name':_0x887d('0xd'),'fields':[_0x887d('0xd')]},{'name':'fti_cm_contacts','fields':['firstName','lastName','phone',_0x887d('0xe'),_0x887d('0xf'),_0x887d('0x10')],'type':_0x887d('0x11')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x492b34,_0x5c8f3a,_0x1aba20){var _0x1ab39e=_0x256742[_0x887d('0x12')];var _0x3989d7=_0x492b34[_0x887d('0x13')]({'plain':!![]});function _0x40b460(){return function(_0x947424){logger[_0x887d('0x14')]('cmContact',_0x887d('0x15'),util[_0x887d('0x16')](_0x947424,{'showHidden':![],'depth':null}));};}var _0x8004b0=function(_0x5e6c9a){return new BPromise(function(_0xcc860b,_0x1d243f){_0x1ab39e['CmHopper']['findOne']({'where':{'phone':_0x3989d7['phone'],'VoiceQueueId':_0x5e6c9a['id']}})[_0x887d('0x17')](function(_0xbebeee){if(!_['isNil'](_0xbebeee)){throw new Error(_0x887d('0x18')+_0x3989d7[_0x887d('0xd')]+_0x887d('0x19')+_0x5e6c9a['id']);}return _0x1ab39e['CmHopper'][_0x887d('0x1a')]({'phone':_0x3989d7[_0x887d('0xd')],'ContactId':_0x3989d7['id'],'ListId':_0x3989d7['ListId'],'priority':_0x3989d7[_0x887d('0x1b')]?_0x3989d7['priority']:0x2,'scheduledat':_0x3989d7[_0x887d('0x1c')]?_0x3989d7[_0x887d('0x1c')]:moment()[_0x887d('0x1d')](_0x887d('0x1e')),'callback':_0x3989d7[_0x887d('0x1f')]?!![]:![],'callbackuniqueid':_0x3989d7[_0x887d('0x1f')]?_0x3989d7[_0x887d('0x1f')]:undefined,'callbackat':_0x3989d7[_0x887d('0x1f')]?moment()[_0x887d('0x1d')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x5e6c9a['id']});})['catch'](function(_0x9c59e3){_0x1d243f(_0x9c59e3);});});};var _0x4e0c55=function(_0x2aca37){return new BPromise(function(_0x311aed,_0x34955d){_0x1ab39e[_0x887d('0x20')][_0x887d('0x21')]({'where':{'phone':_0x3989d7[_0x887d('0xd')],'VoiceQueueId':_0x2aca37['id']}})['then'](function(_0x332bed){if(!_[_0x887d('0x22')](_0x332bed)){throw new Error('cmContact,\x20afterCreate\x20'+_0x3989d7['phone']+_0x887d('0x23')+_0x2aca37['id']);}return _0x1ab39e[_0x887d('0x24')][_0x887d('0x21')]({'where':{'calleridnum':_0x3989d7[_0x887d('0xd')],'VoiceQueueId':_0x2aca37['id']}});})['then'](function(_0x3a6fe6){if(!_[_0x887d('0x22')](_0x3a6fe6)){throw new Error(_0x887d('0x25')+_0x3989d7['phone']+_0x887d('0x26')+_0x2aca37['id']);}return _0x1ab39e[_0x887d('0x20')][_0x887d('0x1a')]({'phone':_0x3989d7['phone'],'ContactId':_0x3989d7['id'],'ListId':_0x3989d7['ListId'],'priority':_0x3989d7[_0x887d('0x1b')]?_0x3989d7[_0x887d('0x1b')]:0x2,'scheduledat':_0x3989d7['scheduledat']?_0x3989d7['scheduledat']:moment()[_0x887d('0x1d')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x3989d7[_0x887d('0x1f')]?!![]:![],'callbackuniqueid':_0x3989d7[_0x887d('0x1f')]?_0x3989d7['callbackUniqueid']:undefined,'callbackat':_0x3989d7[_0x887d('0x1f')]?moment()[_0x887d('0x1d')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x2aca37['id']});})['catch'](function(_0x4c8f92){_0x34955d(_0x4c8f92);});});};function _0x2891e2(){return function(_0x3a6ce1){logger[_0x887d('0x14')](_0x887d('0x27'),_0x887d('0x15'),util['inspect'](_0x3a6ce1,{'showHidden':![],'depth':null}));};}var _0x2bc26e=function(_0x40ed2e){return new BPromise(function(_0x1eb641,_0x4febf7){_0x1ab39e['CmHopper'][_0x887d('0x21')]({'where':{'phone':_0x3989d7['phone'],'CampaignId':_0x40ed2e['id']}})['then'](function(_0x907c62){if(!_['isNil'](_0x907c62)){throw new Error(_0x887d('0x18')+_0x3989d7[_0x887d('0xd')]+_0x887d('0x28')+_0x40ed2e['id']);}return _0x1ab39e[_0x887d('0x20')]['create']({'phone':_0x3989d7[_0x887d('0xd')],'ContactId':_0x3989d7['id'],'ListId':_0x3989d7[_0x887d('0x29')],'priority':_0x3989d7[_0x887d('0x1b')]?_0x3989d7[_0x887d('0x1b')]:0x2,'scheduledat':_0x3989d7[_0x887d('0x1c')]?_0x3989d7['scheduledat']:moment()[_0x887d('0x1d')](_0x887d('0x1e')),'callback':_0x3989d7['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x3989d7[_0x887d('0x1f')]?_0x3989d7['callbackUniqueid']:undefined,'callbackat':_0x3989d7[_0x887d('0x1f')]?moment()[_0x887d('0x1d')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x40ed2e['id']});})['catch'](function(_0x49fa00){_0x4febf7(_0x49fa00);});});};var _0x2d18ee=function(_0x3d4428){return new BPromise(function(_0x35fb1f,_0x4708ab){_0x1ab39e[_0x887d('0x20')][_0x887d('0x21')]({'where':{'phone':_0x3989d7[_0x887d('0xd')],'CampaignId':_0x3d4428['id']}})['then'](function(_0xbe9250){if(!_['isNil'](_0xbe9250)){throw new Error('cmContact,\x20afterCreate\x20'+_0x3989d7['phone']+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x3d4428['id']);}return _0x1ab39e[_0x887d('0x24')][_0x887d('0x21')]({'where':{'calleridnum':_0x3989d7[_0x887d('0xd')],'CampaignId':_0x3d4428['id']}});})[_0x887d('0x17')](function(_0x4cc17a){if(!_[_0x887d('0x22')](_0x4cc17a)){throw new Error(_0x887d('0x25')+_0x3989d7['phone']+_0x887d('0x2a')+_0x3d4428['id']);}return _0x1ab39e['CmHopper'][_0x887d('0x1a')]({'phone':_0x3989d7['phone'],'ContactId':_0x3989d7['id'],'ListId':_0x3989d7['ListId'],'priority':_0x3989d7[_0x887d('0x1b')]?_0x3989d7['priority']:0x2,'scheduledat':_0x3989d7['scheduledat']?_0x3989d7[_0x887d('0x1c')]:moment()[_0x887d('0x1d')](_0x887d('0x1e')),'callback':_0x3989d7[_0x887d('0x1f')]?!![]:![],'callbackuniqueid':_0x3989d7['callbackUniqueid']?_0x3989d7['callbackUniqueid']:undefined,'callbackat':_0x3989d7[_0x887d('0x1f')]?moment()[_0x887d('0x1d')](_0x887d('0x1e')):undefined,'CampaignId':_0x3d4428['id']});})[_0x887d('0x2b')](function(_0x53161f){_0x4708ab(_0x53161f);});});};if(_0x3989d7[_0x887d('0x29')]){_0x1ab39e[_0x887d('0x2c')]['findAll']({'where':{'type':_0x887d('0x2d')},'attributes':['id',_0x887d('0x2e')],'include':[{'model':_0x1ab39e['CmList'],'as':_0x887d('0x2f'),'where':{'id':_0x3989d7['ListId']}}]})['then'](function(_0x4e1f2a){if(_0x4e1f2a){var _0x3c22f0=[];for(var _0x4644ec=0x0,_0x1d70bf;_0x4644ec<_0x4e1f2a[_0x887d('0x30')];_0x4644ec+=0x1){_0x1d70bf=_0x4e1f2a[_0x4644ec]['get']({'plain':!![]});switch(_0x1d70bf[_0x887d('0x2e')]){case'always':_0x4e0c55(_0x1d70bf)[_0x887d('0x2b')](_0x40b460());break;case'onlyIfOpen':_0x8004b0(_0x1d70bf)[_0x887d('0x2b')](_0x40b460());break;default:_0x1ab39e['CmHopper'][_0x887d('0x1a')]({'phone':_0x3989d7[_0x887d('0xd')],'ContactId':_0x3989d7['id'],'ListId':_0x3989d7['ListId'],'scheduledat':_0x3989d7[_0x887d('0x1c')]?_0x3989d7[_0x887d('0x1c')]:moment()[_0x887d('0x1d')](_0x887d('0x1e')),'priority':_0x3989d7['priority']?_0x3989d7[_0x887d('0x1b')]:0x2,'callback':_0x3989d7[_0x887d('0x1f')]?!![]:![],'callbackuniqueid':_0x3989d7[_0x887d('0x1f')]?_0x3989d7[_0x887d('0x1f')]:undefined,'callbackat':_0x3989d7[_0x887d('0x1f')]?moment()[_0x887d('0x1d')](_0x887d('0x1e')):undefined,'VoiceQueueId':_0x1d70bf['id']})[_0x887d('0x2b')](_0x40b460());}}}})[_0x887d('0x17')](function(){return _0x1ab39e[_0x887d('0x2c')]['findAll']({'where':{'type':_0x887d('0x2d')},'attributes':['id'],'include':[{'model':_0x1ab39e[_0x887d('0x31')],'as':_0x887d('0x32'),'where':{'id':_0x3989d7[_0x887d('0x29')]}}]})[_0x887d('0x17')](function(_0x18127c){if(_0x18127c){var _0x4e3a08=[];for(var _0x1c50f9=0x0,_0x24c558;_0x1c50f9<_0x18127c[_0x887d('0x30')];_0x1c50f9+=0x1){_0x24c558=_0x18127c[_0x1c50f9][_0x887d('0x13')]({'plain':!![]});_0x1ab39e[_0x887d('0x33')][_0x887d('0x1a')]({'phone':_0x3989d7[_0x887d('0xd')],'ContactId':_0x3989d7['id'],'ListId':_0x3989d7[_0x887d('0x29')],'VoiceQueueId':_0x24c558['id']})[_0x887d('0x2b')](function(_0x4d554c){logger['error'](_0x887d('0x34'),_0x887d('0x15'),_0x4d554c['message']);});}}});})[_0x887d('0x17')](function(){return _0x1ab39e[_0x887d('0x35')]['findAll']({'attributes':['id',_0x887d('0x2e')],'include':[{'model':_0x1ab39e['CmList'],'as':_0x887d('0x2f'),'where':{'id':_0x3989d7[_0x887d('0x29')]}}]})['then'](function(_0x7c4978){if(_0x7c4978){var _0x45e0c9=[];for(var _0x1dc2db=0x0,_0x4a1c7a;_0x1dc2db<_0x7c4978['length'];_0x1dc2db+=0x1){_0x4a1c7a=_0x7c4978[_0x1dc2db]['get']({'plain':!![]});switch(_0x4a1c7a['dialCheckDuplicateType']){case'always':_0x2d18ee(_0x4a1c7a)['catch'](_0x2891e2());break;case _0x887d('0x36'):_0x2bc26e(_0x4a1c7a)['catch'](_0x2891e2());break;default:_0x1ab39e['CmHopper'][_0x887d('0x1a')]({'phone':_0x3989d7['phone'],'ContactId':_0x3989d7['id'],'ListId':_0x3989d7[_0x887d('0x29')],'scheduledat':_0x3989d7[_0x887d('0x1c')]?_0x3989d7['scheduledat']:moment()[_0x887d('0x1d')](_0x887d('0x1e')),'priority':_0x3989d7[_0x887d('0x1b')]?_0x3989d7[_0x887d('0x1b')]:0x2,'callback':_0x3989d7[_0x887d('0x1f')]?!![]:![],'callbackuniqueid':_0x3989d7[_0x887d('0x1f')]?_0x3989d7[_0x887d('0x1f')]:undefined,'callbackat':_0x3989d7['callbackUniqueid']?moment()[_0x887d('0x1d')](_0x887d('0x1e')):undefined,'CampaignId':_0x4a1c7a['id']})[_0x887d('0x2b')](_0x2891e2());}}}});})[_0x887d('0x17')](function(){return _0x1ab39e['Campaign']['findAll']({'attributes':['id'],'include':[{'model':_0x1ab39e['CmList'],'as':_0x887d('0x32'),'where':{'id':_0x3989d7['ListId']}}]})[_0x887d('0x17')](function(_0x3c638c){if(_0x3c638c){var _0x35e524=[];for(var _0x4695e8=0x0,_0x8613a1;_0x4695e8<_0x3c638c[_0x887d('0x30')];_0x4695e8+=0x1){_0x8613a1=_0x3c638c[_0x4695e8]['get']({'plain':!![]});_0x1ab39e[_0x887d('0x33')]['create']({'phone':_0x3989d7[_0x887d('0xd')],'ContactId':_0x3989d7['id'],'ListId':_0x3989d7['ListId'],'CampaignId':_0x8613a1['id']})[_0x887d('0x2b')](function(_0x4d0d81){logger[_0x887d('0x14')]('cmContact,\x20%s,\x20%s',_0x887d('0x15'),_0x4d0d81[_0x887d('0x37')]);});}}});})[_0x887d('0x17')](function(){_0x1aba20();})[_0x887d('0x2b')](function(_0x5dce3d){logger[_0x887d('0x14')](_0x887d('0x34'),_0x887d('0x15'),_0x5dce3d[_0x887d('0x37')]);_0x1aba20(_0x5dce3d);});}else{_0x1aba20(new Error(_0x887d('0x38')));}},'afterDestroy':function(_0x49cdf3,_0x3fd965,_0xd29b64){var _0x57a16d=_0x256742[_0x887d('0x12')];var _0x225c7f=_0x49cdf3[_0x887d('0x13')]({'plain':!![]});return _0x57a16d[_0x887d('0x20')]['findAll']({'raw':!![],'where':{'ListId':_0x225c7f[_0x887d('0x29')],'ContactId':_0x225c7f['id']}})[_0x887d('0x17')](function(_0x40589e){if(!_[_0x887d('0x39')](_0x40589e)){var _0x504ff0=[];for(var _0x221a09=0x0;_0x221a09<_0x40589e[_0x887d('0x30')];_0x221a09+=0x1){var _0x22b874=_0x57a16d[_0x887d('0x20')][_0x887d('0x3a')]({'where':{'ListId':_0x40589e[_0x221a09][_0x887d('0x29')],'ContactId':_0x40589e[_0x221a09]['ContactId'],'VoiceQueueId':_0x40589e[_0x221a09][_0x887d('0x3b')],'CampaignId':_0x40589e[_0x221a09]['CampaignId']}});_0x504ff0[_0x887d('0x3c')](_0x22b874);}return BPromise[_0x887d('0x3d')](_0x504ff0);}})[_0x887d('0x17')](function(_0x1320c6){logger['info'](_0x887d('0x3e'),util[_0x887d('0x16')](_0x1320c6,{'showHidden':![],'depth':null}));_0xd29b64();})[_0x887d('0x2b')](function(_0x24c305){logger[_0x887d('0x14')]('[CmContact][afterDestroy][Error]',util[_0x887d('0x16')](_0x24c305,{'showHidden':![],'depth':null}));_0xd29b64(_0x24c305);});}}});};