0fcec909a006cacb24f1f7af7f027a4b6d5b6e81
[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 _0x414f=['priority','scheduledat','format','callbackUniqueid','YYYY-MM-DD\x20HH:mm:ss','catch','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopperFinal','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','ListId','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','VoiceQueue','findAll','outbound','dialCheckDuplicateType','CmList','Lists','length','always','onlyIfOpen','BlackLists','CmHopperBlack','cmContact,\x20%s,\x20%s','message','Campaign','List\x20not\x20found','isEmpty','destroy','ContactId','VoiceQueueId','CampaignId','push','all','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./cmContact.attributes','exports','CmContact','cm_contacts','phone','firstName','lastName','mobile','fax','email','FULLTEXT','models','get','error','cmContact','afterCreate','inspect','CmHopper','findOne','then','isNil','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create'];(function(_0x597eb2,_0x165f5c){var _0x56875f=function(_0x5de36e){while(--_0x5de36e){_0x597eb2['push'](_0x597eb2['shift']());}};_0x56875f(++_0x165f5c);}(_0x414f,0x13f));var _0xf414=function(_0x46b057,_0x25aa56){_0x46b057=_0x46b057-0x0;var _0x25cf84=_0x414f[_0x46b057];return _0x25cf84;};'use strict';var _=require(_0xf414('0x0'));var util=require('util');var logger=require(_0xf414('0x1'))(_0xf414('0x2'));var moment=require('moment');var BPromise=require(_0xf414('0x3'));var rp=require(_0xf414('0x4'));var fs=require('fs');var path=require(_0xf414('0x5'));var rimraf=require(_0xf414('0x6'));var config=require(_0xf414('0x7'));var attributes=require(_0xf414('0x8'));module[_0xf414('0x9')]=function(_0x5dda1d,_0x3be83a){return _0x5dda1d['define'](_0xf414('0xa'),attributes,{'tableName':_0xf414('0xb'),'paranoid':!![],'indexes':[{'name':_0xf414('0xc'),'fields':['phone']},{'name':'fti_cm_contacts','fields':[_0xf414('0xd'),_0xf414('0xe'),_0xf414('0xc'),_0xf414('0xf'),_0xf414('0x10'),_0xf414('0x11')],'type':_0xf414('0x12')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x37edf9,_0x524e20,_0x5d2ff0){var _0xce51ad=_0x5dda1d[_0xf414('0x13')];var _0x1987f2=_0x37edf9[_0xf414('0x14')]({'plain':!![]});function _0x9be4f8(){return function(_0x488d03){logger[_0xf414('0x15')](_0xf414('0x16'),_0xf414('0x17'),util[_0xf414('0x18')](_0x488d03,{'showHidden':![],'depth':null}));};}var _0x99bbd1=function(_0x5da0b7){return new BPromise(function(_0x270383,_0x107a83){_0xce51ad[_0xf414('0x19')][_0xf414('0x1a')]({'where':{'phone':_0x1987f2[_0xf414('0xc')],'VoiceQueueId':_0x5da0b7['id']}})[_0xf414('0x1b')](function(_0x32651e){if(!_[_0xf414('0x1c')](_0x32651e)){throw new Error('cmContact,\x20afterCreate\x20'+_0x1987f2[_0xf414('0xc')]+_0xf414('0x1d')+_0x5da0b7['id']);}return _0xce51ad[_0xf414('0x19')][_0xf414('0x1e')]({'phone':_0x1987f2[_0xf414('0xc')],'ContactId':_0x1987f2['id'],'ListId':_0x1987f2['ListId'],'priority':_0x1987f2[_0xf414('0x1f')]?_0x1987f2['priority']:0x2,'scheduledat':_0x1987f2['scheduledat']?_0x1987f2[_0xf414('0x20')]:moment()[_0xf414('0x21')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x1987f2['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x1987f2['callbackUniqueid']?_0x1987f2[_0xf414('0x22')]:undefined,'callbackat':_0x1987f2[_0xf414('0x22')]?moment()[_0xf414('0x21')](_0xf414('0x23')):undefined,'VoiceQueueId':_0x5da0b7['id']});})[_0xf414('0x24')](function(_0x24df6d){_0x107a83(_0x24df6d);});});};var _0x3bbbe8=function(_0x1e116c){return new BPromise(function(_0x1dbfa9,_0x58217d){_0xce51ad[_0xf414('0x19')][_0xf414('0x1a')]({'where':{'phone':_0x1987f2[_0xf414('0xc')],'VoiceQueueId':_0x1e116c['id']}})['then'](function(_0x8bd1d0){if(!_[_0xf414('0x1c')](_0x8bd1d0)){throw new Error(_0xf414('0x25')+_0x1987f2[_0xf414('0xc')]+_0xf414('0x26')+_0x1e116c['id']);}return _0xce51ad[_0xf414('0x27')][_0xf414('0x1a')]({'where':{'calleridnum':_0x1987f2[_0xf414('0xc')],'VoiceQueueId':_0x1e116c['id']}});})['then'](function(_0x2f9cb3){if(!_['isNil'](_0x2f9cb3)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x1987f2[_0xf414('0xc')]+_0xf414('0x28')+_0x1e116c['id']);}return _0xce51ad[_0xf414('0x19')][_0xf414('0x1e')]({'phone':_0x1987f2[_0xf414('0xc')],'ContactId':_0x1987f2['id'],'ListId':_0x1987f2[_0xf414('0x29')],'priority':_0x1987f2['priority']?_0x1987f2['priority']:0x2,'scheduledat':_0x1987f2[_0xf414('0x20')]?_0x1987f2[_0xf414('0x20')]:moment()[_0xf414('0x21')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x1987f2[_0xf414('0x22')]?!![]:![],'callbackuniqueid':_0x1987f2['callbackUniqueid']?_0x1987f2['callbackUniqueid']:undefined,'callbackat':_0x1987f2[_0xf414('0x22')]?moment()[_0xf414('0x21')](_0xf414('0x23')):undefined,'VoiceQueueId':_0x1e116c['id']});})['catch'](function(_0x578019){_0x58217d(_0x578019);});});};function _0xbf586f(){return function(_0x56f854){logger[_0xf414('0x15')](_0xf414('0x16'),_0xf414('0x17'),util[_0xf414('0x18')](_0x56f854,{'showHidden':![],'depth':null}));};}var _0x5e66c0=function(_0x23c599){return new BPromise(function(_0x5d934c,_0x4a0287){_0xce51ad[_0xf414('0x19')][_0xf414('0x1a')]({'where':{'phone':_0x1987f2[_0xf414('0xc')],'CampaignId':_0x23c599['id']}})[_0xf414('0x1b')](function(_0xba368){if(!_[_0xf414('0x1c')](_0xba368)){throw new Error(_0xf414('0x25')+_0x1987f2[_0xf414('0xc')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x23c599['id']);}return _0xce51ad['CmHopper'][_0xf414('0x1e')]({'phone':_0x1987f2[_0xf414('0xc')],'ContactId':_0x1987f2['id'],'ListId':_0x1987f2[_0xf414('0x29')],'priority':_0x1987f2['priority']?_0x1987f2['priority']:0x2,'scheduledat':_0x1987f2[_0xf414('0x20')]?_0x1987f2['scheduledat']:moment()[_0xf414('0x21')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x1987f2[_0xf414('0x22')]?!![]:![],'callbackuniqueid':_0x1987f2[_0xf414('0x22')]?_0x1987f2['callbackUniqueid']:undefined,'callbackat':_0x1987f2[_0xf414('0x22')]?moment()[_0xf414('0x21')](_0xf414('0x23')):undefined,'CampaignId':_0x23c599['id']});})['catch'](function(_0x32a536){_0x4a0287(_0x32a536);});});};var _0x43022b=function(_0x1f57d3){return new BPromise(function(_0x7124aa,_0x3e42b6){_0xce51ad[_0xf414('0x19')]['findOne']({'where':{'phone':_0x1987f2[_0xf414('0xc')],'CampaignId':_0x1f57d3['id']}})[_0xf414('0x1b')](function(_0xd7c73c){if(!_[_0xf414('0x1c')](_0xd7c73c)){throw new Error(_0xf414('0x25')+_0x1987f2[_0xf414('0xc')]+_0xf414('0x2a')+_0x1f57d3['id']);}return _0xce51ad[_0xf414('0x27')][_0xf414('0x1a')]({'where':{'calleridnum':_0x1987f2['phone'],'CampaignId':_0x1f57d3['id']}});})[_0xf414('0x1b')](function(_0x26f041){if(!_[_0xf414('0x1c')](_0x26f041)){throw new Error(_0xf414('0x2b')+_0x1987f2[_0xf414('0xc')]+_0xf414('0x2c')+_0x1f57d3['id']);}return _0xce51ad[_0xf414('0x19')][_0xf414('0x1e')]({'phone':_0x1987f2[_0xf414('0xc')],'ContactId':_0x1987f2['id'],'ListId':_0x1987f2[_0xf414('0x29')],'priority':_0x1987f2[_0xf414('0x1f')]?_0x1987f2[_0xf414('0x1f')]:0x2,'scheduledat':_0x1987f2[_0xf414('0x20')]?_0x1987f2[_0xf414('0x20')]:moment()[_0xf414('0x21')](_0xf414('0x23')),'callback':_0x1987f2[_0xf414('0x22')]?!![]:![],'callbackuniqueid':_0x1987f2['callbackUniqueid']?_0x1987f2[_0xf414('0x22')]:undefined,'callbackat':_0x1987f2[_0xf414('0x22')]?moment()['format'](_0xf414('0x23')):undefined,'CampaignId':_0x1f57d3['id']});})[_0xf414('0x24')](function(_0x56c830){_0x3e42b6(_0x56c830);});});};if(_0x1987f2[_0xf414('0x29')]){_0xce51ad[_0xf414('0x2d')][_0xf414('0x2e')]({'where':{'type':_0xf414('0x2f')},'attributes':['id',_0xf414('0x30')],'include':[{'model':_0xce51ad[_0xf414('0x31')],'as':_0xf414('0x32'),'where':{'id':_0x1987f2['ListId']}}]})[_0xf414('0x1b')](function(_0x35120f){if(_0x35120f){var _0x190723=[];for(var _0x1129c2=0x0,_0x109b54;_0x1129c2<_0x35120f[_0xf414('0x33')];_0x1129c2+=0x1){_0x109b54=_0x35120f[_0x1129c2][_0xf414('0x14')]({'plain':!![]});switch(_0x109b54[_0xf414('0x30')]){case _0xf414('0x34'):_0x3bbbe8(_0x109b54)['catch'](_0x9be4f8());break;case _0xf414('0x35'):_0x99bbd1(_0x109b54)[_0xf414('0x24')](_0x9be4f8());break;default:_0xce51ad[_0xf414('0x19')][_0xf414('0x1e')]({'phone':_0x1987f2['phone'],'ContactId':_0x1987f2['id'],'ListId':_0x1987f2['ListId'],'scheduledat':_0x1987f2[_0xf414('0x20')]?_0x1987f2[_0xf414('0x20')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x1987f2[_0xf414('0x1f')]?_0x1987f2[_0xf414('0x1f')]:0x2,'callback':_0x1987f2[_0xf414('0x22')]?!![]:![],'callbackuniqueid':_0x1987f2[_0xf414('0x22')]?_0x1987f2[_0xf414('0x22')]:undefined,'callbackat':_0x1987f2[_0xf414('0x22')]?moment()[_0xf414('0x21')](_0xf414('0x23')):undefined,'VoiceQueueId':_0x109b54['id']})[_0xf414('0x24')](_0x9be4f8());}}}})[_0xf414('0x1b')](function(){return _0xce51ad[_0xf414('0x2d')][_0xf414('0x2e')]({'where':{'type':_0xf414('0x2f')},'attributes':['id'],'include':[{'model':_0xce51ad[_0xf414('0x31')],'as':_0xf414('0x36'),'where':{'id':_0x1987f2[_0xf414('0x29')]}}]})['then'](function(_0x4741af){if(_0x4741af){var _0x448cd6=[];for(var _0x519f1a=0x0,_0x2c02db;_0x519f1a<_0x4741af[_0xf414('0x33')];_0x519f1a+=0x1){_0x2c02db=_0x4741af[_0x519f1a][_0xf414('0x14')]({'plain':!![]});_0xce51ad[_0xf414('0x37')][_0xf414('0x1e')]({'phone':_0x1987f2[_0xf414('0xc')],'ContactId':_0x1987f2['id'],'ListId':_0x1987f2['ListId'],'VoiceQueueId':_0x2c02db['id']})[_0xf414('0x24')](function(_0x5b5b69){logger['error'](_0xf414('0x38'),_0xf414('0x17'),_0x5b5b69[_0xf414('0x39')]);});}}});})['then'](function(){return _0xce51ad[_0xf414('0x3a')][_0xf414('0x2e')]({'attributes':['id',_0xf414('0x30')],'include':[{'model':_0xce51ad[_0xf414('0x31')],'as':_0xf414('0x32'),'where':{'id':_0x1987f2[_0xf414('0x29')]}}]})['then'](function(_0x1f0324){if(_0x1f0324){var _0x4ca376=[];for(var _0x51a9aa=0x0,_0x1a8f2d;_0x51a9aa<_0x1f0324[_0xf414('0x33')];_0x51a9aa+=0x1){_0x1a8f2d=_0x1f0324[_0x51a9aa]['get']({'plain':!![]});switch(_0x1a8f2d['dialCheckDuplicateType']){case'always':_0x43022b(_0x1a8f2d)['catch'](_0xbf586f());break;case _0xf414('0x35'):_0x5e66c0(_0x1a8f2d)[_0xf414('0x24')](_0xbf586f());break;default:_0xce51ad[_0xf414('0x19')]['create']({'phone':_0x1987f2[_0xf414('0xc')],'ContactId':_0x1987f2['id'],'ListId':_0x1987f2[_0xf414('0x29')],'scheduledat':_0x1987f2[_0xf414('0x20')]?_0x1987f2[_0xf414('0x20')]:moment()[_0xf414('0x21')](_0xf414('0x23')),'priority':_0x1987f2[_0xf414('0x1f')]?_0x1987f2['priority']:0x2,'callback':_0x1987f2[_0xf414('0x22')]?!![]:![],'callbackuniqueid':_0x1987f2[_0xf414('0x22')]?_0x1987f2['callbackUniqueid']:undefined,'callbackat':_0x1987f2[_0xf414('0x22')]?moment()[_0xf414('0x21')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x1a8f2d['id']})[_0xf414('0x24')](_0xbf586f());}}}});})['then'](function(){return _0xce51ad[_0xf414('0x3a')]['findAll']({'attributes':['id'],'include':[{'model':_0xce51ad[_0xf414('0x31')],'as':'BlackLists','where':{'id':_0x1987f2[_0xf414('0x29')]}}]})[_0xf414('0x1b')](function(_0xe3266e){if(_0xe3266e){var _0x19b089=[];for(var _0x18a884=0x0,_0x51ad9f;_0x18a884<_0xe3266e[_0xf414('0x33')];_0x18a884+=0x1){_0x51ad9f=_0xe3266e[_0x18a884][_0xf414('0x14')]({'plain':!![]});_0xce51ad[_0xf414('0x37')]['create']({'phone':_0x1987f2[_0xf414('0xc')],'ContactId':_0x1987f2['id'],'ListId':_0x1987f2[_0xf414('0x29')],'CampaignId':_0x51ad9f['id']})[_0xf414('0x24')](function(_0x111386){logger['error'](_0xf414('0x38'),'afterCreate',_0x111386['message']);});}}});})['then'](function(){_0x5d2ff0();})[_0xf414('0x24')](function(_0xc9698){logger['error'](_0xf414('0x38'),_0xf414('0x17'),_0xc9698[_0xf414('0x39')]);_0x5d2ff0(_0xc9698);});}else{_0x5d2ff0(new Error(_0xf414('0x3b')));}},'afterDestroy':function(_0x4b93b2,_0x4d30f0,_0xc5d66e){var _0x40762d=_0x5dda1d[_0xf414('0x13')];var _0x2131fb=_0x4b93b2[_0xf414('0x14')]({'plain':!![]});return _0x40762d[_0xf414('0x19')][_0xf414('0x2e')]({'raw':!![],'where':{'ListId':_0x2131fb[_0xf414('0x29')],'ContactId':_0x2131fb['id']}})[_0xf414('0x1b')](function(_0x2827fd){if(!_[_0xf414('0x3c')](_0x2827fd)){var _0x167e65=[];for(var _0x125808=0x0;_0x125808<_0x2827fd[_0xf414('0x33')];_0x125808+=0x1){var _0x4f16a1=_0x40762d[_0xf414('0x19')][_0xf414('0x3d')]({'where':{'ListId':_0x2827fd[_0x125808][_0xf414('0x29')],'ContactId':_0x2827fd[_0x125808][_0xf414('0x3e')],'VoiceQueueId':_0x2827fd[_0x125808][_0xf414('0x3f')],'CampaignId':_0x2827fd[_0x125808][_0xf414('0x40')]}});_0x167e65[_0xf414('0x41')](_0x4f16a1);}return BPromise[_0xf414('0x42')](_0x167e65);}})[_0xf414('0x1b')](function(_0x4ce248){logger[_0xf414('0x43')](_0xf414('0x44'),util[_0xf414('0x18')](_0x4ce248,{'showHidden':![],'depth':null}));_0xc5d66e();})['catch'](function(_0x19e3c9){logger[_0xf414('0x15')](_0xf414('0x45'),util[_0xf414('0x18')](_0x19e3c9,{'showHidden':![],'depth':null}));_0xc5d66e(_0x19e3c9);});}}});};