Built motion from commit 9d7072cc.|2.5.39
[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 _0xb289=['isEmpty','beep','SenderId','recipientsId','sortBy','join','sequelize','UserNotification','forEach','recipient','emit','userNotification:send','text','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','startCase','User','union','replace','queue','Queue','ids','all','catch','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./userNotification.socket','register','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','update','then','destroy','end','error','name','body','hasOwnProperty','Sequelize','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','TemplateId','view','Missing\x20\x27view\x27\x20parameter','recipients','ValidationError','Missing\x20\x27recipients\x27\x20parameter','parse','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','team','model','toLowerCase','senderName','user','fullname','recipientsDescription'];(function(_0xfc6300,_0x43c0d5){var _0xbd8d07=function(_0x346682){while(--_0x346682){_0xfc6300['push'](_0xfc6300['shift']());}};_0xbd8d07(++_0x43c0d5);}(_0xb289,0x7e));var _0x9b28=function(_0x1cd73b,_0x5b70a2){_0x1cd73b=_0x1cd73b-0x0;var _0x176279=_0xb289[_0x1cd73b];return _0x176279;};'use strict';var emlformat=require(_0x9b28('0x0'));var rimraf=require(_0x9b28('0x1'));var zipdir=require(_0x9b28('0x2'));var jsonpatch=require(_0x9b28('0x3'));var rp=require('request-promise');var moment=require(_0x9b28('0x4'));var BPromise=require(_0x9b28('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x9b28('0x6'));var sox=require('sox');var csv=require(_0x9b28('0x7'));var ejs=require(_0x9b28('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9b28('0x9'));var squel=require(_0x9b28('0xa'));var crypto=require(_0x9b28('0xb'));var jsforce=require(_0x9b28('0xc'));var deskjs=require(_0x9b28('0xd'));var toCsv=require(_0x9b28('0x7'));var querystring=require(_0x9b28('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x9b28('0xf'));var qs=require(_0x9b28('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9b28('0x11'));var logger=require('../../config/logger')(_0x9b28('0x12'));var utils=require(_0x9b28('0x13'));var config=require(_0x9b28('0x14'));var licenseUtil=require(_0x9b28('0x15'));var db=require(_0x9b28('0x16'))['db'];config[_0x9b28('0x17')]=_['defaults'](config[_0x9b28('0x17')],{'host':_0x9b28('0x18'),'port':0x18eb});var socket=require(_0x9b28('0x19'))(new Redis(config[_0x9b28('0x17')]));require(_0x9b28('0x1a'))[_0x9b28('0x1b')](socket);function respondWithStatusCode(_0x8dba7,_0x323cbf){_0x323cbf=_0x323cbf||0xcc;return function(_0x54dc00){if(_0x54dc00){return _0x8dba7[_0x9b28('0x1c')](_0x323cbf);}return _0x8dba7[_0x9b28('0x1d')](_0x323cbf)['end']();};}function respondWithResult(_0x224a9e,_0x1f3987){_0x1f3987=_0x1f3987||0xc8;return function(_0x55ff86){if(_0x55ff86){return _0x224a9e[_0x9b28('0x1d')](_0x1f3987)[_0x9b28('0x1e')](_0x55ff86);}};}function respondWithFilteredResult(_0x5ccb3c,_0x213e85){return function(_0x372d4b){if(_0x372d4b){var _0x2bbc8e=typeof _0x213e85[_0x9b28('0x1f')]==='undefined'&&typeof _0x213e85['limit']===_0x9b28('0x20');var _0x57eb62=_0x372d4b[_0x9b28('0x21')];var _0x53f60b=_0x2bbc8e?0x0:_0x213e85['offset'];var _0x2effce=_0x2bbc8e?_0x372d4b['count']:_0x213e85[_0x9b28('0x1f')]+_0x213e85[_0x9b28('0x22')];var _0x118ac5;if(_0x2effce>=_0x57eb62){_0x2effce=_0x57eb62;_0x118ac5=0xc8;}else{_0x118ac5=0xce;}_0x5ccb3c['status'](_0x118ac5);return _0x5ccb3c[_0x9b28('0x23')](_0x9b28('0x24'),_0x53f60b+'-'+_0x2effce+'/'+_0x57eb62)[_0x9b28('0x1e')](_0x372d4b);}return null;};}function patchUpdates(_0x1207d1){return function(_0x32d0ab){try{jsonpatch[_0x9b28('0x25')](_0x32d0ab,_0x1207d1,!![]);}catch(_0x535105){return BPromise[_0x9b28('0x26')](_0x535105);}return _0x32d0ab['save']();};}function saveUpdates(_0x24f4be,_0x296f91){return function(_0x3bb9ad){if(_0x3bb9ad){return _0x3bb9ad[_0x9b28('0x27')](_0x24f4be)[_0x9b28('0x28')](function(_0x1ace73){return _0x1ace73;});}return null;};}function removeEntity(_0x4ab4c2,_0x16ed7d){return function(_0x120e06){if(_0x120e06){return _0x120e06[_0x9b28('0x29')]()[_0x9b28('0x28')](function(){_0x4ab4c2[_0x9b28('0x1d')](0xcc)[_0x9b28('0x2a')]();});}};}function handleEntityNotFound(_0x59a65d,_0x26446f){return function(_0x39f60b){if(!_0x39f60b){_0x59a65d[_0x9b28('0x1c')](0x194);}return _0x39f60b;};}function handleError(_0x3d4e92,_0x49be2f){_0x49be2f=_0x49be2f||0x1f4;return function(_0x4636e3){logger[_0x9b28('0x2b')](_0x4636e3['stack']);if(_0x4636e3['name']){delete _0x4636e3[_0x9b28('0x2c')];}_0x3d4e92['status'](_0x49be2f)['send'](_0x4636e3);};}exports['sendUserNotification']=function(_0x5b11e8,_0x46c200,_0x26dbf3){if(!_0x5b11e8[_0x9b28('0x2d')][_0x9b28('0x2e')]('text')&&!_0x5b11e8[_0x9b28('0x2d')][_0x9b28('0x2e')]('TemplateId')){throw new db[(_0x9b28('0x2f'))]['ValidationError'](_0x9b28('0x30'));}else{if(_0x5b11e8[_0x9b28('0x2d')]['hasOwnProperty'](_0x9b28('0x31'))&&!_0x5b11e8['body'][_0x9b28('0x2e')](_0x9b28('0x32'))){throw new db[(_0x9b28('0x2f'))]['ValidationError'](_0x9b28('0x33'));}if(!_0x5b11e8['body'][_0x9b28('0x2e')](_0x9b28('0x34'))){throw new db[(_0x9b28('0x2f'))][(_0x9b28('0x35'))](_0x9b28('0x36'));}else{try{var _0x50af96=JSON[_0x9b28('0x37')](_0x5b11e8[_0x9b28('0x2d')][_0x9b28('0x34')]);}catch(_0x4f024b){logger[_0x9b28('0x2b')](_0x4f024b);throw new db['Sequelize'][(_0x9b28('0x35'))](_0x9b28('0x38'));}var _0x2e2dc6=[_0x9b28('0x39'),_0x9b28('0x3a'),'mailqueue',_0x9b28('0x3b'),_0x9b28('0x3c'),_0x9b28('0x3d'),_0x9b28('0x3e'),_0x9b28('0x3f'),'user'];if(_['some'](_0x50af96,function(_0x50b0cb){return!_['includes'](_0x2e2dc6,_0x50b0cb[_0x9b28('0x40')][_0x9b28('0x41')]());})){throw new db[(_0x9b28('0x2f'))][(_0x9b28('0x35'))]('Invalid\x20model\x20in\x20\x27recipients\x27\x20object');}}}var _0x12d52a={};_0x12d52a[_0x9b28('0x42')]=_0x5b11e8[_0x9b28('0x2d')][_0x9b28('0x2e')](_0x9b28('0x42'))?_0x5b11e8[_0x9b28('0x2d')]['senderName']:_0x5b11e8[_0x9b28('0x43')][_0x9b28('0x44')];_0x12d52a[_0x9b28('0x45')]=_[_0x9b28('0x46')](_0x5b11e8[_0x9b28('0x2d')]['recipientsDescription'])?null:_0x5b11e8['body'][_0x9b28('0x45')];_0x12d52a['beep']=_0x5b11e8[_0x9b28('0x2d')][_0x9b28('0x47')]||![];_0x12d52a[_0x9b28('0x48')]=_0x5b11e8[_0x9b28('0x43')]['id'];return getContent(_0x5b11e8[_0x9b28('0x2d')])['then'](function(_0x4257dc){_0x12d52a['body']=_0x4257dc;return getRecipients(_0x50af96);})['then'](function(_0x6bc4){_0x12d52a[_0x9b28('0x49')]=_[_0x9b28('0x4a')](_0x6bc4)[_0x9b28('0x4b')](',');return db[_0x9b28('0x4c')]['transaction'](function(_0x49430a){return db[_0x9b28('0x4d')]['create'](_0x12d52a,{'raw':!![],'transaction':_0x49430a})[_0x9b28('0x28')](function(_0x50fe65){var _0x4276ed={'sender':_0x12d52a[_0x9b28('0x42')],'description':_0x12d52a['recipientsDescription'],'content':_0x12d52a['body'],'beep':_0x12d52a['beep']};_0x6bc4[_0x9b28('0x4e')](function(_0x3e7eeb){_0x4276ed[_0x9b28('0x4f')]=_0x3e7eeb;socket[_0x9b28('0x50')](_0x9b28('0x51'),_0x4276ed);});return _0x50fe65;});});})[_0x9b28('0x28')](respondWithResult(_0x46c200,0xc9))['catch'](handleError(_0x46c200,null));};function getContent(_0x3f1c42){return new BPromise(function(_0x15c0c7,_0x3b8a3e){if(_0x3f1c42[_0x9b28('0x52')]){_0x15c0c7(_0x3f1c42[_0x9b28('0x52')]);return;}return db[_0x9b28('0x53')][_0x9b28('0x54')]({'attributes':[_0x9b28('0x55')],'where':{'id':_0x3f1c42[_0x9b28('0x31')]},'raw':!![]})[_0x9b28('0x28')](function(_0x15cc91){if(!_0x15cc91)throw new db[(_0x9b28('0x2f'))][(_0x9b28('0x35'))](_0x9b28('0x56'));var _0x3290d9=Mustache[_0x9b28('0x57')](_0x15cc91[_0x9b28('0x55')],_0x3f1c42[_0x9b28('0x32')]);_0x15c0c7(_0x3290d9);})['catch'](function(_0xcda90c){_0x3b8a3e(_0xcda90c);});});}function getRecipients(_0x1ff3c9){return new BPromise(function(_0x4a2628,_0x244a5e){var _0x4b31f5=[];var _0x1c93c3=[];_0x1ff3c9[_0x9b28('0x4e')](function(_0x417282){var _0x36c8c8=_[_0x9b28('0x58')](_0x417282[_0x9b28('0x40')][_0x9b28('0x41')]());if(_0x36c8c8===_0x9b28('0x59')){_0x4b31f5=_[_0x9b28('0x5a')](_0x4b31f5,_0x417282['ids']);}else{if(_['includes'](_0x36c8c8,'queue'))_0x36c8c8=_0x36c8c8[_0x9b28('0x5b')](_0x9b28('0x5c'),_0x9b28('0x5d'));_0x417282[_0x9b28('0x5e')][_0x9b28('0x4e')](function(_0x52412a){_0x1c93c3['push'](getAgents(_0x36c8c8,_0x52412a));});}});return BPromise[_0x9b28('0x5f')](_0x1c93c3)['then'](function(_0x558c73){_0x4b31f5=_['union'](_0x4b31f5,_['flatten'](_0x558c73));_0x4a2628(_0x4b31f5);})[_0x9b28('0x60')](function(_0x261b01){_0x244a5e(_0x261b01);});});}function getAgents(_0x52b197,_0x259960){return new BPromise(function(_0x2c090d,_0x4d447b){return db[_0x52b197]['findOne']({'where':{'id':_0x259960}})[_0x9b28('0x28')](function(_0xa2f0e7){return _0xa2f0e7[_0x9b28('0x61')]({'attributes':['id'],'raw':!![]})[_0x9b28('0x28')](function(_0x38a981){var _0x1855ca=_['map'](_0x38a981,'id');_0x2c090d(_0x1855ca);});})[_0x9b28('0x60')](function(_0x360154){_0x4d447b(_0x360154);});});}