Built motion from commit (unavailable).|2.5.19
[motion2.git] / server / api / notification / notification.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 _0xb676=['ids','queue','replace','Queue','push','flatten','getAgents','map','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','defaults','redis','localhost','socket.io-emitter','./notification.socket','register','sendStatus','status','end','offset','set','Content-Range','json','apply','reject','save','then','destroy','stack','name','send','sendNotification','body','hasOwnProperty','text','TemplateId','Sequelize','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','error','Invalid\x20\x27recipients\x27\x20object','chatqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','team','user','includes','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','recipientsDescription','SenderId','recipientsId','sortBy','join','transaction','Notification','create','forEach','recipient','emit','notification:send','catch','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','model','union'];(function(_0x471c9b,_0x4cd0b2){var _0x502306=function(_0x12c30d){while(--_0x12c30d){_0x471c9b['push'](_0x471c9b['shift']());}};_0x502306(++_0x4cd0b2);}(_0xb676,0x1f2));var _0x6b67=function(_0xfae23b,_0x2be4ba){_0xfae23b=_0xfae23b-0x0;var _0x200640=_0xb676[_0xfae23b];return _0x200640;};'use strict';var pdf=require(_0x6b67('0x0'));var emlformat=require(_0x6b67('0x1'));var rimraf=require(_0x6b67('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6b67('0x3'));var rp=require(_0x6b67('0x4'));var moment=require(_0x6b67('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x6b67('0x6'));var path=require(_0x6b67('0x7'));var sox=require(_0x6b67('0x8'));var csv=require(_0x6b67('0x9'));var ejs=require(_0x6b67('0xa'));var fs=require('fs');var _=require(_0x6b67('0xb'));var squel=require(_0x6b67('0xc'));var crypto=require(_0x6b67('0xd'));var jsforce=require(_0x6b67('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x6b67('0x9'));var querystring=require(_0x6b67('0xf'));var Papa=require('papaparse');var Redis=require(_0x6b67('0x10'));var authService=require(_0x6b67('0x11'));var qs=require(_0x6b67('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6b67('0x13'));var logger=require(_0x6b67('0x14'))('api');var utils=require(_0x6b67('0x15'));var config=require(_0x6b67('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config['redis']=_[_0x6b67('0x17')](config[_0x6b67('0x18')],{'host':_0x6b67('0x19'),'port':0x18eb});var socket=require(_0x6b67('0x1a'))(new Redis(config['redis']));require(_0x6b67('0x1b'))[_0x6b67('0x1c')](socket);function respondWithStatusCode(_0x120511,_0x4e0e19){_0x4e0e19=_0x4e0e19||0xcc;return function(_0x1d8465){if(_0x1d8465){return _0x120511[_0x6b67('0x1d')](_0x4e0e19);}return _0x120511[_0x6b67('0x1e')](_0x4e0e19)[_0x6b67('0x1f')]();};}function respondWithResult(_0x6fbcc6,_0x352dab){_0x352dab=_0x352dab||0xc8;return function(_0x5e5c7f){if(_0x5e5c7f){return _0x6fbcc6[_0x6b67('0x1e')](_0x352dab)['json'](_0x5e5c7f);}};}function respondWithFilteredResult(_0x152da0,_0x2ad61){return function(_0x3c32cb){if(_0x3c32cb){var _0x404189=_0x3c32cb['count'],_0x2559bd=_0x2ad61[_0x6b67('0x20')],_0x170971=_0x2ad61['offset']+_0x2ad61['limit'],_0x4f6f33;if(_0x170971>=_0x404189){_0x170971=_0x404189;_0x4f6f33=0xc8;}else{_0x4f6f33=0xce;}_0x152da0['status'](_0x4f6f33);return _0x152da0[_0x6b67('0x21')](_0x6b67('0x22'),_0x2559bd+'-'+_0x170971+'/'+_0x404189)[_0x6b67('0x23')](_0x3c32cb);}return null;};}function patchUpdates(_0x41193c){return function(_0x4ff2fe){try{jsonpatch[_0x6b67('0x24')](_0x4ff2fe,_0x41193c,!![]);}catch(_0x2b5171){return BPromise[_0x6b67('0x25')](_0x2b5171);}return _0x4ff2fe[_0x6b67('0x26')]();};}function saveUpdates(_0x4d5ffc,_0x509d2b){return function(_0x51c17b){if(_0x51c17b){return _0x51c17b['update'](_0x4d5ffc)[_0x6b67('0x27')](function(_0x2720c2){return _0x2720c2;});}return null;};}function removeEntity(_0x3fa79b,_0x29b936){return function(_0x296276){if(_0x296276){return _0x296276[_0x6b67('0x28')]()[_0x6b67('0x27')](function(){_0x3fa79b[_0x6b67('0x1e')](0xcc)[_0x6b67('0x1f')]();});}};}function handleEntityNotFound(_0x251cf0,_0x2463ca){return function(_0x5ea306){if(!_0x5ea306){_0x251cf0[_0x6b67('0x1d')](0x194);}return _0x5ea306;};}function handleError(_0x2f2cf7,_0x31127b){_0x31127b=_0x31127b||0x1f4;return function(_0xdf0d9c){logger['error'](_0xdf0d9c[_0x6b67('0x29')]);if(_0xdf0d9c[_0x6b67('0x2a')]){delete _0xdf0d9c[_0x6b67('0x2a')];}_0x2f2cf7['status'](_0x31127b)[_0x6b67('0x2b')](_0xdf0d9c);};}exports[_0x6b67('0x2c')]=function(_0xd8a4e4,_0x2978ee,_0x3cfdc1){if(!_0xd8a4e4[_0x6b67('0x2d')][_0x6b67('0x2e')](_0x6b67('0x2f'))&&!_0xd8a4e4[_0x6b67('0x2d')][_0x6b67('0x2e')](_0x6b67('0x30'))){throw new db[(_0x6b67('0x31'))][(_0x6b67('0x32'))](_0x6b67('0x33'));}else{if(_0xd8a4e4[_0x6b67('0x2d')][_0x6b67('0x2e')](_0x6b67('0x30'))&&!_0xd8a4e4[_0x6b67('0x2d')][_0x6b67('0x2e')](_0x6b67('0x34'))){throw new db[(_0x6b67('0x31'))][(_0x6b67('0x32'))](_0x6b67('0x35'));}if(!_0xd8a4e4[_0x6b67('0x2d')]['hasOwnProperty'](_0x6b67('0x36'))){throw new db[(_0x6b67('0x31'))][(_0x6b67('0x32'))](_0x6b67('0x37'));}else{try{var _0x264812=JSON[_0x6b67('0x38')](_0xd8a4e4['body']['recipients']);}catch(_0x501870){logger[_0x6b67('0x39')](_0x501870);throw new db[(_0x6b67('0x31'))][(_0x6b67('0x32'))](_0x6b67('0x3a'));}var _0x373e2b=[_0x6b67('0x3b'),'faxqueue','mailqueue',_0x6b67('0x3c'),_0x6b67('0x3d'),_0x6b67('0x3e'),_0x6b67('0x3f'),_0x6b67('0x40'),_0x6b67('0x41')];if(_['some'](_0x264812,function(_0x1996d9){return!_[_0x6b67('0x42')](_0x373e2b,_0x1996d9['model'][_0x6b67('0x43')]());})){throw new db[(_0x6b67('0x31'))][(_0x6b67('0x32'))](_0x6b67('0x44'));}}}var _0x237398={};_0x237398[_0x6b67('0x45')]=_0xd8a4e4[_0x6b67('0x2d')][_0x6b67('0x2e')](_0x6b67('0x45'))?_0xd8a4e4[_0x6b67('0x2d')][_0x6b67('0x45')]:_0xd8a4e4[_0x6b67('0x41')]['fullname'];_0x237398[_0x6b67('0x46')]=_['isEmpty'](_0xd8a4e4['body'][_0x6b67('0x46')])?null:_0xd8a4e4[_0x6b67('0x2d')][_0x6b67('0x46')];_0x237398['beep']=_0xd8a4e4['body']['beep']||![];_0x237398[_0x6b67('0x47')]=_0xd8a4e4['user']['id'];return getContent(_0xd8a4e4[_0x6b67('0x2d')])['then'](function(_0x310bdc){_0x237398[_0x6b67('0x2d')]=_0x310bdc;return getRecipients(_0x264812);})[_0x6b67('0x27')](function(_0x55db2f){_0x237398[_0x6b67('0x48')]=_[_0x6b67('0x49')](_0x55db2f)[_0x6b67('0x4a')](',');return db['sequelize'][_0x6b67('0x4b')](function(_0x25a276){return db[_0x6b67('0x4c')][_0x6b67('0x4d')](_0x237398,{'raw':!![],'transaction':_0x25a276})[_0x6b67('0x27')](function(_0x5aad8e){var _0x52675f={'sender':_0x237398[_0x6b67('0x45')],'description':_0x237398[_0x6b67('0x46')],'content':_0x237398['body'],'beep':_0x237398['beep']};_0x55db2f[_0x6b67('0x4e')](function(_0x549675){_0x52675f[_0x6b67('0x4f')]=_0x549675;socket[_0x6b67('0x50')](_0x6b67('0x51'),_0x52675f);});return _0x5aad8e;});});})['then'](respondWithResult(_0x2978ee,0xc9))[_0x6b67('0x52')](handleError(_0x2978ee,null));};function getContent(_0x346571){return new BPromise(function(_0x1ad6f1,_0x4b5dc5){if(_0x346571[_0x6b67('0x2f')]){_0x1ad6f1(_0x346571[_0x6b67('0x2f')]);return;}return db[_0x6b67('0x53')][_0x6b67('0x54')]({'attributes':[_0x6b67('0x55')],'where':{'id':_0x346571[_0x6b67('0x30')]},'raw':!![]})[_0x6b67('0x27')](function(_0x45791a){if(!_0x45791a)throw new db[(_0x6b67('0x31'))][(_0x6b67('0x32'))](_0x6b67('0x56'));var _0x40c570=Mustache[_0x6b67('0x57')](_0x45791a[_0x6b67('0x55')],_0x346571[_0x6b67('0x34')]);_0x1ad6f1(_0x40c570);})['catch'](function(_0x359cde){_0x4b5dc5(_0x359cde);});});}function getRecipients(_0x33818b){return new BPromise(function(_0x28d5c0,_0x4fe318){var _0x2e7fc4=[];var _0x7fc09d=[];_0x33818b['forEach'](function(_0x22b3f7){var _0x4d9913=_['startCase'](_0x22b3f7[_0x6b67('0x58')]['toLowerCase']());if(_0x4d9913==='User'){_0x2e7fc4=_[_0x6b67('0x59')](_0x2e7fc4,_0x22b3f7[_0x6b67('0x5a')]);}else{if(_[_0x6b67('0x42')](_0x4d9913,_0x6b67('0x5b')))_0x4d9913=_0x4d9913[_0x6b67('0x5c')](_0x6b67('0x5b'),_0x6b67('0x5d'));_0x22b3f7[_0x6b67('0x5a')]['forEach'](function(_0x43f835){_0x7fc09d[_0x6b67('0x5e')](getAgents(_0x4d9913,_0x43f835));});}});return BPromise['all'](_0x7fc09d)['then'](function(_0x268f41){_0x2e7fc4=_[_0x6b67('0x59')](_0x2e7fc4,_[_0x6b67('0x5f')](_0x268f41));_0x28d5c0(_0x2e7fc4);})[_0x6b67('0x52')](function(_0x4e7a6c){_0x4fe318(_0x4e7a6c);});});}function getAgents(_0xdd161,_0xd233c0){return new BPromise(function(_0x19d56c,_0x3ea1e0){return db[_0xdd161][_0x6b67('0x54')]({'where':{'id':_0xd233c0}})[_0x6b67('0x27')](function(_0x3fbf6f){return _0x3fbf6f[_0x6b67('0x60')]({'attributes':['id'],'raw':!![]})[_0x6b67('0x27')](function(_0x7eeb47){var _0x432aa2=_[_0x6b67('0x61')](_0x7eeb47,'id');_0x19d56c(_0x432aa2);});})[_0x6b67('0x52')](function(_0x297e4d){_0x3ea1e0(_0x297e4d);});});}