Built motion from commit c116dc8b.|2.6.30
[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 _0x3440=['sequelize','transaction','UserNotification','create','forEach','recipient','userNotification:send','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','catch','startCase','toLowerCase','union','ids','queue','replace','Queue','push','all','flatten','map','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','register','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','reject','update','then','destroy','name','sendUserNotification','hasOwnProperty','text','body','TemplateId','Sequelize','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','Missing\x20\x27view\x27\x20parameter','recipients','parse','error','chatqueue','faxqueue','mailqueue','openchannelqueue','voicequeue','whatsappqueue','team','user','some','includes','model','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','recipientsDescription','beep','SenderId','recipientsId','sortBy'];(function(_0x224bb1,_0x18b69b){var _0x467e2e=function(_0x24ab93){while(--_0x24ab93){_0x224bb1['push'](_0x224bb1['shift']());}};_0x467e2e(++_0x18b69b);}(_0x3440,0xda));var _0x0344=function(_0x47ad53,_0x5de8b4){_0x47ad53=_0x47ad53-0x0;var _0x1f3f03=_0x3440[_0x47ad53];return _0x1f3f03;};'use strict';var emlformat=require(_0x0344('0x0'));var rimraf=require(_0x0344('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0344('0x2'));var rp=require('request-promise');var moment=require(_0x0344('0x3'));var BPromise=require(_0x0344('0x4'));var Mustache=require(_0x0344('0x5'));var util=require(_0x0344('0x6'));var path=require(_0x0344('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x0344('0x8'));var fs=require('fs');var fs_extra=require(_0x0344('0x9'));var _=require(_0x0344('0xa'));var squel=require(_0x0344('0xb'));var crypto=require(_0x0344('0xc'));var jsforce=require(_0x0344('0xd'));var deskjs=require(_0x0344('0xe'));var toCsv=require('to-csv');var querystring=require(_0x0344('0xf'));var Papa=require(_0x0344('0x10'));var Redis=require(_0x0344('0x11'));var authService=require(_0x0344('0x12'));var qs=require(_0x0344('0x13'));var as=require(_0x0344('0x14'));var hardwareService=require(_0x0344('0x15'));var logger=require('../../config/logger')(_0x0344('0x16'));var utils=require(_0x0344('0x17'));var config=require(_0x0344('0x18'));var licenseUtil=require(_0x0344('0x19'));var db=require(_0x0344('0x1a'))['db'];config[_0x0344('0x1b')]=_['defaults'](config['redis'],{'host':_0x0344('0x1c'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require('./userNotification.socket')[_0x0344('0x1d')](socket);function respondWithStatusCode(_0x5d5c21,_0x416b82){_0x416b82=_0x416b82||0xcc;return function(_0x225644){if(_0x225644){return _0x5d5c21[_0x0344('0x1e')](_0x416b82);}return _0x5d5c21[_0x0344('0x1f')](_0x416b82)[_0x0344('0x20')]();};}function respondWithResult(_0x7e08fe,_0x1f4888){_0x1f4888=_0x1f4888||0xc8;return function(_0x545cc3){if(_0x545cc3){return _0x7e08fe[_0x0344('0x1f')](_0x1f4888)['json'](_0x545cc3);}};}function respondWithFilteredResult(_0x560c2e,_0x1dddb8){return function(_0x1fb56e){if(_0x1fb56e){var _0x27c6c3=typeof _0x1dddb8[_0x0344('0x21')]===_0x0344('0x22')&&typeof _0x1dddb8[_0x0344('0x23')]===_0x0344('0x22');var _0x2b5e73=_0x1fb56e[_0x0344('0x24')];var _0x5b2876=_0x27c6c3?0x0:_0x1dddb8[_0x0344('0x21')];var _0x76b57e=_0x27c6c3?_0x1fb56e['count']:_0x1dddb8[_0x0344('0x21')]+_0x1dddb8[_0x0344('0x23')];var _0x473b57;if(_0x76b57e>=_0x2b5e73){_0x76b57e=_0x2b5e73;_0x473b57=0xc8;}else{_0x473b57=0xce;}_0x560c2e[_0x0344('0x1f')](_0x473b57);return _0x560c2e[_0x0344('0x25')](_0x0344('0x26'),_0x5b2876+'-'+_0x76b57e+'/'+_0x2b5e73)[_0x0344('0x27')](_0x1fb56e);}return null;};}function patchUpdates(_0x310032){return function(_0xdd026b){try{jsonpatch['apply'](_0xdd026b,_0x310032,!![]);}catch(_0x4f0e7e){return BPromise[_0x0344('0x28')](_0x4f0e7e);}return _0xdd026b['save']();};}function saveUpdates(_0x21ef14,_0x135f69){return function(_0x23770c){if(_0x23770c){return _0x23770c[_0x0344('0x29')](_0x21ef14)[_0x0344('0x2a')](function(_0x2d02c2){return _0x2d02c2;});}return null;};}function removeEntity(_0xb1cdc5,_0x2a0c58){return function(_0x39a73d){if(_0x39a73d){return _0x39a73d[_0x0344('0x2b')]()[_0x0344('0x2a')](function(){_0xb1cdc5[_0x0344('0x1f')](0xcc)[_0x0344('0x20')]();});}};}function handleEntityNotFound(_0x210bf5,_0x3d18c8){return function(_0x245c5a){if(!_0x245c5a){_0x210bf5[_0x0344('0x1e')](0x194);}return _0x245c5a;};}function handleError(_0x592412,_0x51ab50){_0x51ab50=_0x51ab50||0x1f4;return function(_0x3fcf15){logger['error'](_0x3fcf15['stack']);if(_0x3fcf15[_0x0344('0x2c')]){delete _0x3fcf15[_0x0344('0x2c')];}_0x592412[_0x0344('0x1f')](_0x51ab50)['send'](_0x3fcf15);};}exports[_0x0344('0x2d')]=function(_0x127f5e,_0x1532ee,_0x504219){if(!_0x127f5e['body'][_0x0344('0x2e')](_0x0344('0x2f'))&&!_0x127f5e[_0x0344('0x30')]['hasOwnProperty'](_0x0344('0x31'))){throw new db[(_0x0344('0x32'))][(_0x0344('0x33'))](_0x0344('0x34'));}else{if(_0x127f5e['body']['hasOwnProperty'](_0x0344('0x31'))&&!_0x127f5e[_0x0344('0x30')][_0x0344('0x2e')](_0x0344('0x35'))){throw new db[(_0x0344('0x32'))][(_0x0344('0x33'))](_0x0344('0x36'));}if(!_0x127f5e[_0x0344('0x30')]['hasOwnProperty'](_0x0344('0x37'))){throw new db['Sequelize'][(_0x0344('0x33'))]('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0xff2345=JSON[_0x0344('0x38')](_0x127f5e[_0x0344('0x30')][_0x0344('0x37')]);}catch(_0xe15ecd){logger[_0x0344('0x39')](_0xe15ecd);throw new db['Sequelize']['ValidationError']('Invalid\x20\x27recipients\x27\x20object');}var _0x37af1d=[_0x0344('0x3a'),_0x0344('0x3b'),_0x0344('0x3c'),_0x0344('0x3d'),'smsqueue',_0x0344('0x3e'),_0x0344('0x3f'),_0x0344('0x40'),_0x0344('0x41')];if(_[_0x0344('0x42')](_0xff2345,function(_0x44e198){return!_[_0x0344('0x43')](_0x37af1d,_0x44e198[_0x0344('0x44')]['toLowerCase']());})){throw new db[(_0x0344('0x32'))]['ValidationError'](_0x0344('0x45'));}}}var _0x48f947={};_0x48f947[_0x0344('0x46')]=_0x127f5e['body'][_0x0344('0x2e')]('senderName')?_0x127f5e[_0x0344('0x30')][_0x0344('0x46')]:_0x127f5e['user']['fullname'];_0x48f947['recipientsDescription']=_['isEmpty'](_0x127f5e[_0x0344('0x30')][_0x0344('0x47')])?null:_0x127f5e[_0x0344('0x30')]['recipientsDescription'];_0x48f947[_0x0344('0x48')]=_0x127f5e['body']['beep']||![];_0x48f947[_0x0344('0x49')]=_0x127f5e[_0x0344('0x41')]['id'];return getContent(_0x127f5e['body'])[_0x0344('0x2a')](function(_0x22c9da){_0x48f947['body']=_0x22c9da;return getRecipients(_0xff2345);})[_0x0344('0x2a')](function(_0x21c088){_0x48f947[_0x0344('0x4a')]=_[_0x0344('0x4b')](_0x21c088)['join'](',');return db[_0x0344('0x4c')][_0x0344('0x4d')](function(_0x1af45b){return db[_0x0344('0x4e')][_0x0344('0x4f')](_0x48f947,{'raw':!![],'transaction':_0x1af45b})['then'](function(_0x18efd4){var _0x422060={'sender':_0x48f947[_0x0344('0x46')],'description':_0x48f947[_0x0344('0x47')],'content':_0x48f947[_0x0344('0x30')],'beep':_0x48f947[_0x0344('0x48')]};_0x21c088[_0x0344('0x50')](function(_0x32a720){_0x422060[_0x0344('0x51')]=_0x32a720;socket['emit'](_0x0344('0x52'),_0x422060);});return _0x18efd4;});});})[_0x0344('0x2a')](respondWithResult(_0x1532ee,0xc9))['catch'](handleError(_0x1532ee,null));};function getContent(_0x1ae0e1){return new BPromise(function(_0x20567e,_0x3713cc){if(_0x1ae0e1[_0x0344('0x2f')]){_0x20567e(_0x1ae0e1[_0x0344('0x2f')]);return;}return db['Template'][_0x0344('0x53')]({'attributes':[_0x0344('0x54')],'where':{'id':_0x1ae0e1[_0x0344('0x31')]},'raw':!![]})[_0x0344('0x2a')](function(_0x4df402){if(!_0x4df402)throw new db[(_0x0344('0x32'))][(_0x0344('0x33'))](_0x0344('0x55'));var _0x2a1082=Mustache['render'](_0x4df402[_0x0344('0x54')],_0x1ae0e1[_0x0344('0x35')]);_0x20567e(_0x2a1082);})[_0x0344('0x56')](function(_0x58ae70){_0x3713cc(_0x58ae70);});});}function getRecipients(_0x7f48db){return new BPromise(function(_0x19278a,_0x100840){var _0x171af4=[];var _0x2e3ae5=[];_0x7f48db[_0x0344('0x50')](function(_0x1d8ef1){var _0x57bfe0=_[_0x0344('0x57')](_0x1d8ef1[_0x0344('0x44')][_0x0344('0x58')]());if(_0x57bfe0==='User'){_0x171af4=_[_0x0344('0x59')](_0x171af4,_0x1d8ef1[_0x0344('0x5a')]);}else{if(_[_0x0344('0x43')](_0x57bfe0,_0x0344('0x5b')))_0x57bfe0=_0x57bfe0[_0x0344('0x5c')](_0x0344('0x5b'),_0x0344('0x5d'));_0x1d8ef1[_0x0344('0x5a')][_0x0344('0x50')](function(_0x28dd0b){_0x2e3ae5[_0x0344('0x5e')](getAgents(_0x57bfe0,_0x28dd0b));});}});return BPromise[_0x0344('0x5f')](_0x2e3ae5)[_0x0344('0x2a')](function(_0x16ef2a){_0x171af4=_[_0x0344('0x59')](_0x171af4,_[_0x0344('0x60')](_0x16ef2a));_0x19278a(_0x171af4);})[_0x0344('0x56')](function(_0x3d00ef){_0x100840(_0x3d00ef);});});}function getAgents(_0x4bc0b0,_0x3c1fdd){return new BPromise(function(_0x29a203,_0x4497b0){return db[_0x4bc0b0]['findOne']({'where':{'id':_0x3c1fdd}})['then'](function(_0x398b2c){return _0x398b2c['getAgents']({'attributes':['id'],'raw':!![]})[_0x0344('0x2a')](function(_0x51917b){var _0x1fbcac=_[_0x0344('0x61')](_0x51917b,'id');_0x29a203(_0x1fbcac);});})[_0x0344('0x56')](function(_0x5ebb32){_0x4497b0(_0x5ebb32);});});}