Built motion from commit 639a1a7f.|2.6.19
[motion2.git] / server / api / userNotification / userNotification.controller.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 _0x49a7=['../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./userNotification.socket','register','sendStatus','status','json','offset','undefined','limit','set','Content-Range','save','then','destroy','end','error','stack','name','send','sendUserNotification','body','hasOwnProperty','TemplateId','Sequelize','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','ValidationError','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','chatqueue','faxqueue','smsqueue','voicequeue','user','some','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','beep','SenderId','recipientsId','sortBy','UserNotification','create','emit','userNotification:send','text','Template','findOne','Invalid\x20\x27TemplateId\x27\x20parameter','html','catch','forEach','ids','includes','queue','replace','Queue','push','all','union','flatten','map','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils'];(function(_0x49e584,_0x2886f8){var _0x58b1be=function(_0x40397c){while(--_0x40397c){_0x49e584['push'](_0x49e584['shift']());}};_0x58b1be(++_0x2886f8);}(_0x49a7,0x1cc));var _0x749a=function(_0x1596af,_0x4f063c){_0x1596af=_0x1596af-0x0;var _0xc82b31=_0x49a7[_0x1596af];return _0xc82b31;};'use strict';var emlformat=require(_0x749a('0x0'));var rimraf=require(_0x749a('0x1'));var zipdir=require(_0x749a('0x2'));var jsonpatch=require(_0x749a('0x3'));var rp=require(_0x749a('0x4'));var moment=require(_0x749a('0x5'));var BPromise=require(_0x749a('0x6'));var Mustache=require(_0x749a('0x7'));var util=require(_0x749a('0x8'));var path=require(_0x749a('0x9'));var sox=require('sox');var csv=require(_0x749a('0xa'));var ejs=require(_0x749a('0xb'));var fs=require('fs');var fs_extra=require(_0x749a('0xc'));var _=require(_0x749a('0xd'));var squel=require(_0x749a('0xe'));var crypto=require(_0x749a('0xf'));var jsforce=require(_0x749a('0x10'));var deskjs=require(_0x749a('0x11'));var toCsv=require(_0x749a('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x749a('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x749a('0x13'));var as=require(_0x749a('0x14'));var hardwareService=require(_0x749a('0x15'));var logger=require(_0x749a('0x16'))(_0x749a('0x17'));var utils=require(_0x749a('0x18'));var config=require(_0x749a('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0x749a('0x1a'))['db'];config[_0x749a('0x1b')]=_[_0x749a('0x1c')](config[_0x749a('0x1b')],{'host':_0x749a('0x1d'),'port':0x18eb});var socket=require(_0x749a('0x1e'))(new Redis(config[_0x749a('0x1b')]));require(_0x749a('0x1f'))[_0x749a('0x20')](socket);function respondWithStatusCode(_0x5175dc,_0x2a1786){_0x2a1786=_0x2a1786||0xcc;return function(_0x243327){if(_0x243327){return _0x5175dc[_0x749a('0x21')](_0x2a1786);}return _0x5175dc[_0x749a('0x22')](_0x2a1786)['end']();};}function respondWithResult(_0x28cf00,_0x3203a9){_0x3203a9=_0x3203a9||0xc8;return function(_0x466d02){if(_0x466d02){return _0x28cf00['status'](_0x3203a9)[_0x749a('0x23')](_0x466d02);}};}function respondWithFilteredResult(_0x149875,_0x3e1036){return function(_0x49954b){if(_0x49954b){var _0x1fee72=typeof _0x3e1036[_0x749a('0x24')]===_0x749a('0x25')&&typeof _0x3e1036['limit']===_0x749a('0x25');var _0x19d7d8=_0x49954b['count'];var _0x35baf0=_0x1fee72?0x0:_0x3e1036[_0x749a('0x24')];var _0x282219=_0x1fee72?_0x49954b['count']:_0x3e1036['offset']+_0x3e1036[_0x749a('0x26')];var _0x183467;if(_0x282219>=_0x19d7d8){_0x282219=_0x19d7d8;_0x183467=0xc8;}else{_0x183467=0xce;}_0x149875[_0x749a('0x22')](_0x183467);return _0x149875[_0x749a('0x27')](_0x749a('0x28'),_0x35baf0+'-'+_0x282219+'/'+_0x19d7d8)[_0x749a('0x23')](_0x49954b);}return null;};}function patchUpdates(_0xbb70c0){return function(_0x54cb3c){try{jsonpatch['apply'](_0x54cb3c,_0xbb70c0,!![]);}catch(_0x5c6c58){return BPromise['reject'](_0x5c6c58);}return _0x54cb3c[_0x749a('0x29')]();};}function saveUpdates(_0x308416,_0x4290d7){return function(_0x1629c7){if(_0x1629c7){return _0x1629c7['update'](_0x308416)[_0x749a('0x2a')](function(_0x4cc17b){return _0x4cc17b;});}return null;};}function removeEntity(_0x40438a,_0x3e0213){return function(_0x503dac){if(_0x503dac){return _0x503dac[_0x749a('0x2b')]()[_0x749a('0x2a')](function(){_0x40438a[_0x749a('0x22')](0xcc)[_0x749a('0x2c')]();});}};}function handleEntityNotFound(_0x36aad9,_0x303250){return function(_0x5ed141){if(!_0x5ed141){_0x36aad9[_0x749a('0x21')](0x194);}return _0x5ed141;};}function handleError(_0x2c45f5,_0x2ada21){_0x2ada21=_0x2ada21||0x1f4;return function(_0x17d638){logger[_0x749a('0x2d')](_0x17d638[_0x749a('0x2e')]);if(_0x17d638[_0x749a('0x2f')]){delete _0x17d638[_0x749a('0x2f')];}_0x2c45f5[_0x749a('0x22')](_0x2ada21)[_0x749a('0x30')](_0x17d638);};}exports[_0x749a('0x31')]=function(_0x42c98d,_0x50ef2e,_0x1484ae){if(!_0x42c98d[_0x749a('0x32')][_0x749a('0x33')]('text')&&!_0x42c98d[_0x749a('0x32')]['hasOwnProperty'](_0x749a('0x34'))){throw new db[(_0x749a('0x35'))]['ValidationError'](_0x749a('0x36'));}else{if(_0x42c98d[_0x749a('0x32')][_0x749a('0x33')]('TemplateId')&&!_0x42c98d[_0x749a('0x32')]['hasOwnProperty'](_0x749a('0x37'))){throw new db[(_0x749a('0x35'))][(_0x749a('0x38'))](_0x749a('0x39'));}if(!_0x42c98d[_0x749a('0x32')][_0x749a('0x33')](_0x749a('0x3a'))){throw new db[(_0x749a('0x35'))][(_0x749a('0x38'))](_0x749a('0x3b'));}else{try{var _0x4eafc5=JSON['parse'](_0x42c98d[_0x749a('0x32')][_0x749a('0x3a')]);}catch(_0x4a68fc){logger[_0x749a('0x2d')](_0x4a68fc);throw new db[(_0x749a('0x35'))][(_0x749a('0x38'))]('Invalid\x20\x27recipients\x27\x20object');}var _0x1193de=[_0x749a('0x3c'),_0x749a('0x3d'),'mailqueue','openchannelqueue',_0x749a('0x3e'),_0x749a('0x3f'),'whatsappqueue','team',_0x749a('0x40')];if(_[_0x749a('0x41')](_0x4eafc5,function(_0x5a864f){return!_['includes'](_0x1193de,_0x5a864f[_0x749a('0x42')][_0x749a('0x43')]());})){throw new db[(_0x749a('0x35'))][(_0x749a('0x38'))](_0x749a('0x44'));}}}var _0x238b0d={};_0x238b0d[_0x749a('0x45')]=_0x42c98d[_0x749a('0x32')][_0x749a('0x33')]('senderName')?_0x42c98d[_0x749a('0x32')][_0x749a('0x45')]:_0x42c98d['user'][_0x749a('0x46')];_0x238b0d['recipientsDescription']=_['isEmpty'](_0x42c98d[_0x749a('0x32')]['recipientsDescription'])?null:_0x42c98d[_0x749a('0x32')][_0x749a('0x47')];_0x238b0d[_0x749a('0x48')]=_0x42c98d[_0x749a('0x32')][_0x749a('0x48')]||![];_0x238b0d[_0x749a('0x49')]=_0x42c98d['user']['id'];return getContent(_0x42c98d[_0x749a('0x32')])['then'](function(_0x466277){_0x238b0d[_0x749a('0x32')]=_0x466277;return getRecipients(_0x4eafc5);})['then'](function(_0x582f6c){_0x238b0d[_0x749a('0x4a')]=_[_0x749a('0x4b')](_0x582f6c)['join'](',');return db['sequelize']['transaction'](function(_0x2b26b4){return db[_0x749a('0x4c')][_0x749a('0x4d')](_0x238b0d,{'raw':!![],'transaction':_0x2b26b4})[_0x749a('0x2a')](function(_0x508e10){var _0x23dda6={'sender':_0x238b0d[_0x749a('0x45')],'description':_0x238b0d['recipientsDescription'],'content':_0x238b0d[_0x749a('0x32')],'beep':_0x238b0d[_0x749a('0x48')]};_0x582f6c['forEach'](function(_0xf1653){_0x23dda6['recipient']=_0xf1653;socket[_0x749a('0x4e')](_0x749a('0x4f'),_0x23dda6);});return _0x508e10;});});})[_0x749a('0x2a')](respondWithResult(_0x50ef2e,0xc9))['catch'](handleError(_0x50ef2e,null));};function getContent(_0x4940e7){return new BPromise(function(_0x155af9,_0x1348c7){if(_0x4940e7[_0x749a('0x50')]){_0x155af9(_0x4940e7['text']);return;}return db[_0x749a('0x51')][_0x749a('0x52')]({'attributes':['html'],'where':{'id':_0x4940e7[_0x749a('0x34')]},'raw':!![]})[_0x749a('0x2a')](function(_0x4a1726){if(!_0x4a1726)throw new db['Sequelize'][(_0x749a('0x38'))](_0x749a('0x53'));var _0x252a08=Mustache['render'](_0x4a1726[_0x749a('0x54')],_0x4940e7['view']);_0x155af9(_0x252a08);})[_0x749a('0x55')](function(_0x171956){_0x1348c7(_0x171956);});});}function getRecipients(_0x1aec05){return new BPromise(function(_0x456f5b,_0x19ed12){var _0x1f0c48=[];var _0x5b1658=[];_0x1aec05[_0x749a('0x56')](function(_0x15eb33){var _0x2f564c=_['startCase'](_0x15eb33[_0x749a('0x42')][_0x749a('0x43')]());if(_0x2f564c==='User'){_0x1f0c48=_['union'](_0x1f0c48,_0x15eb33[_0x749a('0x57')]);}else{if(_[_0x749a('0x58')](_0x2f564c,_0x749a('0x59')))_0x2f564c=_0x2f564c[_0x749a('0x5a')](_0x749a('0x59'),_0x749a('0x5b'));_0x15eb33[_0x749a('0x57')]['forEach'](function(_0x126a6c){_0x5b1658[_0x749a('0x5c')](getAgents(_0x2f564c,_0x126a6c));});}});return BPromise[_0x749a('0x5d')](_0x5b1658)[_0x749a('0x2a')](function(_0x179433){_0x1f0c48=_[_0x749a('0x5e')](_0x1f0c48,_[_0x749a('0x5f')](_0x179433));_0x456f5b(_0x1f0c48);})[_0x749a('0x55')](function(_0x3a8cce){_0x19ed12(_0x3a8cce);});});}function getAgents(_0x2560b6,_0x42c0de){return new BPromise(function(_0x56427a,_0x2813aa){return db[_0x2560b6][_0x749a('0x52')]({'where':{'id':_0x42c0de}})['then'](function(_0x4610ac){return _0x4610ac['getAgents']({'attributes':['id'],'raw':!![]})[_0x749a('0x2a')](function(_0x425141){var _0x1dbe1c=_[_0x749a('0x60')](_0x425141,'id');_0x56427a(_0x1dbe1c);});})[_0x749a('0x55')](function(_0x2a5956){_0x2813aa(_0x2a5956);});});}