b45a8cf1500b884aed7078b6219871b4f22bdf89
[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 _0xaa24=['sendNotification','body','text','hasOwnProperty','TemplateId','Sequelize','ValidationError','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','Invalid\x20\x27recipients\x27\x20object','mailqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','team','user','some','includes','senderName','fullname','recipientsDescription','isEmpty','beep','SenderId','sortBy','join','sequelize','transaction','Notification','recipient','emit','notification:send','Template','findOne','html','render','view','catch','toLowerCase','union','ids','queue','replace','Queue','push','all','flatten','map','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./notification.socket','sendStatus','status','end','offset','Content-Range','apply','reject','save','update','then','destroy','error','send'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0xaa24,0xeb));var _0x4aa2=function(_0x2b0f41,_0x3f0945){_0x2b0f41=_0x2b0f41-0x0;var _0x47ab0d=_0xaa24[_0x2b0f41];return _0x47ab0d;};'use strict';var pdf=require(_0x4aa2('0x0'));var emlformat=require(_0x4aa2('0x1'));var rimraf=require(_0x4aa2('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4aa2('0x3'));var rp=require(_0x4aa2('0x4'));var moment=require(_0x4aa2('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x4aa2('0x6'));var util=require(_0x4aa2('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0x4aa2('0x8'));var ejs=require(_0x4aa2('0x9'));var fs=require('fs');var _=require(_0x4aa2('0xa'));var squel=require(_0x4aa2('0xb'));var crypto=require('crypto');var jsforce=require(_0x4aa2('0xc'));var deskjs=require(_0x4aa2('0xd'));var toCsv=require('to-csv');var querystring=require(_0x4aa2('0xe'));var Papa=require('papaparse');var Redis=require(_0x4aa2('0xf'));var authService=require(_0x4aa2('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x4aa2('0x11'));var hardwareService=require(_0x4aa2('0x12'));var logger=require(_0x4aa2('0x13'))(_0x4aa2('0x14'));var utils=require(_0x4aa2('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x4aa2('0x16'))['db'];config[_0x4aa2('0x17')]=_[_0x4aa2('0x18')](config[_0x4aa2('0x17')],{'host':_0x4aa2('0x19'),'port':0x18eb});var socket=require(_0x4aa2('0x1a'))(new Redis(config[_0x4aa2('0x17')]));require(_0x4aa2('0x1b'))['register'](socket);function respondWithStatusCode(_0x3554e8,_0x1d9576){_0x1d9576=_0x1d9576||0xcc;return function(_0x5d5398){if(_0x5d5398){return _0x3554e8[_0x4aa2('0x1c')](_0x1d9576);}return _0x3554e8[_0x4aa2('0x1d')](_0x1d9576)[_0x4aa2('0x1e')]();};}function respondWithResult(_0x16747e,_0x3222f6){_0x3222f6=_0x3222f6||0xc8;return function(_0x5bc3df){if(_0x5bc3df){return _0x16747e[_0x4aa2('0x1d')](_0x3222f6)['json'](_0x5bc3df);}};}function respondWithFilteredResult(_0x20ce25,_0x52a939){return function(_0x3fb69d){if(_0x3fb69d){var _0x2d019c=_0x3fb69d['count'],_0x2daf89=_0x52a939[_0x4aa2('0x1f')],_0x7bbb4f=_0x52a939[_0x4aa2('0x1f')]+_0x52a939['limit'],_0xf4a8fb;if(_0x7bbb4f>=_0x2d019c){_0x7bbb4f=_0x2d019c;_0xf4a8fb=0xc8;}else{_0xf4a8fb=0xce;}_0x20ce25[_0x4aa2('0x1d')](_0xf4a8fb);return _0x20ce25['set'](_0x4aa2('0x20'),_0x2daf89+'-'+_0x7bbb4f+'/'+_0x2d019c)['json'](_0x3fb69d);}return null;};}function patchUpdates(_0x338fbd){return function(_0x510e0e){try{jsonpatch[_0x4aa2('0x21')](_0x510e0e,_0x338fbd,!![]);}catch(_0x136138){return BPromise[_0x4aa2('0x22')](_0x136138);}return _0x510e0e[_0x4aa2('0x23')]();};}function saveUpdates(_0x2da2ae,_0x55a216){return function(_0x3fbe84){if(_0x3fbe84){return _0x3fbe84[_0x4aa2('0x24')](_0x2da2ae)[_0x4aa2('0x25')](function(_0x201138){return _0x201138;});}return null;};}function removeEntity(_0x9b1add,_0x13d1c1){return function(_0x5290c2){if(_0x5290c2){return _0x5290c2[_0x4aa2('0x26')]()[_0x4aa2('0x25')](function(){_0x9b1add[_0x4aa2('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2ba0bd,_0x101728){return function(_0x33ea96){if(!_0x33ea96){_0x2ba0bd[_0x4aa2('0x1c')](0x194);}return _0x33ea96;};}function handleError(_0x2c484d,_0x49a646){_0x49a646=_0x49a646||0x1f4;return function(_0x1e02ea){logger[_0x4aa2('0x27')](_0x1e02ea['stack']);if(_0x1e02ea['name']){delete _0x1e02ea['name'];}_0x2c484d[_0x4aa2('0x1d')](_0x49a646)[_0x4aa2('0x28')](_0x1e02ea);};}exports[_0x4aa2('0x29')]=function(_0x268516,_0x3d6e35,_0x33b87e){if(!_0x268516[_0x4aa2('0x2a')]['hasOwnProperty'](_0x4aa2('0x2b'))&&!_0x268516[_0x4aa2('0x2a')][_0x4aa2('0x2c')](_0x4aa2('0x2d'))){throw new db[(_0x4aa2('0x2e'))][(_0x4aa2('0x2f'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x268516[_0x4aa2('0x2a')]['hasOwnProperty'](_0x4aa2('0x2d'))&&!_0x268516[_0x4aa2('0x2a')][_0x4aa2('0x2c')]('view')){throw new db[(_0x4aa2('0x2e'))][(_0x4aa2('0x2f'))](_0x4aa2('0x30'));}if(!_0x268516[_0x4aa2('0x2a')][_0x4aa2('0x2c')](_0x4aa2('0x31'))){throw new db['Sequelize'][(_0x4aa2('0x2f'))](_0x4aa2('0x32'));}else{try{var _0x2d8bf1=JSON[_0x4aa2('0x33')](_0x268516[_0x4aa2('0x2a')]['recipients']);}catch(_0x4bc25a){logger[_0x4aa2('0x27')](_0x4bc25a);throw new db['Sequelize'][(_0x4aa2('0x2f'))](_0x4aa2('0x34'));}var _0x4c0aec=['chatqueue','faxqueue',_0x4aa2('0x35'),_0x4aa2('0x36'),_0x4aa2('0x37'),_0x4aa2('0x38'),_0x4aa2('0x39'),_0x4aa2('0x3a'),_0x4aa2('0x3b')];if(_[_0x4aa2('0x3c')](_0x2d8bf1,function(_0x547eb2){return!_[_0x4aa2('0x3d')](_0x4c0aec,_0x547eb2['model']['toLowerCase']());})){throw new db['Sequelize'][(_0x4aa2('0x2f'))]('Invalid\x20model\x20in\x20\x27recipients\x27\x20object');}}}var _0x2459f8={};_0x2459f8[_0x4aa2('0x3e')]=_0x268516[_0x4aa2('0x2a')][_0x4aa2('0x2c')]('senderName')?_0x268516['body'][_0x4aa2('0x3e')]:_0x268516[_0x4aa2('0x3b')][_0x4aa2('0x3f')];_0x2459f8[_0x4aa2('0x40')]=_[_0x4aa2('0x41')](_0x268516[_0x4aa2('0x2a')][_0x4aa2('0x40')])?null:_0x268516[_0x4aa2('0x2a')]['recipientsDescription'];_0x2459f8[_0x4aa2('0x42')]=_0x268516[_0x4aa2('0x2a')][_0x4aa2('0x42')]||![];_0x2459f8[_0x4aa2('0x43')]=_0x268516[_0x4aa2('0x3b')]['id'];return getContent(_0x268516['body'])[_0x4aa2('0x25')](function(_0x3d57ce){_0x2459f8['body']=_0x3d57ce;return getRecipients(_0x2d8bf1);})[_0x4aa2('0x25')](function(_0x3d5e8d){_0x2459f8['recipientsId']=_[_0x4aa2('0x44')](_0x3d5e8d)[_0x4aa2('0x45')](',');return db[_0x4aa2('0x46')][_0x4aa2('0x47')](function(_0x134865){return db[_0x4aa2('0x48')]['create'](_0x2459f8,{'raw':!![],'transaction':_0x134865})['then'](function(_0x52911f){var _0x299625={'sender':_0x2459f8[_0x4aa2('0x3e')],'description':_0x2459f8[_0x4aa2('0x40')],'content':_0x2459f8[_0x4aa2('0x2a')],'beep':_0x2459f8[_0x4aa2('0x42')]};_0x3d5e8d['forEach'](function(_0x280346){_0x299625[_0x4aa2('0x49')]=_0x280346;socket[_0x4aa2('0x4a')](_0x4aa2('0x4b'),_0x299625);});return _0x52911f;});});})[_0x4aa2('0x25')](respondWithResult(_0x3d6e35,0xc9))['catch'](handleError(_0x3d6e35,null));};function getContent(_0x47c313){return new BPromise(function(_0x47a52d,_0x470ce0){if(_0x47c313[_0x4aa2('0x2b')]){_0x47a52d(_0x47c313[_0x4aa2('0x2b')]);return;}return db[_0x4aa2('0x4c')][_0x4aa2('0x4d')]({'attributes':[_0x4aa2('0x4e')],'where':{'id':_0x47c313[_0x4aa2('0x2d')]},'raw':!![]})[_0x4aa2('0x25')](function(_0x1d3e1a){if(!_0x1d3e1a)throw new db[(_0x4aa2('0x2e'))]['ValidationError']('Invalid\x20\x27TemplateId\x27\x20parameter');var _0xa57516=Mustache[_0x4aa2('0x4f')](_0x1d3e1a[_0x4aa2('0x4e')],_0x47c313[_0x4aa2('0x50')]);_0x47a52d(_0xa57516);})[_0x4aa2('0x51')](function(_0x3dcf14){_0x470ce0(_0x3dcf14);});});}function getRecipients(_0x1e6b5d){return new BPromise(function(_0x184141,_0x495c30){var _0x355ccd=[];var _0x3f99a8=[];_0x1e6b5d['forEach'](function(_0xb582a1){var _0x1cb060=_['startCase'](_0xb582a1['model'][_0x4aa2('0x52')]());if(_0x1cb060==='User'){_0x355ccd=_[_0x4aa2('0x53')](_0x355ccd,_0xb582a1[_0x4aa2('0x54')]);}else{if(_[_0x4aa2('0x3d')](_0x1cb060,_0x4aa2('0x55')))_0x1cb060=_0x1cb060[_0x4aa2('0x56')](_0x4aa2('0x55'),_0x4aa2('0x57'));_0xb582a1['ids']['forEach'](function(_0x45af6b){_0x3f99a8[_0x4aa2('0x58')](getAgents(_0x1cb060,_0x45af6b));});}});return BPromise[_0x4aa2('0x59')](_0x3f99a8)[_0x4aa2('0x25')](function(_0x19fdea){_0x355ccd=_[_0x4aa2('0x53')](_0x355ccd,_[_0x4aa2('0x5a')](_0x19fdea));_0x184141(_0x355ccd);})[_0x4aa2('0x51')](function(_0x1668e1){_0x495c30(_0x1668e1);});});}function getAgents(_0x26961a,_0x202790){return new BPromise(function(_0x4e0cc9,_0x5770a9){return db[_0x26961a][_0x4aa2('0x4d')]({'where':{'id':_0x202790}})[_0x4aa2('0x25')](function(_0x211ee6){return _0x211ee6['getAgents']({'attributes':['id'],'raw':!![]})[_0x4aa2('0x25')](function(_0x1b4331){var _0x3da1f0=_[_0x4aa2('0x5b')](_0x1b4331,'id');_0x4e0cc9(_0x3da1f0);});})[_0x4aa2('0x51')](function(_0x1c956a){_0x5770a9(_0x1c956a);});});}