Built motion from commit da24aabd.|2.6.20
[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 _0x9074=['../../config/logger','api','../../config/environment','../../config/license/util','defaults','redis','./userNotification.socket','register','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','update','destroy','then','stack','name','send','sendUserNotification','text','body','hasOwnProperty','Sequelize','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','TemplateId','Missing\x20\x27view\x27\x20parameter','Missing\x20\x27recipients\x27\x20parameter','parse','recipients','error','Invalid\x20\x27recipients\x27\x20object','chatqueue','mailqueue','smsqueue','voicequeue','whatsappqueue','team','some','includes','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','user','fullname','recipientsDescription','isEmpty','beep','SenderId','sortBy','sequelize','UserNotification','create','forEach','emit','userNotification:send','Template','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','catch','model','User','ids','queue','replace','Queue','union','flatten','findOne','getAgents','map','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x14b7c4,_0x3ce59c){var _0x18ef66=function(_0xdc96d1){while(--_0xdc96d1){_0x14b7c4['push'](_0x14b7c4['shift']());}};_0x18ef66(++_0x3ce59c);}(_0x9074,0x120));var _0x4907=function(_0x4799e5,_0x3d622f){_0x4799e5=_0x4799e5-0x0;var _0x4ed3e4=_0x9074[_0x4799e5];return _0x4ed3e4;};'use strict';var emlformat=require(_0x4907('0x0'));var rimraf=require(_0x4907('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4907('0x2'));var rp=require(_0x4907('0x3'));var moment=require(_0x4907('0x4'));var BPromise=require(_0x4907('0x5'));var Mustache=require(_0x4907('0x6'));var util=require(_0x4907('0x7'));var path=require(_0x4907('0x8'));var sox=require(_0x4907('0x9'));var csv=require(_0x4907('0xa'));var ejs=require(_0x4907('0xb'));var fs=require('fs');var fs_extra=require(_0x4907('0xc'));var _=require(_0x4907('0xd'));var squel=require(_0x4907('0xe'));var crypto=require(_0x4907('0xf'));var jsforce=require(_0x4907('0x10'));var deskjs=require(_0x4907('0x11'));var toCsv=require('to-csv');var querystring=require(_0x4907('0x12'));var Papa=require('papaparse');var Redis=require(_0x4907('0x13'));var authService=require(_0x4907('0x14'));var qs=require(_0x4907('0x15'));var as=require(_0x4907('0x16'));var hardwareService=require(_0x4907('0x17'));var logger=require(_0x4907('0x18'))(_0x4907('0x19'));var utils=require('../../config/utils');var config=require(_0x4907('0x1a'));var licenseUtil=require(_0x4907('0x1b'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x4907('0x1c')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x4907('0x1d')]));require(_0x4907('0x1e'))[_0x4907('0x1f')](socket);function respondWithStatusCode(_0x401333,_0x250f75){_0x250f75=_0x250f75||0xcc;return function(_0x33ac33){if(_0x33ac33){return _0x401333[_0x4907('0x20')](_0x250f75);}return _0x401333[_0x4907('0x21')](_0x250f75)[_0x4907('0x22')]();};}function respondWithResult(_0xee5e98,_0x3ff7a5){_0x3ff7a5=_0x3ff7a5||0xc8;return function(_0x1f8069){if(_0x1f8069){return _0xee5e98[_0x4907('0x21')](_0x3ff7a5)[_0x4907('0x23')](_0x1f8069);}};}function respondWithFilteredResult(_0x433517,_0xd9554a){return function(_0x2924c6){if(_0x2924c6){var _0x8072ea=typeof _0xd9554a[_0x4907('0x24')]==='undefined'&&typeof _0xd9554a[_0x4907('0x25')]===_0x4907('0x26');var _0x4e3dcc=_0x2924c6[_0x4907('0x27')];var _0x142be4=_0x8072ea?0x0:_0xd9554a[_0x4907('0x24')];var _0xddb107=_0x8072ea?_0x2924c6[_0x4907('0x27')]:_0xd9554a['offset']+_0xd9554a['limit'];var _0x290f4a;if(_0xddb107>=_0x4e3dcc){_0xddb107=_0x4e3dcc;_0x290f4a=0xc8;}else{_0x290f4a=0xce;}_0x433517['status'](_0x290f4a);return _0x433517[_0x4907('0x28')](_0x4907('0x29'),_0x142be4+'-'+_0xddb107+'/'+_0x4e3dcc)[_0x4907('0x23')](_0x2924c6);}return null;};}function patchUpdates(_0x4376a0){return function(_0x533800){try{jsonpatch[_0x4907('0x2a')](_0x533800,_0x4376a0,!![]);}catch(_0x40dc59){return BPromise[_0x4907('0x2b')](_0x40dc59);}return _0x533800['save']();};}function saveUpdates(_0x24492f,_0x22cf0b){return function(_0x544cc2){if(_0x544cc2){return _0x544cc2[_0x4907('0x2c')](_0x24492f)['then'](function(_0x2712be){return _0x2712be;});}return null;};}function removeEntity(_0x6b129c,_0x13ae43){return function(_0x40d8d0){if(_0x40d8d0){return _0x40d8d0[_0x4907('0x2d')]()[_0x4907('0x2e')](function(){_0x6b129c[_0x4907('0x21')](0xcc)[_0x4907('0x22')]();});}};}function handleEntityNotFound(_0x41b633,_0x372735){return function(_0x45deea){if(!_0x45deea){_0x41b633[_0x4907('0x20')](0x194);}return _0x45deea;};}function handleError(_0x128b8a,_0x203ec8){_0x203ec8=_0x203ec8||0x1f4;return function(_0x1a1b7e){logger['error'](_0x1a1b7e[_0x4907('0x2f')]);if(_0x1a1b7e[_0x4907('0x30')]){delete _0x1a1b7e[_0x4907('0x30')];}_0x128b8a[_0x4907('0x21')](_0x203ec8)[_0x4907('0x31')](_0x1a1b7e);};}exports[_0x4907('0x32')]=function(_0x34b4e5,_0x85b177,_0x2f31ad){if(!_0x34b4e5['body']['hasOwnProperty'](_0x4907('0x33'))&&!_0x34b4e5[_0x4907('0x34')][_0x4907('0x35')]('TemplateId')){throw new db[(_0x4907('0x36'))][(_0x4907('0x37'))](_0x4907('0x38'));}else{if(_0x34b4e5['body'][_0x4907('0x35')](_0x4907('0x39'))&&!_0x34b4e5[_0x4907('0x34')][_0x4907('0x35')]('view')){throw new db['Sequelize'][(_0x4907('0x37'))](_0x4907('0x3a'));}if(!_0x34b4e5[_0x4907('0x34')][_0x4907('0x35')]('recipients')){throw new db[(_0x4907('0x36'))][(_0x4907('0x37'))](_0x4907('0x3b'));}else{try{var _0x4a27b4=JSON[_0x4907('0x3c')](_0x34b4e5[_0x4907('0x34')][_0x4907('0x3d')]);}catch(_0x462d66){logger[_0x4907('0x3e')](_0x462d66);throw new db['Sequelize'][(_0x4907('0x37'))](_0x4907('0x3f'));}var _0x2c56bd=[_0x4907('0x40'),'faxqueue',_0x4907('0x41'),'openchannelqueue',_0x4907('0x42'),_0x4907('0x43'),_0x4907('0x44'),_0x4907('0x45'),'user'];if(_[_0x4907('0x46')](_0x4a27b4,function(_0x50f29a){return!_[_0x4907('0x47')](_0x2c56bd,_0x50f29a['model'][_0x4907('0x48')]());})){throw new db[(_0x4907('0x36'))][(_0x4907('0x37'))](_0x4907('0x49'));}}}var _0x2a2f2e={};_0x2a2f2e['senderName']=_0x34b4e5['body'][_0x4907('0x35')](_0x4907('0x4a'))?_0x34b4e5[_0x4907('0x34')][_0x4907('0x4a')]:_0x34b4e5[_0x4907('0x4b')][_0x4907('0x4c')];_0x2a2f2e[_0x4907('0x4d')]=_[_0x4907('0x4e')](_0x34b4e5[_0x4907('0x34')]['recipientsDescription'])?null:_0x34b4e5[_0x4907('0x34')][_0x4907('0x4d')];_0x2a2f2e['beep']=_0x34b4e5[_0x4907('0x34')][_0x4907('0x4f')]||![];_0x2a2f2e[_0x4907('0x50')]=_0x34b4e5[_0x4907('0x4b')]['id'];return getContent(_0x34b4e5[_0x4907('0x34')])[_0x4907('0x2e')](function(_0x5196f4){_0x2a2f2e[_0x4907('0x34')]=_0x5196f4;return getRecipients(_0x4a27b4);})[_0x4907('0x2e')](function(_0x18a590){_0x2a2f2e['recipientsId']=_[_0x4907('0x51')](_0x18a590)['join'](',');return db[_0x4907('0x52')]['transaction'](function(_0x4b4cfc){return db[_0x4907('0x53')][_0x4907('0x54')](_0x2a2f2e,{'raw':!![],'transaction':_0x4b4cfc})[_0x4907('0x2e')](function(_0x4b4301){var _0xc52b5a={'sender':_0x2a2f2e[_0x4907('0x4a')],'description':_0x2a2f2e[_0x4907('0x4d')],'content':_0x2a2f2e[_0x4907('0x34')],'beep':_0x2a2f2e['beep']};_0x18a590[_0x4907('0x55')](function(_0x48ce67){_0xc52b5a['recipient']=_0x48ce67;socket[_0x4907('0x56')](_0x4907('0x57'),_0xc52b5a);});return _0x4b4301;});});})[_0x4907('0x2e')](respondWithResult(_0x85b177,0xc9))['catch'](handleError(_0x85b177,null));};function getContent(_0x314b0e){return new BPromise(function(_0x2af8a9,_0x25abd4){if(_0x314b0e['text']){_0x2af8a9(_0x314b0e['text']);return;}return db[_0x4907('0x58')]['findOne']({'attributes':[_0x4907('0x59')],'where':{'id':_0x314b0e[_0x4907('0x39')]},'raw':!![]})['then'](function(_0x3cbfaa){if(!_0x3cbfaa)throw new db[(_0x4907('0x36'))][(_0x4907('0x37'))](_0x4907('0x5a'));var _0x44bf77=Mustache[_0x4907('0x5b')](_0x3cbfaa[_0x4907('0x59')],_0x314b0e['view']);_0x2af8a9(_0x44bf77);})[_0x4907('0x5c')](function(_0x3ccbd9){_0x25abd4(_0x3ccbd9);});});}function getRecipients(_0x54dbef){return new BPromise(function(_0x3bc19b,_0x1f91e2){var _0x24f2e7=[];var _0x270008=[];_0x54dbef['forEach'](function(_0x4c68e2){var _0x198394=_['startCase'](_0x4c68e2[_0x4907('0x5d')][_0x4907('0x48')]());if(_0x198394===_0x4907('0x5e')){_0x24f2e7=_['union'](_0x24f2e7,_0x4c68e2[_0x4907('0x5f')]);}else{if(_[_0x4907('0x47')](_0x198394,_0x4907('0x60')))_0x198394=_0x198394[_0x4907('0x61')]('queue',_0x4907('0x62'));_0x4c68e2[_0x4907('0x5f')][_0x4907('0x55')](function(_0x2b9da4){_0x270008['push'](getAgents(_0x198394,_0x2b9da4));});}});return BPromise['all'](_0x270008)[_0x4907('0x2e')](function(_0xfc5322){_0x24f2e7=_[_0x4907('0x63')](_0x24f2e7,_[_0x4907('0x64')](_0xfc5322));_0x3bc19b(_0x24f2e7);})[_0x4907('0x5c')](function(_0x1921ba){_0x1f91e2(_0x1921ba);});});}function getAgents(_0x22e52e,_0x9b4747){return new BPromise(function(_0x3a6ed0,_0x260872){return db[_0x22e52e][_0x4907('0x65')]({'where':{'id':_0x9b4747}})[_0x4907('0x2e')](function(_0x5eebee){return _0x5eebee[_0x4907('0x66')]({'attributes':['id'],'raw':!![]})['then'](function(_0x51e7b6){var _0x66870e=_[_0x4907('0x67')](_0x51e7b6,'id');_0x3a6ed0(_0x66870e);});})[_0x4907('0x5c')](function(_0x43934d){_0x260872(_0x43934d);});});}