Built motion from commit e6806ed6.|2.6.0
[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 _0xac90=['ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','sendStatus','status','end','json','offset','limit','undefined','count','Content-Range','apply','reject','update','destroy','then','error','stack','name','send','sendUserNotification','body','text','hasOwnProperty','TemplateId','Sequelize','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','faxqueue','mailqueue','openchannelqueue','smsqueue','team','some','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','user','fullname','isEmpty','recipientsDescription','beep','SenderId','transaction','UserNotification','create','forEach','recipient','userNotification:send','catch','findOne','Invalid\x20\x27TemplateId\x27\x20parameter','startCase','union','ids','includes','replace','Queue','push','all','flatten','map','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv'];(function(_0x47430a,_0x2e3f19){var _0x3efc3a=function(_0xcd33b6){while(--_0xcd33b6){_0x47430a['push'](_0x47430a['shift']());}};_0x3efc3a(++_0x2e3f19);}(_0xac90,0x10c));var _0x0ac9=function(_0x3090f9,_0x32f80a){_0x3090f9=_0x3090f9-0x0;var _0x3416d7=_0xac90[_0x3090f9];return _0x3416d7;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x0ac9('0x0'));var jsonpatch=require(_0x0ac9('0x1'));var rp=require(_0x0ac9('0x2'));var moment=require(_0x0ac9('0x3'));var BPromise=require(_0x0ac9('0x4'));var Mustache=require('mustache');var util=require(_0x0ac9('0x5'));var path=require('path');var sox=require(_0x0ac9('0x6'));var csv=require(_0x0ac9('0x7'));var ejs=require(_0x0ac9('0x8'));var fs=require('fs');var fs_extra=require(_0x0ac9('0x9'));var _=require('lodash');var squel=require(_0x0ac9('0xa'));var crypto=require(_0x0ac9('0xb'));var jsforce=require(_0x0ac9('0xc'));var deskjs=require(_0x0ac9('0xd'));var toCsv=require(_0x0ac9('0x7'));var querystring=require(_0x0ac9('0xe'));var Papa=require(_0x0ac9('0xf'));var Redis=require('ioredis');var authService=require(_0x0ac9('0x10'));var qs=require(_0x0ac9('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0ac9('0x12'));var logger=require(_0x0ac9('0x13'))(_0x0ac9('0x14'));var utils=require(_0x0ac9('0x15'));var config=require(_0x0ac9('0x16'));var licenseUtil=require(_0x0ac9('0x17'));var db=require(_0x0ac9('0x18'))['db'];config[_0x0ac9('0x19')]=_['defaults'](config['redis'],{'host':_0x0ac9('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x0ac9('0x19')]));require('./userNotification.socket')['register'](socket);function respondWithStatusCode(_0x16009e,_0x39fadd){_0x39fadd=_0x39fadd||0xcc;return function(_0x3b6a03){if(_0x3b6a03){return _0x16009e[_0x0ac9('0x1b')](_0x39fadd);}return _0x16009e[_0x0ac9('0x1c')](_0x39fadd)[_0x0ac9('0x1d')]();};}function respondWithResult(_0x4ee4a5,_0x37f507){_0x37f507=_0x37f507||0xc8;return function(_0x4b0def){if(_0x4b0def){return _0x4ee4a5[_0x0ac9('0x1c')](_0x37f507)[_0x0ac9('0x1e')](_0x4b0def);}};}function respondWithFilteredResult(_0x2235a0,_0x531df1){return function(_0x5a912b){if(_0x5a912b){var _0x5407a9=typeof _0x531df1[_0x0ac9('0x1f')]==='undefined'&&typeof _0x531df1[_0x0ac9('0x20')]===_0x0ac9('0x21');var _0x47824b=_0x5a912b[_0x0ac9('0x22')];var _0x3af4ae=_0x5407a9?0x0:_0x531df1[_0x0ac9('0x1f')];var _0x19045e=_0x5407a9?_0x5a912b['count']:_0x531df1[_0x0ac9('0x1f')]+_0x531df1[_0x0ac9('0x20')];var _0x55aa93;if(_0x19045e>=_0x47824b){_0x19045e=_0x47824b;_0x55aa93=0xc8;}else{_0x55aa93=0xce;}_0x2235a0[_0x0ac9('0x1c')](_0x55aa93);return _0x2235a0['set'](_0x0ac9('0x23'),_0x3af4ae+'-'+_0x19045e+'/'+_0x47824b)[_0x0ac9('0x1e')](_0x5a912b);}return null;};}function patchUpdates(_0x1fb0fd){return function(_0x2d9782){try{jsonpatch[_0x0ac9('0x24')](_0x2d9782,_0x1fb0fd,!![]);}catch(_0x43d1cb){return BPromise[_0x0ac9('0x25')](_0x43d1cb);}return _0x2d9782['save']();};}function saveUpdates(_0x84876c,_0x4f569a){return function(_0x550386){if(_0x550386){return _0x550386[_0x0ac9('0x26')](_0x84876c)['then'](function(_0x22b949){return _0x22b949;});}return null;};}function removeEntity(_0x312e63,_0x29f313){return function(_0x1c35dd){if(_0x1c35dd){return _0x1c35dd[_0x0ac9('0x27')]()[_0x0ac9('0x28')](function(){_0x312e63[_0x0ac9('0x1c')](0xcc)[_0x0ac9('0x1d')]();});}};}function handleEntityNotFound(_0x5d0e17,_0x2fffe9){return function(_0x1ab24d){if(!_0x1ab24d){_0x5d0e17['sendStatus'](0x194);}return _0x1ab24d;};}function handleError(_0x1de3cd,_0x4db3c6){_0x4db3c6=_0x4db3c6||0x1f4;return function(_0x4dab17){logger[_0x0ac9('0x29')](_0x4dab17[_0x0ac9('0x2a')]);if(_0x4dab17[_0x0ac9('0x2b')]){delete _0x4dab17['name'];}_0x1de3cd['status'](_0x4db3c6)[_0x0ac9('0x2c')](_0x4dab17);};}exports[_0x0ac9('0x2d')]=function(_0x420b29,_0x44c482,_0x2b4bfc){if(!_0x420b29[_0x0ac9('0x2e')]['hasOwnProperty'](_0x0ac9('0x2f'))&&!_0x420b29['body'][_0x0ac9('0x30')](_0x0ac9('0x31'))){throw new db[(_0x0ac9('0x32'))][(_0x0ac9('0x33'))](_0x0ac9('0x34'));}else{if(_0x420b29['body'][_0x0ac9('0x30')](_0x0ac9('0x31'))&&!_0x420b29[_0x0ac9('0x2e')][_0x0ac9('0x30')](_0x0ac9('0x35'))){throw new db[(_0x0ac9('0x32'))][(_0x0ac9('0x33'))](_0x0ac9('0x36'));}if(!_0x420b29[_0x0ac9('0x2e')][_0x0ac9('0x30')](_0x0ac9('0x37'))){throw new db[(_0x0ac9('0x32'))]['ValidationError'](_0x0ac9('0x38'));}else{try{var _0x51b18e=JSON['parse'](_0x420b29[_0x0ac9('0x2e')][_0x0ac9('0x37')]);}catch(_0x5557f7){logger[_0x0ac9('0x29')](_0x5557f7);throw new db['Sequelize'][(_0x0ac9('0x33'))]('Invalid\x20\x27recipients\x27\x20object');}var _0x5ab3cd=['chatqueue',_0x0ac9('0x39'),_0x0ac9('0x3a'),_0x0ac9('0x3b'),_0x0ac9('0x3c'),'voicequeue','whatsappqueue',_0x0ac9('0x3d'),'user'];if(_[_0x0ac9('0x3e')](_0x51b18e,function(_0x1e9e18){return!_['includes'](_0x5ab3cd,_0x1e9e18[_0x0ac9('0x3f')][_0x0ac9('0x40')]());})){throw new db[(_0x0ac9('0x32'))][(_0x0ac9('0x33'))](_0x0ac9('0x41'));}}}var _0x1472ca={};_0x1472ca['senderName']=_0x420b29[_0x0ac9('0x2e')]['hasOwnProperty'](_0x0ac9('0x42'))?_0x420b29['body'][_0x0ac9('0x42')]:_0x420b29[_0x0ac9('0x43')][_0x0ac9('0x44')];_0x1472ca['recipientsDescription']=_[_0x0ac9('0x45')](_0x420b29[_0x0ac9('0x2e')][_0x0ac9('0x46')])?null:_0x420b29[_0x0ac9('0x2e')]['recipientsDescription'];_0x1472ca[_0x0ac9('0x47')]=_0x420b29[_0x0ac9('0x2e')][_0x0ac9('0x47')]||![];_0x1472ca[_0x0ac9('0x48')]=_0x420b29[_0x0ac9('0x43')]['id'];return getContent(_0x420b29['body'])[_0x0ac9('0x28')](function(_0x26013c){_0x1472ca[_0x0ac9('0x2e')]=_0x26013c;return getRecipients(_0x51b18e);})[_0x0ac9('0x28')](function(_0x17fe0e){_0x1472ca['recipientsId']=_['sortBy'](_0x17fe0e)['join'](',');return db['sequelize'][_0x0ac9('0x49')](function(_0x33cb19){return db[_0x0ac9('0x4a')][_0x0ac9('0x4b')](_0x1472ca,{'raw':!![],'transaction':_0x33cb19})['then'](function(_0x5a202e){var _0x5857e7={'sender':_0x1472ca[_0x0ac9('0x42')],'description':_0x1472ca[_0x0ac9('0x46')],'content':_0x1472ca[_0x0ac9('0x2e')],'beep':_0x1472ca[_0x0ac9('0x47')]};_0x17fe0e[_0x0ac9('0x4c')](function(_0x497f27){_0x5857e7[_0x0ac9('0x4d')]=_0x497f27;socket['emit'](_0x0ac9('0x4e'),_0x5857e7);});return _0x5a202e;});});})[_0x0ac9('0x28')](respondWithResult(_0x44c482,0xc9))[_0x0ac9('0x4f')](handleError(_0x44c482,null));};function getContent(_0x351377){return new BPromise(function(_0x1ddf83,_0x913020){if(_0x351377[_0x0ac9('0x2f')]){_0x1ddf83(_0x351377[_0x0ac9('0x2f')]);return;}return db['Template'][_0x0ac9('0x50')]({'attributes':['html'],'where':{'id':_0x351377['TemplateId']},'raw':!![]})[_0x0ac9('0x28')](function(_0x24577e){if(!_0x24577e)throw new db[(_0x0ac9('0x32'))][(_0x0ac9('0x33'))](_0x0ac9('0x51'));var _0x5d261c=Mustache['render'](_0x24577e['html'],_0x351377['view']);_0x1ddf83(_0x5d261c);})[_0x0ac9('0x4f')](function(_0x4b7b35){_0x913020(_0x4b7b35);});});}function getRecipients(_0x9c98b7){return new BPromise(function(_0x3ee664,_0x4b63da){var _0x261757=[];var _0x35201e=[];_0x9c98b7[_0x0ac9('0x4c')](function(_0x59e649){var _0x4ca859=_[_0x0ac9('0x52')](_0x59e649[_0x0ac9('0x3f')]['toLowerCase']());if(_0x4ca859==='User'){_0x261757=_[_0x0ac9('0x53')](_0x261757,_0x59e649[_0x0ac9('0x54')]);}else{if(_[_0x0ac9('0x55')](_0x4ca859,'queue'))_0x4ca859=_0x4ca859[_0x0ac9('0x56')]('queue',_0x0ac9('0x57'));_0x59e649[_0x0ac9('0x54')][_0x0ac9('0x4c')](function(_0x478df1){_0x35201e[_0x0ac9('0x58')](getAgents(_0x4ca859,_0x478df1));});}});return BPromise[_0x0ac9('0x59')](_0x35201e)[_0x0ac9('0x28')](function(_0x5799b6){_0x261757=_['union'](_0x261757,_[_0x0ac9('0x5a')](_0x5799b6));_0x3ee664(_0x261757);})[_0x0ac9('0x4f')](function(_0x1d396f){_0x4b63da(_0x1d396f);});});}function getAgents(_0x18cbad,_0x4f393a){return new BPromise(function(_0x345c78,_0x1e9494){return db[_0x18cbad][_0x0ac9('0x50')]({'where':{'id':_0x4f393a}})[_0x0ac9('0x28')](function(_0x2b8480){return _0x2b8480['getAgents']({'attributes':['id'],'raw':!![]})[_0x0ac9('0x28')](function(_0x309b0a){var _0x2518c5=_[_0x0ac9('0x5b')](_0x309b0a,'id');_0x345c78(_0x2518c5);});})[_0x0ac9('0x4f')](function(_0xdb369a){_0x1e9494(_0xdb369a);});});}