Built motion from commit 26d08302.|2.6.31
[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 _0x5cfe=['querystring','papaparse','ioredis','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./userNotification.socket','register','sendStatus','end','offset','limit','undefined','count','status','set','Content-Range','json','apply','save','then','destroy','error','name','sendUserNotification','body','hasOwnProperty','text','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','TemplateId','Sequelize','Missing\x20\x27view\x27\x20parameter','Missing\x20\x27recipients\x27\x20parameter','parse','chatqueue','faxqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','team','user','some','includes','model','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','isEmpty','beep','SenderId','recipientsId','sortBy','join','sequelize','transaction','UserNotification','create','recipient','emit','userNotification:send','catch','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','view','forEach','startCase','replace','queue','push','union','flatten','getAgents','map','eml-format','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0x5cfe,0x175));var _0xe5cf=function(_0x208a68,_0x2e381d){_0x208a68=_0x208a68-0x0;var _0xe87e2e=_0x5cfe[_0x208a68];return _0xe87e2e;};'use strict';var emlformat=require(_0xe5cf('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe5cf('0x1'));var jsonpatch=require(_0xe5cf('0x2'));var rp=require(_0xe5cf('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xe5cf('0x4'));var util=require(_0xe5cf('0x5'));var path=require(_0xe5cf('0x6'));var sox=require(_0xe5cf('0x7'));var csv=require(_0xe5cf('0x8'));var ejs=require(_0xe5cf('0x9'));var fs=require('fs');var fs_extra=require(_0xe5cf('0xa'));var _=require('lodash');var squel=require(_0xe5cf('0xb'));var crypto=require(_0xe5cf('0xc'));var jsforce=require(_0xe5cf('0xd'));var deskjs=require(_0xe5cf('0xe'));var toCsv=require(_0xe5cf('0x8'));var querystring=require(_0xe5cf('0xf'));var Papa=require(_0xe5cf('0x10'));var Redis=require(_0xe5cf('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xe5cf('0x12'));var db=require(_0xe5cf('0x13'))['db'];config[_0xe5cf('0x14')]=_[_0xe5cf('0x15')](config[_0xe5cf('0x14')],{'host':_0xe5cf('0x16'),'port':0x18eb});var socket=require(_0xe5cf('0x17'))(new Redis(config[_0xe5cf('0x14')]));require(_0xe5cf('0x18'))[_0xe5cf('0x19')](socket);function respondWithStatusCode(_0x19cee6,_0x645e20){_0x645e20=_0x645e20||0xcc;return function(_0x22a98b){if(_0x22a98b){return _0x19cee6[_0xe5cf('0x1a')](_0x645e20);}return _0x19cee6['status'](_0x645e20)[_0xe5cf('0x1b')]();};}function respondWithResult(_0x292870,_0x10cc3c){_0x10cc3c=_0x10cc3c||0xc8;return function(_0x579a6c){if(_0x579a6c){return _0x292870['status'](_0x10cc3c)['json'](_0x579a6c);}};}function respondWithFilteredResult(_0x406053,_0x2708ec){return function(_0xa7ad3f){if(_0xa7ad3f){var _0x1f1751=typeof _0x2708ec[_0xe5cf('0x1c')]==='undefined'&&typeof _0x2708ec[_0xe5cf('0x1d')]===_0xe5cf('0x1e');var _0x3e737a=_0xa7ad3f[_0xe5cf('0x1f')];var _0xf1aedb=_0x1f1751?0x0:_0x2708ec[_0xe5cf('0x1c')];var _0x5e9427=_0x1f1751?_0xa7ad3f[_0xe5cf('0x1f')]:_0x2708ec[_0xe5cf('0x1c')]+_0x2708ec[_0xe5cf('0x1d')];var _0x136155;if(_0x5e9427>=_0x3e737a){_0x5e9427=_0x3e737a;_0x136155=0xc8;}else{_0x136155=0xce;}_0x406053[_0xe5cf('0x20')](_0x136155);return _0x406053[_0xe5cf('0x21')](_0xe5cf('0x22'),_0xf1aedb+'-'+_0x5e9427+'/'+_0x3e737a)[_0xe5cf('0x23')](_0xa7ad3f);}return null;};}function patchUpdates(_0x148a0f){return function(_0x34c5d3){try{jsonpatch[_0xe5cf('0x24')](_0x34c5d3,_0x148a0f,!![]);}catch(_0x38ea94){return BPromise['reject'](_0x38ea94);}return _0x34c5d3[_0xe5cf('0x25')]();};}function saveUpdates(_0xc9851b,_0x43f044){return function(_0x1df27a){if(_0x1df27a){return _0x1df27a['update'](_0xc9851b)[_0xe5cf('0x26')](function(_0x28b635){return _0x28b635;});}return null;};}function removeEntity(_0x54a937,_0x406929){return function(_0x23db43){if(_0x23db43){return _0x23db43[_0xe5cf('0x27')]()[_0xe5cf('0x26')](function(){_0x54a937[_0xe5cf('0x20')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1dc938,_0x5d6361){return function(_0x3cbf0f){if(!_0x3cbf0f){_0x1dc938['sendStatus'](0x194);}return _0x3cbf0f;};}function handleError(_0x408401,_0x48ab04){_0x48ab04=_0x48ab04||0x1f4;return function(_0x36b5bf){logger[_0xe5cf('0x28')](_0x36b5bf['stack']);if(_0x36b5bf[_0xe5cf('0x29')]){delete _0x36b5bf['name'];}_0x408401[_0xe5cf('0x20')](_0x48ab04)['send'](_0x36b5bf);};}exports[_0xe5cf('0x2a')]=function(_0x22457c,_0x494d2d,_0x37f249){if(!_0x22457c[_0xe5cf('0x2b')][_0xe5cf('0x2c')](_0xe5cf('0x2d'))&&!_0x22457c[_0xe5cf('0x2b')][_0xe5cf('0x2c')]('TemplateId')){throw new db['Sequelize'][(_0xe5cf('0x2e'))](_0xe5cf('0x2f'));}else{if(_0x22457c[_0xe5cf('0x2b')][_0xe5cf('0x2c')](_0xe5cf('0x30'))&&!_0x22457c[_0xe5cf('0x2b')]['hasOwnProperty']('view')){throw new db[(_0xe5cf('0x31'))][(_0xe5cf('0x2e'))](_0xe5cf('0x32'));}if(!_0x22457c[_0xe5cf('0x2b')][_0xe5cf('0x2c')]('recipients')){throw new db[(_0xe5cf('0x31'))][(_0xe5cf('0x2e'))](_0xe5cf('0x33'));}else{try{var _0x383ef3=JSON[_0xe5cf('0x34')](_0x22457c[_0xe5cf('0x2b')]['recipients']);}catch(_0x37b736){logger[_0xe5cf('0x28')](_0x37b736);throw new db[(_0xe5cf('0x31'))][(_0xe5cf('0x2e'))]('Invalid\x20\x27recipients\x27\x20object');}var _0x1a429b=[_0xe5cf('0x35'),_0xe5cf('0x36'),'mailqueue',_0xe5cf('0x37'),_0xe5cf('0x38'),_0xe5cf('0x39'),_0xe5cf('0x3a'),_0xe5cf('0x3b'),_0xe5cf('0x3c')];if(_[_0xe5cf('0x3d')](_0x383ef3,function(_0x4941d5){return!_[_0xe5cf('0x3e')](_0x1a429b,_0x4941d5[_0xe5cf('0x3f')]['toLowerCase']());})){throw new db[(_0xe5cf('0x31'))][(_0xe5cf('0x2e'))](_0xe5cf('0x40'));}}}var _0x923007={};_0x923007[_0xe5cf('0x41')]=_0x22457c[_0xe5cf('0x2b')][_0xe5cf('0x2c')]('senderName')?_0x22457c[_0xe5cf('0x2b')][_0xe5cf('0x41')]:_0x22457c[_0xe5cf('0x3c')][_0xe5cf('0x42')];_0x923007[_0xe5cf('0x43')]=_[_0xe5cf('0x44')](_0x22457c['body']['recipientsDescription'])?null:_0x22457c[_0xe5cf('0x2b')][_0xe5cf('0x43')];_0x923007[_0xe5cf('0x45')]=_0x22457c[_0xe5cf('0x2b')]['beep']||![];_0x923007[_0xe5cf('0x46')]=_0x22457c[_0xe5cf('0x3c')]['id'];return getContent(_0x22457c[_0xe5cf('0x2b')])[_0xe5cf('0x26')](function(_0x3dc742){_0x923007[_0xe5cf('0x2b')]=_0x3dc742;return getRecipients(_0x383ef3);})[_0xe5cf('0x26')](function(_0xfa5709){_0x923007[_0xe5cf('0x47')]=_[_0xe5cf('0x48')](_0xfa5709)[_0xe5cf('0x49')](',');return db[_0xe5cf('0x4a')][_0xe5cf('0x4b')](function(_0x30c12c){return db[_0xe5cf('0x4c')][_0xe5cf('0x4d')](_0x923007,{'raw':!![],'transaction':_0x30c12c})[_0xe5cf('0x26')](function(_0x10a33e){var _0x571957={'sender':_0x923007[_0xe5cf('0x41')],'description':_0x923007[_0xe5cf('0x43')],'content':_0x923007[_0xe5cf('0x2b')],'beep':_0x923007[_0xe5cf('0x45')]};_0xfa5709['forEach'](function(_0x4e26b9){_0x571957[_0xe5cf('0x4e')]=_0x4e26b9;socket[_0xe5cf('0x4f')](_0xe5cf('0x50'),_0x571957);});return _0x10a33e;});});})[_0xe5cf('0x26')](respondWithResult(_0x494d2d,0xc9))[_0xe5cf('0x51')](handleError(_0x494d2d,null));};function getContent(_0x264a7f){return new BPromise(function(_0x1d8868,_0x40b7e3){if(_0x264a7f[_0xe5cf('0x2d')]){_0x1d8868(_0x264a7f[_0xe5cf('0x2d')]);return;}return db[_0xe5cf('0x52')][_0xe5cf('0x53')]({'attributes':[_0xe5cf('0x54')],'where':{'id':_0x264a7f[_0xe5cf('0x30')]},'raw':!![]})[_0xe5cf('0x26')](function(_0x385cab){if(!_0x385cab)throw new db[(_0xe5cf('0x31'))]['ValidationError'](_0xe5cf('0x55'));var _0x17ea26=Mustache[_0xe5cf('0x56')](_0x385cab[_0xe5cf('0x54')],_0x264a7f[_0xe5cf('0x57')]);_0x1d8868(_0x17ea26);})[_0xe5cf('0x51')](function(_0x3eeb65){_0x40b7e3(_0x3eeb65);});});}function getRecipients(_0x44813c){return new BPromise(function(_0x2aebbf,_0x475446){var _0x5b9b2a=[];var _0x129300=[];_0x44813c[_0xe5cf('0x58')](function(_0x25ea4d){var _0x191411=_[_0xe5cf('0x59')](_0x25ea4d[_0xe5cf('0x3f')]['toLowerCase']());if(_0x191411==='User'){_0x5b9b2a=_['union'](_0x5b9b2a,_0x25ea4d['ids']);}else{if(_['includes'](_0x191411,'queue'))_0x191411=_0x191411[_0xe5cf('0x5a')](_0xe5cf('0x5b'),'Queue');_0x25ea4d['ids'][_0xe5cf('0x58')](function(_0x450c36){_0x129300[_0xe5cf('0x5c')](getAgents(_0x191411,_0x450c36));});}});return BPromise['all'](_0x129300)['then'](function(_0x2ecfa9){_0x5b9b2a=_[_0xe5cf('0x5d')](_0x5b9b2a,_[_0xe5cf('0x5e')](_0x2ecfa9));_0x2aebbf(_0x5b9b2a);})[_0xe5cf('0x51')](function(_0x4e5d2a){_0x475446(_0x4e5d2a);});});}function getAgents(_0x31cc25,_0x3dc1ce){return new BPromise(function(_0x44fcac,_0x5e8998){return db[_0x31cc25][_0xe5cf('0x53')]({'where':{'id':_0x3dc1ce}})[_0xe5cf('0x26')](function(_0x29ef4c){return _0x29ef4c[_0xe5cf('0x5f')]({'attributes':['id'],'raw':!![]})[_0xe5cf('0x26')](function(_0x393bc6){var _0x3a43b0=_[_0xe5cf('0x60')](_0x393bc6,'id');_0x44fcac(_0x3a43b0);});})['catch'](function(_0x50f69d){_0x5e8998(_0x50f69d);});});}