Built motion from commit f57cc866.|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 _0x43eb=['destroy','end','error','stack','name','send','body','hasOwnProperty','text','TemplateId','Sequelize','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','chatqueue','faxqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','team','user','some','includes','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','isEmpty','beep','SenderId','recipientsId','sortBy','sequelize','transaction','UserNotification','create','recipient','emit','userNotification:send','catch','Template','findOne','Invalid\x20\x27TemplateId\x27\x20parameter','render','html','view','startCase','model','toLowerCase','union','ids','queue','Queue','push','all','flatten','getAgents','map','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','redis','localhost','socket.io-emitter','./userNotification.socket','register','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then'];(function(_0x571c1d,_0x3b0586){var _0x33c609=function(_0x226499){while(--_0x226499){_0x571c1d['push'](_0x571c1d['shift']());}};_0x33c609(++_0x3b0586);}(_0x43eb,0x172));var _0xb43e=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x43eb[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xb43e('0x0'));var zipdir=require(_0xb43e('0x1'));var jsonpatch=require(_0xb43e('0x2'));var rp=require(_0xb43e('0x3'));var moment=require('moment');var BPromise=require(_0xb43e('0x4'));var Mustache=require('mustache');var util=require(_0xb43e('0x5'));var path=require(_0xb43e('0x6'));var sox=require('sox');var csv=require(_0xb43e('0x7'));var ejs=require(_0xb43e('0x8'));var fs=require('fs');var fs_extra=require(_0xb43e('0x9'));var _=require(_0xb43e('0xa'));var squel=require(_0xb43e('0xb'));var crypto=require(_0xb43e('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xb43e('0xd'));var toCsv=require(_0xb43e('0x7'));var querystring=require(_0xb43e('0xe'));var Papa=require(_0xb43e('0xf'));var Redis=require(_0xb43e('0x10'));var authService=require(_0xb43e('0x11'));var qs=require(_0xb43e('0x12'));var as=require(_0xb43e('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xb43e('0x14'));var utils=require(_0xb43e('0x15'));var config=require(_0xb43e('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0xb43e('0x17')]=_['defaults'](config[_0xb43e('0x17')],{'host':_0xb43e('0x18'),'port':0x18eb});var socket=require(_0xb43e('0x19'))(new Redis(config['redis']));require(_0xb43e('0x1a'))[_0xb43e('0x1b')](socket);function respondWithStatusCode(_0x2168b9,_0x26f5e4){_0x26f5e4=_0x26f5e4||0xcc;return function(_0x335eab){if(_0x335eab){return _0x2168b9[_0xb43e('0x1c')](_0x26f5e4);}return _0x2168b9[_0xb43e('0x1d')](_0x26f5e4)['end']();};}function respondWithResult(_0x267dc3,_0x3d2a8a){_0x3d2a8a=_0x3d2a8a||0xc8;return function(_0x47ab08){if(_0x47ab08){return _0x267dc3[_0xb43e('0x1d')](_0x3d2a8a)[_0xb43e('0x1e')](_0x47ab08);}};}function respondWithFilteredResult(_0xdf49b7,_0x5de8e0){return function(_0xfb2d95){if(_0xfb2d95){var _0x4bc4d9=typeof _0x5de8e0[_0xb43e('0x1f')]===_0xb43e('0x20')&&typeof _0x5de8e0[_0xb43e('0x21')]===_0xb43e('0x20');var _0xa858a4=_0xfb2d95[_0xb43e('0x22')];var _0x381268=_0x4bc4d9?0x0:_0x5de8e0[_0xb43e('0x1f')];var _0x1b7385=_0x4bc4d9?_0xfb2d95[_0xb43e('0x22')]:_0x5de8e0['offset']+_0x5de8e0[_0xb43e('0x21')];var _0x11299c;if(_0x1b7385>=_0xa858a4){_0x1b7385=_0xa858a4;_0x11299c=0xc8;}else{_0x11299c=0xce;}_0xdf49b7[_0xb43e('0x1d')](_0x11299c);return _0xdf49b7[_0xb43e('0x23')](_0xb43e('0x24'),_0x381268+'-'+_0x1b7385+'/'+_0xa858a4)['json'](_0xfb2d95);}return null;};}function patchUpdates(_0x64fe86){return function(_0x58b623){try{jsonpatch[_0xb43e('0x25')](_0x58b623,_0x64fe86,!![]);}catch(_0xd806aa){return BPromise[_0xb43e('0x26')](_0xd806aa);}return _0x58b623[_0xb43e('0x27')]();};}function saveUpdates(_0x5b2f7a,_0x50978a){return function(_0x2f8e5f){if(_0x2f8e5f){return _0x2f8e5f[_0xb43e('0x28')](_0x5b2f7a)[_0xb43e('0x29')](function(_0x19b3c1){return _0x19b3c1;});}return null;};}function removeEntity(_0x3cc958,_0x37e198){return function(_0x57311b){if(_0x57311b){return _0x57311b[_0xb43e('0x2a')]()[_0xb43e('0x29')](function(){_0x3cc958['status'](0xcc)[_0xb43e('0x2b')]();});}};}function handleEntityNotFound(_0x21d4a2,_0x2a1852){return function(_0x33b4a1){if(!_0x33b4a1){_0x21d4a2[_0xb43e('0x1c')](0x194);}return _0x33b4a1;};}function handleError(_0x4404bd,_0x219cd0){_0x219cd0=_0x219cd0||0x1f4;return function(_0x4d2aff){logger[_0xb43e('0x2c')](_0x4d2aff[_0xb43e('0x2d')]);if(_0x4d2aff[_0xb43e('0x2e')]){delete _0x4d2aff[_0xb43e('0x2e')];}_0x4404bd['status'](_0x219cd0)[_0xb43e('0x2f')](_0x4d2aff);};}exports['sendUserNotification']=function(_0x26282a,_0x439816,_0x40e4ca){if(!_0x26282a[_0xb43e('0x30')][_0xb43e('0x31')](_0xb43e('0x32'))&&!_0x26282a[_0xb43e('0x30')]['hasOwnProperty'](_0xb43e('0x33'))){throw new db[(_0xb43e('0x34'))][(_0xb43e('0x35'))](_0xb43e('0x36'));}else{if(_0x26282a[_0xb43e('0x30')][_0xb43e('0x31')]('TemplateId')&&!_0x26282a[_0xb43e('0x30')][_0xb43e('0x31')]('view')){throw new db[(_0xb43e('0x34'))][(_0xb43e('0x35'))](_0xb43e('0x37'));}if(!_0x26282a[_0xb43e('0x30')][_0xb43e('0x31')](_0xb43e('0x38'))){throw new db['Sequelize'][(_0xb43e('0x35'))](_0xb43e('0x39'));}else{try{var _0x579550=JSON['parse'](_0x26282a['body'][_0xb43e('0x38')]);}catch(_0x41c833){logger[_0xb43e('0x2c')](_0x41c833);throw new db[(_0xb43e('0x34'))]['ValidationError']('Invalid\x20\x27recipients\x27\x20object');}var _0x549d51=[_0xb43e('0x3a'),_0xb43e('0x3b'),'mailqueue',_0xb43e('0x3c'),_0xb43e('0x3d'),_0xb43e('0x3e'),_0xb43e('0x3f'),_0xb43e('0x40'),_0xb43e('0x41')];if(_[_0xb43e('0x42')](_0x579550,function(_0x466400){return!_[_0xb43e('0x43')](_0x549d51,_0x466400['model']['toLowerCase']());})){throw new db[(_0xb43e('0x34'))][(_0xb43e('0x35'))](_0xb43e('0x44'));}}}var _0x3cce8c={};_0x3cce8c[_0xb43e('0x45')]=_0x26282a[_0xb43e('0x30')][_0xb43e('0x31')](_0xb43e('0x45'))?_0x26282a[_0xb43e('0x30')][_0xb43e('0x45')]:_0x26282a[_0xb43e('0x41')][_0xb43e('0x46')];_0x3cce8c[_0xb43e('0x47')]=_[_0xb43e('0x48')](_0x26282a['body'][_0xb43e('0x47')])?null:_0x26282a[_0xb43e('0x30')][_0xb43e('0x47')];_0x3cce8c[_0xb43e('0x49')]=_0x26282a[_0xb43e('0x30')][_0xb43e('0x49')]||![];_0x3cce8c[_0xb43e('0x4a')]=_0x26282a[_0xb43e('0x41')]['id'];return getContent(_0x26282a['body'])[_0xb43e('0x29')](function(_0xb77c8d){_0x3cce8c[_0xb43e('0x30')]=_0xb77c8d;return getRecipients(_0x579550);})[_0xb43e('0x29')](function(_0x4467c6){_0x3cce8c[_0xb43e('0x4b')]=_[_0xb43e('0x4c')](_0x4467c6)['join'](',');return db[_0xb43e('0x4d')][_0xb43e('0x4e')](function(_0x3cf92e){return db[_0xb43e('0x4f')][_0xb43e('0x50')](_0x3cce8c,{'raw':!![],'transaction':_0x3cf92e})[_0xb43e('0x29')](function(_0x5bbc64){var _0x1e5377={'sender':_0x3cce8c[_0xb43e('0x45')],'description':_0x3cce8c[_0xb43e('0x47')],'content':_0x3cce8c[_0xb43e('0x30')],'beep':_0x3cce8c[_0xb43e('0x49')]};_0x4467c6['forEach'](function(_0x121067){_0x1e5377[_0xb43e('0x51')]=_0x121067;socket[_0xb43e('0x52')](_0xb43e('0x53'),_0x1e5377);});return _0x5bbc64;});});})[_0xb43e('0x29')](respondWithResult(_0x439816,0xc9))[_0xb43e('0x54')](handleError(_0x439816,null));};function getContent(_0x33acbd){return new BPromise(function(_0x35e223,_0x562f06){if(_0x33acbd[_0xb43e('0x32')]){_0x35e223(_0x33acbd[_0xb43e('0x32')]);return;}return db[_0xb43e('0x55')][_0xb43e('0x56')]({'attributes':['html'],'where':{'id':_0x33acbd[_0xb43e('0x33')]},'raw':!![]})[_0xb43e('0x29')](function(_0xa0e7ba){if(!_0xa0e7ba)throw new db['Sequelize'][(_0xb43e('0x35'))](_0xb43e('0x57'));var _0x1d59b2=Mustache[_0xb43e('0x58')](_0xa0e7ba[_0xb43e('0x59')],_0x33acbd[_0xb43e('0x5a')]);_0x35e223(_0x1d59b2);})[_0xb43e('0x54')](function(_0x5ec042){_0x562f06(_0x5ec042);});});}function getRecipients(_0x494b93){return new BPromise(function(_0x567c17,_0x2f5d45){var _0x349e65=[];var _0x33d961=[];_0x494b93['forEach'](function(_0x108851){var _0x1cdb5c=_[_0xb43e('0x5b')](_0x108851[_0xb43e('0x5c')][_0xb43e('0x5d')]());if(_0x1cdb5c==='User'){_0x349e65=_[_0xb43e('0x5e')](_0x349e65,_0x108851[_0xb43e('0x5f')]);}else{if(_[_0xb43e('0x43')](_0x1cdb5c,_0xb43e('0x60')))_0x1cdb5c=_0x1cdb5c['replace'](_0xb43e('0x60'),_0xb43e('0x61'));_0x108851[_0xb43e('0x5f')]['forEach'](function(_0x426ada){_0x33d961[_0xb43e('0x62')](getAgents(_0x1cdb5c,_0x426ada));});}});return BPromise[_0xb43e('0x63')](_0x33d961)[_0xb43e('0x29')](function(_0x7828ec){_0x349e65=_['union'](_0x349e65,_[_0xb43e('0x64')](_0x7828ec));_0x567c17(_0x349e65);})[_0xb43e('0x54')](function(_0x1fc636){_0x2f5d45(_0x1fc636);});});}function getAgents(_0x1ec57f,_0x337d43){return new BPromise(function(_0x17dc1a,_0x43cde7){return db[_0x1ec57f][_0xb43e('0x56')]({'where':{'id':_0x337d43}})[_0xb43e('0x29')](function(_0x3cbd1e){return _0x3cbd1e[_0xb43e('0x65')]({'attributes':['id'],'raw':!![]})[_0xb43e('0x29')](function(_0x4e6382){var _0x16b47d=_[_0xb43e('0x66')](_0x4e6382,'id');_0x17dc1a(_0x16b47d);});})[_0xb43e('0x54')](function(_0x2a6d3e){_0x43cde7(_0x2a6d3e);});});}