Built motion from commit 775e2a94.|2.6.3
[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 _0xdc48=['create','forEach','recipient','userNotification:send','catch','Template','findOne','html','TemplateId','Invalid\x20\x27TemplateId\x27\x20parameter','startCase','toLowerCase','queue','Queue','push','all','union','map','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../mysqldb','redis','defaults','localhost','./userNotification.socket','register','sendStatus','status','end','json','undefined','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','error','stack','name','sendUserNotification','body','hasOwnProperty','text','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','recipients','Sequelize','Invalid\x20\x27recipients\x27\x20object','faxqueue','mailqueue','smsqueue','voicequeue','whatsappqueue','team','user','includes','model','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','isEmpty','beep','SenderId','recipientsId','join','sequelize','transaction'];(function(_0x47677f,_0x28c987){var _0xde4698=function(_0x459d60){while(--_0x459d60){_0x47677f['push'](_0x47677f['shift']());}};_0xde4698(++_0x28c987);}(_0xdc48,0xcc));var _0x8dc4=function(_0x592cbf,_0x4b0732){_0x592cbf=_0x592cbf-0x0;var _0x109b23=_0xdc48[_0x592cbf];return _0x109b23;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8dc4('0x0'));var zipdir=require(_0x8dc4('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8dc4('0x2'));var moment=require(_0x8dc4('0x3'));var BPromise=require(_0x8dc4('0x4'));var Mustache=require(_0x8dc4('0x5'));var util=require(_0x8dc4('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x8dc4('0x7'));var ejs=require(_0x8dc4('0x8'));var fs=require('fs');var fs_extra=require(_0x8dc4('0x9'));var _=require('lodash');var squel=require(_0x8dc4('0xa'));var crypto=require(_0x8dc4('0xb'));var jsforce=require(_0x8dc4('0xc'));var deskjs=require(_0x8dc4('0xd'));var toCsv=require(_0x8dc4('0x7'));var querystring=require(_0x8dc4('0xe'));var Papa=require(_0x8dc4('0xf'));var Redis=require('ioredis');var authService=require(_0x8dc4('0x10'));var qs=require(_0x8dc4('0x11'));var as=require(_0x8dc4('0x12'));var hardwareService=require(_0x8dc4('0x13'));var logger=require('../../config/logger')(_0x8dc4('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x8dc4('0x15'))['db'];config[_0x8dc4('0x16')]=_[_0x8dc4('0x17')](config[_0x8dc4('0x16')],{'host':_0x8dc4('0x18'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x8dc4('0x16')]));require(_0x8dc4('0x19'))[_0x8dc4('0x1a')](socket);function respondWithStatusCode(_0x5f0cce,_0x221bf7){_0x221bf7=_0x221bf7||0xcc;return function(_0x222a9f){if(_0x222a9f){return _0x5f0cce[_0x8dc4('0x1b')](_0x221bf7);}return _0x5f0cce[_0x8dc4('0x1c')](_0x221bf7)[_0x8dc4('0x1d')]();};}function respondWithResult(_0xde4cec,_0x404814){_0x404814=_0x404814||0xc8;return function(_0x2b2814){if(_0x2b2814){return _0xde4cec['status'](_0x404814)[_0x8dc4('0x1e')](_0x2b2814);}};}function respondWithFilteredResult(_0x45979f,_0x52d893){return function(_0x2ba9da){if(_0x2ba9da){var _0x11aa95=typeof _0x52d893['offset']==='undefined'&&typeof _0x52d893['limit']===_0x8dc4('0x1f');var _0x1ac079=_0x2ba9da[_0x8dc4('0x20')];var _0x505e5c=_0x11aa95?0x0:_0x52d893[_0x8dc4('0x21')];var _0x58174b=_0x11aa95?_0x2ba9da[_0x8dc4('0x20')]:_0x52d893[_0x8dc4('0x21')]+_0x52d893[_0x8dc4('0x22')];var _0x17dc94;if(_0x58174b>=_0x1ac079){_0x58174b=_0x1ac079;_0x17dc94=0xc8;}else{_0x17dc94=0xce;}_0x45979f[_0x8dc4('0x1c')](_0x17dc94);return _0x45979f[_0x8dc4('0x23')](_0x8dc4('0x24'),_0x505e5c+'-'+_0x58174b+'/'+_0x1ac079)[_0x8dc4('0x1e')](_0x2ba9da);}return null;};}function patchUpdates(_0x369f04){return function(_0x4585c3){try{jsonpatch[_0x8dc4('0x25')](_0x4585c3,_0x369f04,!![]);}catch(_0x3f24d4){return BPromise['reject'](_0x3f24d4);}return _0x4585c3[_0x8dc4('0x26')]();};}function saveUpdates(_0x1774ca,_0x5b48e0){return function(_0x55e38b){if(_0x55e38b){return _0x55e38b[_0x8dc4('0x27')](_0x1774ca)[_0x8dc4('0x28')](function(_0x2695ac){return _0x2695ac;});}return null;};}function removeEntity(_0x1f3c80,_0x21e257){return function(_0x15e90d){if(_0x15e90d){return _0x15e90d[_0x8dc4('0x29')]()[_0x8dc4('0x28')](function(){_0x1f3c80[_0x8dc4('0x1c')](0xcc)[_0x8dc4('0x1d')]();});}};}function handleEntityNotFound(_0x1a6f97,_0x270d75){return function(_0x5eb2f8){if(!_0x5eb2f8){_0x1a6f97[_0x8dc4('0x1b')](0x194);}return _0x5eb2f8;};}function handleError(_0x471677,_0x29f87a){_0x29f87a=_0x29f87a||0x1f4;return function(_0xc703bf){logger[_0x8dc4('0x2a')](_0xc703bf[_0x8dc4('0x2b')]);if(_0xc703bf[_0x8dc4('0x2c')]){delete _0xc703bf['name'];}_0x471677[_0x8dc4('0x1c')](_0x29f87a)['send'](_0xc703bf);};}exports[_0x8dc4('0x2d')]=function(_0xc1acf8,_0x50b109,_0x5744f0){if(!_0xc1acf8[_0x8dc4('0x2e')][_0x8dc4('0x2f')](_0x8dc4('0x30'))&&!_0xc1acf8[_0x8dc4('0x2e')][_0x8dc4('0x2f')]('TemplateId')){throw new db['Sequelize'][(_0x8dc4('0x31'))](_0x8dc4('0x32'));}else{if(_0xc1acf8['body'][_0x8dc4('0x2f')]('TemplateId')&&!_0xc1acf8[_0x8dc4('0x2e')][_0x8dc4('0x2f')](_0x8dc4('0x33'))){throw new db['Sequelize'][(_0x8dc4('0x31'))]('Missing\x20\x27view\x27\x20parameter');}if(!_0xc1acf8[_0x8dc4('0x2e')]['hasOwnProperty'](_0x8dc4('0x34'))){throw new db[(_0x8dc4('0x35'))][(_0x8dc4('0x31'))]('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x429e34=JSON['parse'](_0xc1acf8['body'][_0x8dc4('0x34')]);}catch(_0x16ea6c){logger[_0x8dc4('0x2a')](_0x16ea6c);throw new db[(_0x8dc4('0x35'))][(_0x8dc4('0x31'))](_0x8dc4('0x36'));}var _0x16d646=['chatqueue',_0x8dc4('0x37'),_0x8dc4('0x38'),'openchannelqueue',_0x8dc4('0x39'),_0x8dc4('0x3a'),_0x8dc4('0x3b'),_0x8dc4('0x3c'),_0x8dc4('0x3d')];if(_['some'](_0x429e34,function(_0x46881d){return!_[_0x8dc4('0x3e')](_0x16d646,_0x46881d[_0x8dc4('0x3f')]['toLowerCase']());})){throw new db[(_0x8dc4('0x35'))]['ValidationError'](_0x8dc4('0x40'));}}}var _0x1ef522={};_0x1ef522['senderName']=_0xc1acf8[_0x8dc4('0x2e')][_0x8dc4('0x2f')](_0x8dc4('0x41'))?_0xc1acf8['body'][_0x8dc4('0x41')]:_0xc1acf8[_0x8dc4('0x3d')][_0x8dc4('0x42')];_0x1ef522[_0x8dc4('0x43')]=_[_0x8dc4('0x44')](_0xc1acf8['body'][_0x8dc4('0x43')])?null:_0xc1acf8['body'][_0x8dc4('0x43')];_0x1ef522[_0x8dc4('0x45')]=_0xc1acf8[_0x8dc4('0x2e')]['beep']||![];_0x1ef522[_0x8dc4('0x46')]=_0xc1acf8[_0x8dc4('0x3d')]['id'];return getContent(_0xc1acf8[_0x8dc4('0x2e')])[_0x8dc4('0x28')](function(_0x899876){_0x1ef522[_0x8dc4('0x2e')]=_0x899876;return getRecipients(_0x429e34);})['then'](function(_0x4acc8b){_0x1ef522[_0x8dc4('0x47')]=_['sortBy'](_0x4acc8b)[_0x8dc4('0x48')](',');return db[_0x8dc4('0x49')][_0x8dc4('0x4a')](function(_0x493713){return db['UserNotification'][_0x8dc4('0x4b')](_0x1ef522,{'raw':!![],'transaction':_0x493713})[_0x8dc4('0x28')](function(_0x4748be){var _0x5a0c0c={'sender':_0x1ef522[_0x8dc4('0x41')],'description':_0x1ef522[_0x8dc4('0x43')],'content':_0x1ef522[_0x8dc4('0x2e')],'beep':_0x1ef522[_0x8dc4('0x45')]};_0x4acc8b[_0x8dc4('0x4c')](function(_0x34b24a){_0x5a0c0c[_0x8dc4('0x4d')]=_0x34b24a;socket['emit'](_0x8dc4('0x4e'),_0x5a0c0c);});return _0x4748be;});});})[_0x8dc4('0x28')](respondWithResult(_0x50b109,0xc9))[_0x8dc4('0x4f')](handleError(_0x50b109,null));};function getContent(_0xe9dd8f){return new BPromise(function(_0x558ade,_0x55adcc){if(_0xe9dd8f[_0x8dc4('0x30')]){_0x558ade(_0xe9dd8f[_0x8dc4('0x30')]);return;}return db[_0x8dc4('0x50')][_0x8dc4('0x51')]({'attributes':[_0x8dc4('0x52')],'where':{'id':_0xe9dd8f[_0x8dc4('0x53')]},'raw':!![]})[_0x8dc4('0x28')](function(_0x5a3101){if(!_0x5a3101)throw new db[(_0x8dc4('0x35'))][(_0x8dc4('0x31'))](_0x8dc4('0x54'));var _0x4313cf=Mustache['render'](_0x5a3101[_0x8dc4('0x52')],_0xe9dd8f[_0x8dc4('0x33')]);_0x558ade(_0x4313cf);})[_0x8dc4('0x4f')](function(_0x3738d3){_0x55adcc(_0x3738d3);});});}function getRecipients(_0x25d3c3){return new BPromise(function(_0x11419e,_0x1d29cf){var _0x3859a6=[];var _0x2bfeac=[];_0x25d3c3['forEach'](function(_0x2994dc){var _0x3c4bf9=_[_0x8dc4('0x55')](_0x2994dc[_0x8dc4('0x3f')][_0x8dc4('0x56')]());if(_0x3c4bf9==='User'){_0x3859a6=_['union'](_0x3859a6,_0x2994dc['ids']);}else{if(_['includes'](_0x3c4bf9,_0x8dc4('0x57')))_0x3c4bf9=_0x3c4bf9['replace'](_0x8dc4('0x57'),_0x8dc4('0x58'));_0x2994dc['ids'][_0x8dc4('0x4c')](function(_0x2d117b){_0x2bfeac[_0x8dc4('0x59')](getAgents(_0x3c4bf9,_0x2d117b));});}});return BPromise[_0x8dc4('0x5a')](_0x2bfeac)[_0x8dc4('0x28')](function(_0x3c9994){_0x3859a6=_[_0x8dc4('0x5b')](_0x3859a6,_['flatten'](_0x3c9994));_0x11419e(_0x3859a6);})[_0x8dc4('0x4f')](function(_0x3d5d9b){_0x1d29cf(_0x3d5d9b);});});}function getAgents(_0x1df160,_0x42c753){return new BPromise(function(_0x147680,_0x11d6db){return db[_0x1df160][_0x8dc4('0x51')]({'where':{'id':_0x42c753}})[_0x8dc4('0x28')](function(_0x2ee96c){return _0x2ee96c['getAgents']({'attributes':['id'],'raw':!![]})['then'](function(_0xbf0bfa){var _0x155c74=_[_0x8dc4('0x5c')](_0xbf0bfa,'id');_0x147680(_0x155c74);});})[_0x8dc4('0x4f')](function(_0x5556cd){_0x11d6db(_0x5556cd);});});}