Built motion from commit 3e059bc2.|2.5.32
[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 _0x492f=['sequelize','transaction','forEach','recipient','findOne','Invalid\x20\x27TemplateId\x27\x20parameter','catch','startCase','model','toLowerCase','User','ids','queue','push','flatten','getAgents','map','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','redis','localhost','socket.io-emitter','./userNotification.socket','register','sendStatus','end','status','json','undefined','count','offset','limit','Content-Range','apply','reject','save','update','then','error','stack','name','send','sendUserNotification','body','text','hasOwnProperty','TemplateId','Sequelize','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','ValidationError','Invalid\x20\x27recipients\x27\x20object','mailqueue','openchannelqueue','smsqueue','whatsappqueue','team','some','includes','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','user','fullname','recipientsDescription','isEmpty','beep','recipientsId','sortBy','join'];(function(_0x2a67fe,_0x295c09){var _0x57e726=function(_0x280573){while(--_0x280573){_0x2a67fe['push'](_0x2a67fe['shift']());}};_0x57e726(++_0x295c09);}(_0x492f,0x71));var _0xf492=function(_0x211236,_0x2465cb){_0x211236=_0x211236-0x0;var _0x152ea1=_0x492f[_0x211236];return _0x152ea1;};'use strict';var emlformat=require(_0xf492('0x0'));var rimraf=require(_0xf492('0x1'));var zipdir=require(_0xf492('0x2'));var jsonpatch=require(_0xf492('0x3'));var rp=require(_0xf492('0x4'));var moment=require(_0xf492('0x5'));var BPromise=require(_0xf492('0x6'));var Mustache=require(_0xf492('0x7'));var util=require(_0xf492('0x8'));var path=require(_0xf492('0x9'));var sox=require(_0xf492('0xa'));var csv=require(_0xf492('0xb'));var ejs=require(_0xf492('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xf492('0xd'));var squel=require(_0xf492('0xe'));var crypto=require(_0xf492('0xf'));var jsforce=require('jsforce');var deskjs=require(_0xf492('0x10'));var toCsv=require(_0xf492('0xb'));var querystring=require(_0xf492('0x11'));var Papa=require('papaparse');var Redis=require(_0xf492('0x12'));var authService=require(_0xf492('0x13'));var qs=require(_0xf492('0x14'));var as=require(_0xf492('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xf492('0x16'))('api');var utils=require(_0xf492('0x17'));var config=require(_0xf492('0x18'));var licenseUtil=require(_0xf492('0x19'));var db=require('../../mysqldb')['db'];config[_0xf492('0x1a')]=_['defaults'](config[_0xf492('0x1a')],{'host':_0xf492('0x1b'),'port':0x18eb});var socket=require(_0xf492('0x1c'))(new Redis(config['redis']));require(_0xf492('0x1d'))[_0xf492('0x1e')](socket);function respondWithStatusCode(_0x2ad70e,_0xda42d){_0xda42d=_0xda42d||0xcc;return function(_0x1ea04f){if(_0x1ea04f){return _0x2ad70e[_0xf492('0x1f')](_0xda42d);}return _0x2ad70e['status'](_0xda42d)[_0xf492('0x20')]();};}function respondWithResult(_0x3c5e46,_0x45c34e){_0x45c34e=_0x45c34e||0xc8;return function(_0x5420af){if(_0x5420af){return _0x3c5e46[_0xf492('0x21')](_0x45c34e)[_0xf492('0x22')](_0x5420af);}};}function respondWithFilteredResult(_0x45c3bb,_0x11c87b){return function(_0x2ec1db){if(_0x2ec1db){var _0x5890a8=typeof _0x11c87b['offset']===_0xf492('0x23')&&typeof _0x11c87b['limit']==='undefined';var _0x262a18=_0x2ec1db[_0xf492('0x24')];var _0x16eeee=_0x5890a8?0x0:_0x11c87b[_0xf492('0x25')];var _0x3b4b19=_0x5890a8?_0x2ec1db[_0xf492('0x24')]:_0x11c87b[_0xf492('0x25')]+_0x11c87b[_0xf492('0x26')];var _0x1394ba;if(_0x3b4b19>=_0x262a18){_0x3b4b19=_0x262a18;_0x1394ba=0xc8;}else{_0x1394ba=0xce;}_0x45c3bb[_0xf492('0x21')](_0x1394ba);return _0x45c3bb['set'](_0xf492('0x27'),_0x16eeee+'-'+_0x3b4b19+'/'+_0x262a18)['json'](_0x2ec1db);}return null;};}function patchUpdates(_0x5a80ae){return function(_0x1420d4){try{jsonpatch[_0xf492('0x28')](_0x1420d4,_0x5a80ae,!![]);}catch(_0x1f8e13){return BPromise[_0xf492('0x29')](_0x1f8e13);}return _0x1420d4[_0xf492('0x2a')]();};}function saveUpdates(_0x5ab86f,_0x33f091){return function(_0x2f4014){if(_0x2f4014){return _0x2f4014[_0xf492('0x2b')](_0x5ab86f)[_0xf492('0x2c')](function(_0x303b10){return _0x303b10;});}return null;};}function removeEntity(_0x4cdf75,_0x39963c){return function(_0x2d4b63){if(_0x2d4b63){return _0x2d4b63['destroy']()[_0xf492('0x2c')](function(){_0x4cdf75['status'](0xcc)[_0xf492('0x20')]();});}};}function handleEntityNotFound(_0xb56a4e,_0x1659a5){return function(_0x5aa8e5){if(!_0x5aa8e5){_0xb56a4e[_0xf492('0x1f')](0x194);}return _0x5aa8e5;};}function handleError(_0x2f2cf4,_0x1d4c16){_0x1d4c16=_0x1d4c16||0x1f4;return function(_0x499837){logger[_0xf492('0x2d')](_0x499837[_0xf492('0x2e')]);if(_0x499837[_0xf492('0x2f')]){delete _0x499837['name'];}_0x2f2cf4['status'](_0x1d4c16)[_0xf492('0x30')](_0x499837);};}exports[_0xf492('0x31')]=function(_0x1deee2,_0x41dc8a,_0x50c75f){if(!_0x1deee2[_0xf492('0x32')]['hasOwnProperty'](_0xf492('0x33'))&&!_0x1deee2[_0xf492('0x32')][_0xf492('0x34')](_0xf492('0x35'))){throw new db[(_0xf492('0x36'))]['ValidationError'](_0xf492('0x37'));}else{if(_0x1deee2[_0xf492('0x32')][_0xf492('0x34')](_0xf492('0x35'))&&!_0x1deee2[_0xf492('0x32')][_0xf492('0x34')](_0xf492('0x38'))){throw new db[(_0xf492('0x36'))]['ValidationError']('Missing\x20\x27view\x27\x20parameter');}if(!_0x1deee2[_0xf492('0x32')][_0xf492('0x34')](_0xf492('0x39'))){throw new db[(_0xf492('0x36'))]['ValidationError'](_0xf492('0x3a'));}else{try{var _0x2e90ff=JSON[_0xf492('0x3b')](_0x1deee2[_0xf492('0x32')][_0xf492('0x39')]);}catch(_0x44d6f0){logger[_0xf492('0x2d')](_0x44d6f0);throw new db[(_0xf492('0x36'))][(_0xf492('0x3c'))](_0xf492('0x3d'));}var _0x13b74a=['chatqueue','faxqueue',_0xf492('0x3e'),_0xf492('0x3f'),_0xf492('0x40'),'voicequeue',_0xf492('0x41'),_0xf492('0x42'),'user'];if(_[_0xf492('0x43')](_0x2e90ff,function(_0x5d5e45){return!_[_0xf492('0x44')](_0x13b74a,_0x5d5e45['model']['toLowerCase']());})){throw new db['Sequelize'][(_0xf492('0x3c'))](_0xf492('0x45'));}}}var _0x18d46d={};_0x18d46d[_0xf492('0x46')]=_0x1deee2[_0xf492('0x32')][_0xf492('0x34')](_0xf492('0x46'))?_0x1deee2['body'][_0xf492('0x46')]:_0x1deee2[_0xf492('0x47')][_0xf492('0x48')];_0x18d46d[_0xf492('0x49')]=_[_0xf492('0x4a')](_0x1deee2[_0xf492('0x32')][_0xf492('0x49')])?null:_0x1deee2[_0xf492('0x32')][_0xf492('0x49')];_0x18d46d[_0xf492('0x4b')]=_0x1deee2['body'][_0xf492('0x4b')]||![];_0x18d46d['SenderId']=_0x1deee2[_0xf492('0x47')]['id'];return getContent(_0x1deee2[_0xf492('0x32')])[_0xf492('0x2c')](function(_0x5504d8){_0x18d46d[_0xf492('0x32')]=_0x5504d8;return getRecipients(_0x2e90ff);})[_0xf492('0x2c')](function(_0x5d7a48){_0x18d46d[_0xf492('0x4c')]=_[_0xf492('0x4d')](_0x5d7a48)[_0xf492('0x4e')](',');return db[_0xf492('0x4f')][_0xf492('0x50')](function(_0x397247){return db['UserNotification']['create'](_0x18d46d,{'raw':!![],'transaction':_0x397247})[_0xf492('0x2c')](function(_0x290246){var _0x3b2cb7={'sender':_0x18d46d[_0xf492('0x46')],'description':_0x18d46d['recipientsDescription'],'content':_0x18d46d[_0xf492('0x32')],'beep':_0x18d46d[_0xf492('0x4b')]};_0x5d7a48[_0xf492('0x51')](function(_0x338404){_0x3b2cb7[_0xf492('0x52')]=_0x338404;socket['emit']('userNotification:send',_0x3b2cb7);});return _0x290246;});});})[_0xf492('0x2c')](respondWithResult(_0x41dc8a,0xc9))['catch'](handleError(_0x41dc8a,null));};function getContent(_0x11d63b){return new BPromise(function(_0xbbeacd,_0xff8b83){if(_0x11d63b[_0xf492('0x33')]){_0xbbeacd(_0x11d63b[_0xf492('0x33')]);return;}return db['Template'][_0xf492('0x53')]({'attributes':['html'],'where':{'id':_0x11d63b[_0xf492('0x35')]},'raw':!![]})[_0xf492('0x2c')](function(_0x24303c){if(!_0x24303c)throw new db[(_0xf492('0x36'))][(_0xf492('0x3c'))](_0xf492('0x54'));var _0x5e40e4=Mustache['render'](_0x24303c['html'],_0x11d63b[_0xf492('0x38')]);_0xbbeacd(_0x5e40e4);})[_0xf492('0x55')](function(_0x987c95){_0xff8b83(_0x987c95);});});}function getRecipients(_0x1d25d4){return new BPromise(function(_0x31f1d3,_0xf50e7e){var _0xd31ef1=[];var _0x543376=[];_0x1d25d4['forEach'](function(_0x2e8fa2){var _0x3bb88f=_[_0xf492('0x56')](_0x2e8fa2[_0xf492('0x57')][_0xf492('0x58')]());if(_0x3bb88f===_0xf492('0x59')){_0xd31ef1=_['union'](_0xd31ef1,_0x2e8fa2[_0xf492('0x5a')]);}else{if(_[_0xf492('0x44')](_0x3bb88f,'queue'))_0x3bb88f=_0x3bb88f['replace'](_0xf492('0x5b'),'Queue');_0x2e8fa2[_0xf492('0x5a')]['forEach'](function(_0x3096d7){_0x543376[_0xf492('0x5c')](getAgents(_0x3bb88f,_0x3096d7));});}});return BPromise['all'](_0x543376)[_0xf492('0x2c')](function(_0x1382db){_0xd31ef1=_['union'](_0xd31ef1,_[_0xf492('0x5d')](_0x1382db));_0x31f1d3(_0xd31ef1);})['catch'](function(_0x2104e4){_0xf50e7e(_0x2104e4);});});}function getAgents(_0x27c7e9,_0x214d60){return new BPromise(function(_0x4205dc,_0x42a76f){return db[_0x27c7e9][_0xf492('0x53')]({'where':{'id':_0x214d60}})[_0xf492('0x2c')](function(_0x304b3b){return _0x304b3b[_0xf492('0x5e')]({'attributes':['id'],'raw':!![]})['then'](function(_0x23e702){var _0x5b6afe=_[_0xf492('0x5f')](_0x23e702,'id');_0x4205dc(_0x5b6afe);});})['catch'](function(_0x2f313){_0x42a76f(_0x2f313);});});}