a53d2a206c3ff65dd4cac53ab540f0565d7de375
[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 _0xd59e=['../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./userNotification.socket','register','sendStatus','status','count','offset','limit','set','Content-Range','json','apply','update','then','destroy','end','error','stack','name','sendUserNotification','body','hasOwnProperty','TemplateId','Sequelize','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','Missing\x20\x27view\x27\x20parameter','recipients','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','openchannelqueue','voicequeue','whatsappqueue','user','some','includes','model','toLowerCase','senderName','recipientsDescription','isEmpty','beep','SenderId','sortBy','sequelize','UserNotification','create','forEach','recipient','emit','userNotification:send','catch','Template','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','view','startCase','User','union','ids','queue','replace','Queue','all','findOne','html-pdf','rimraf','zip-dir','request-promise','bluebird','mustache','util','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service'];(function(_0x5d1d99,_0x10ca23){var _0x2957ec=function(_0x4f4ba){while(--_0x4f4ba){_0x5d1d99['push'](_0x5d1d99['shift']());}};_0x2957ec(++_0x10ca23);}(_0xd59e,0x167));var _0xed59=function(_0x43ef7a,_0x58ffe3){_0x43ef7a=_0x43ef7a-0x0;var _0x963b15=_0xd59e[_0x43ef7a];return _0x963b15;};'use strict';var pdf=require(_0xed59('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xed59('0x1'));var zipdir=require(_0xed59('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xed59('0x3'));var moment=require('moment');var BPromise=require(_0xed59('0x4'));var Mustache=require(_0xed59('0x5'));var util=require(_0xed59('0x6'));var path=require('path');var sox=require(_0xed59('0x7'));var csv=require(_0xed59('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xed59('0x9'));var squel=require(_0xed59('0xa'));var crypto=require(_0xed59('0xb'));var jsforce=require(_0xed59('0xc'));var deskjs=require(_0xed59('0xd'));var toCsv=require(_0xed59('0x8'));var querystring=require('querystring');var Papa=require(_0xed59('0xe'));var Redis=require(_0xed59('0xf'));var authService=require(_0xed59('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xed59('0x11'));var hardwareService=require(_0xed59('0x12'));var logger=require(_0xed59('0x13'))(_0xed59('0x14'));var utils=require(_0xed59('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xed59('0x16'));var db=require(_0xed59('0x17'))['db'];config[_0xed59('0x18')]=_[_0xed59('0x19')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xed59('0x1a'))(new Redis(config['redis']));require(_0xed59('0x1b'))[_0xed59('0x1c')](socket);function respondWithStatusCode(_0x3713e3,_0x465068){_0x465068=_0x465068||0xcc;return function(_0x3c3eff){if(_0x3c3eff){return _0x3713e3[_0xed59('0x1d')](_0x465068);}return _0x3713e3[_0xed59('0x1e')](_0x465068)['end']();};}function respondWithResult(_0x265f01,_0x98dc3a){_0x98dc3a=_0x98dc3a||0xc8;return function(_0x2a86e8){if(_0x2a86e8){return _0x265f01[_0xed59('0x1e')](_0x98dc3a)['json'](_0x2a86e8);}};}function respondWithFilteredResult(_0x59aa0e,_0x2795f4){return function(_0x107840){if(_0x107840){var _0x1b3240=_0x107840[_0xed59('0x1f')],_0x5991fa=_0x2795f4['offset'],_0x43955e=_0x2795f4[_0xed59('0x20')]+_0x2795f4[_0xed59('0x21')],_0xd3feca;if(_0x43955e>=_0x1b3240){_0x43955e=_0x1b3240;_0xd3feca=0xc8;}else{_0xd3feca=0xce;}_0x59aa0e['status'](_0xd3feca);return _0x59aa0e[_0xed59('0x22')](_0xed59('0x23'),_0x5991fa+'-'+_0x43955e+'/'+_0x1b3240)[_0xed59('0x24')](_0x107840);}return null;};}function patchUpdates(_0x2e0ea9){return function(_0x4f86cf){try{jsonpatch[_0xed59('0x25')](_0x4f86cf,_0x2e0ea9,!![]);}catch(_0x333329){return BPromise['reject'](_0x333329);}return _0x4f86cf['save']();};}function saveUpdates(_0x543d24,_0x31302b){return function(_0xf9018a){if(_0xf9018a){return _0xf9018a[_0xed59('0x26')](_0x543d24)[_0xed59('0x27')](function(_0x4f0b0f){return _0x4f0b0f;});}return null;};}function removeEntity(_0x3d7de5,_0x3179bd){return function(_0x2c5e40){if(_0x2c5e40){return _0x2c5e40[_0xed59('0x28')]()['then'](function(){_0x3d7de5[_0xed59('0x1e')](0xcc)[_0xed59('0x29')]();});}};}function handleEntityNotFound(_0x44b863,_0x48c468){return function(_0xa22664){if(!_0xa22664){_0x44b863[_0xed59('0x1d')](0x194);}return _0xa22664;};}function handleError(_0x223958,_0x5790cb){_0x5790cb=_0x5790cb||0x1f4;return function(_0x4f5503){logger[_0xed59('0x2a')](_0x4f5503[_0xed59('0x2b')]);if(_0x4f5503[_0xed59('0x2c')]){delete _0x4f5503[_0xed59('0x2c')];}_0x223958[_0xed59('0x1e')](_0x5790cb)['send'](_0x4f5503);};}exports[_0xed59('0x2d')]=function(_0x1ed843,_0xe3b304,_0x160259){if(!_0x1ed843['body']['hasOwnProperty']('text')&&!_0x1ed843[_0xed59('0x2e')][_0xed59('0x2f')](_0xed59('0x30'))){throw new db[(_0xed59('0x31'))][(_0xed59('0x32'))](_0xed59('0x33'));}else{if(_0x1ed843['body'][_0xed59('0x2f')](_0xed59('0x30'))&&!_0x1ed843[_0xed59('0x2e')][_0xed59('0x2f')]('view')){throw new db[(_0xed59('0x31'))][(_0xed59('0x32'))](_0xed59('0x34'));}if(!_0x1ed843[_0xed59('0x2e')][_0xed59('0x2f')](_0xed59('0x35'))){throw new db[(_0xed59('0x31'))][(_0xed59('0x32'))]('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x3d77ca=JSON['parse'](_0x1ed843[_0xed59('0x2e')][_0xed59('0x35')]);}catch(_0x1467fc){logger[_0xed59('0x2a')](_0x1467fc);throw new db[(_0xed59('0x31'))][(_0xed59('0x32'))](_0xed59('0x36'));}var _0x39a577=[_0xed59('0x37'),_0xed59('0x38'),_0xed59('0x39'),_0xed59('0x3a'),'smsqueue',_0xed59('0x3b'),_0xed59('0x3c'),'team',_0xed59('0x3d')];if(_[_0xed59('0x3e')](_0x3d77ca,function(_0x552a33){return!_[_0xed59('0x3f')](_0x39a577,_0x552a33[_0xed59('0x40')][_0xed59('0x41')]());})){throw new db[(_0xed59('0x31'))][(_0xed59('0x32'))]('Invalid\x20model\x20in\x20\x27recipients\x27\x20object');}}}var _0x569d91={};_0x569d91[_0xed59('0x42')]=_0x1ed843[_0xed59('0x2e')]['hasOwnProperty'](_0xed59('0x42'))?_0x1ed843[_0xed59('0x2e')]['senderName']:_0x1ed843['user']['fullname'];_0x569d91[_0xed59('0x43')]=_[_0xed59('0x44')](_0x1ed843['body'][_0xed59('0x43')])?null:_0x1ed843[_0xed59('0x2e')][_0xed59('0x43')];_0x569d91[_0xed59('0x45')]=_0x1ed843[_0xed59('0x2e')]['beep']||![];_0x569d91[_0xed59('0x46')]=_0x1ed843['user']['id'];return getContent(_0x1ed843[_0xed59('0x2e')])[_0xed59('0x27')](function(_0x3b6e9b){_0x569d91['body']=_0x3b6e9b;return getRecipients(_0x3d77ca);})[_0xed59('0x27')](function(_0x1a7bcf){_0x569d91['recipientsId']=_[_0xed59('0x47')](_0x1a7bcf)['join'](',');return db[_0xed59('0x48')]['transaction'](function(_0x4bfb3a){return db[_0xed59('0x49')][_0xed59('0x4a')](_0x569d91,{'raw':!![],'transaction':_0x4bfb3a})[_0xed59('0x27')](function(_0x5cec1d){var _0x5d8d3e={'sender':_0x569d91[_0xed59('0x42')],'description':_0x569d91['recipientsDescription'],'content':_0x569d91[_0xed59('0x2e')],'beep':_0x569d91[_0xed59('0x45')]};_0x1a7bcf[_0xed59('0x4b')](function(_0x40cf12){_0x5d8d3e[_0xed59('0x4c')]=_0x40cf12;socket[_0xed59('0x4d')](_0xed59('0x4e'),_0x5d8d3e);});return _0x5cec1d;});});})[_0xed59('0x27')](respondWithResult(_0xe3b304,0xc9))[_0xed59('0x4f')](handleError(_0xe3b304,null));};function getContent(_0x25289b){return new BPromise(function(_0x1bf479,_0x1ec00e){if(_0x25289b['text']){_0x1bf479(_0x25289b['text']);return;}return db[_0xed59('0x50')]['findOne']({'attributes':[_0xed59('0x51')],'where':{'id':_0x25289b['TemplateId']},'raw':!![]})[_0xed59('0x27')](function(_0x54fe3f){if(!_0x54fe3f)throw new db[(_0xed59('0x31'))][(_0xed59('0x32'))](_0xed59('0x52'));var _0x5522af=Mustache[_0xed59('0x53')](_0x54fe3f[_0xed59('0x51')],_0x25289b[_0xed59('0x54')]);_0x1bf479(_0x5522af);})[_0xed59('0x4f')](function(_0x17a307){_0x1ec00e(_0x17a307);});});}function getRecipients(_0x33a4f3){return new BPromise(function(_0x1edf76,_0x5f2585){var _0x1756e9=[];var _0x46c467=[];_0x33a4f3[_0xed59('0x4b')](function(_0xd71b79){var _0x344987=_[_0xed59('0x55')](_0xd71b79['model'][_0xed59('0x41')]());if(_0x344987===_0xed59('0x56')){_0x1756e9=_[_0xed59('0x57')](_0x1756e9,_0xd71b79[_0xed59('0x58')]);}else{if(_['includes'](_0x344987,_0xed59('0x59')))_0x344987=_0x344987[_0xed59('0x5a')]('queue',_0xed59('0x5b'));_0xd71b79[_0xed59('0x58')]['forEach'](function(_0x23059a){_0x46c467['push'](getAgents(_0x344987,_0x23059a));});}});return BPromise[_0xed59('0x5c')](_0x46c467)[_0xed59('0x27')](function(_0x88ee57){_0x1756e9=_[_0xed59('0x57')](_0x1756e9,_['flatten'](_0x88ee57));_0x1edf76(_0x1756e9);})[_0xed59('0x4f')](function(_0x164e15){_0x5f2585(_0x164e15);});});}function getAgents(_0x18e52b,_0x29f9ef){return new BPromise(function(_0x3968cd,_0xf473d){return db[_0x18e52b][_0xed59('0x5d')]({'where':{'id':_0x29f9ef}})[_0xed59('0x27')](function(_0x235039){return _0x235039['getAgents']({'attributes':['id'],'raw':!![]})['then'](function(_0x4a1b5b){var _0x5c7437=_['map'](_0x4a1b5b,'id');_0x3968cd(_0x5c7437);});})[_0xed59('0x4f')](function(_0x1d954a){_0xf473d(_0x1d954a);});});}