Built motion from commit (unavailable).|2.5.3
[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 _0xb70a=['end','json','Content-Range','apply','reject','save','error','stack','name','send','sendNotification','hasOwnProperty','TemplateId','Sequelize','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','Missing\x20\x27view\x27\x20parameter','body','Missing\x20\x27recipients\x27\x20parameter','parse','Invalid\x20\x27recipients\x27\x20object','chatqueue','mailqueue','smsqueue','voicequeue','whatsappqueue','team','user','includes','model','toLowerCase','senderName','fullname','recipientsDescription','beep','SenderId','then','recipientsId','sortBy','join','sequelize','Notification','create','forEach','recipient','catch','text','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','startCase','User','union','ids','queue','replace','Queue','push','all','getAgents','map','html-pdf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','ejs','squel','crypto','papaparse','../../components/auth/service','api','../../config/utils','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./notification.socket','register','sendStatus','status'];(function(_0x150e51,_0x4074d9){var _0x51fe2d=function(_0x1a2129){while(--_0x1a2129){_0x150e51['push'](_0x150e51['shift']());}};_0x51fe2d(++_0x4074d9);}(_0xb70a,0xf2));var _0xab70=function(_0x35ddb4,_0x381172){_0x35ddb4=_0x35ddb4-0x0;var _0x54d944=_0xb70a[_0x35ddb4];return _0x54d944;};'use strict';var pdf=require(_0xab70('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xab70('0x1'));var jsonpatch=require(_0xab70('0x2'));var rp=require('request-promise');var moment=require(_0xab70('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xab70('0x4'));var util=require(_0xab70('0x5'));var path=require(_0xab70('0x6'));var sox=require(_0xab70('0x7'));var csv=require(_0xab70('0x8'));var ejs=require(_0xab70('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0xab70('0xa'));var crypto=require(_0xab70('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xab70('0x8'));var querystring=require('querystring');var Papa=require(_0xab70('0xc'));var Redis=require('ioredis');var authService=require(_0xab70('0xd'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xab70('0xe'));var utils=require(_0xab70('0xf'));var config=require('../../config/environment');var db=require(_0xab70('0x10'))['db'];config[_0xab70('0x11')]=_[_0xab70('0x12')](config[_0xab70('0x11')],{'host':_0xab70('0x13'),'port':0x18eb});var socket=require(_0xab70('0x14'))(new Redis(config[_0xab70('0x11')]));require(_0xab70('0x15'))[_0xab70('0x16')](socket);function respondWithStatusCode(_0x27407e,_0x27a657){_0x27a657=_0x27a657||0xcc;return function(_0x69dfed){if(_0x69dfed){return _0x27407e[_0xab70('0x17')](_0x27a657);}return _0x27407e[_0xab70('0x18')](_0x27a657)[_0xab70('0x19')]();};}function respondWithResult(_0x37f56b,_0x2f82a6){_0x2f82a6=_0x2f82a6||0xc8;return function(_0x3dacfd){if(_0x3dacfd){return _0x37f56b[_0xab70('0x18')](_0x2f82a6)[_0xab70('0x1a')](_0x3dacfd);}};}function respondWithFilteredResult(_0x37433b,_0x115f09){return function(_0xfe7396){if(_0xfe7396){var _0x9ed1c2=_0xfe7396['count'],_0x7f9de9=_0x115f09['offset'],_0x1acdbf=_0x115f09['offset']+_0x115f09['limit'],_0x611e84;if(_0x1acdbf>=_0x9ed1c2){_0x1acdbf=_0x9ed1c2;_0x611e84=0xc8;}else{_0x611e84=0xce;}_0x37433b[_0xab70('0x18')](_0x611e84);return _0x37433b['set'](_0xab70('0x1b'),_0x7f9de9+'-'+_0x1acdbf+'/'+_0x9ed1c2)[_0xab70('0x1a')](_0xfe7396);}return null;};}function patchUpdates(_0x70812c){return function(_0x5e6ae1){try{jsonpatch[_0xab70('0x1c')](_0x5e6ae1,_0x70812c,!![]);}catch(_0x12c017){return BPromise[_0xab70('0x1d')](_0x12c017);}return _0x5e6ae1[_0xab70('0x1e')]();};}function saveUpdates(_0x5b095e,_0x3d0703){return function(_0x29dc1c){if(_0x29dc1c){return _0x29dc1c['update'](_0x5b095e)['then'](function(_0x1ee82b){return _0x1ee82b;});}return null;};}function removeEntity(_0x330953,_0x53852a){return function(_0x30735c){if(_0x30735c){return _0x30735c['destroy']()['then'](function(){_0x330953[_0xab70('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2c959a,_0x349b70){return function(_0x16969d){if(!_0x16969d){_0x2c959a[_0xab70('0x17')](0x194);}return _0x16969d;};}function handleError(_0xc4fbd5,_0x3849a7){_0x3849a7=_0x3849a7||0x1f4;return function(_0x90bf8f){logger[_0xab70('0x1f')](_0x90bf8f[_0xab70('0x20')]);if(_0x90bf8f[_0xab70('0x21')]){delete _0x90bf8f['name'];}_0xc4fbd5['status'](_0x3849a7)[_0xab70('0x22')](_0x90bf8f);};}exports[_0xab70('0x23')]=function(_0x126f16,_0x452f2,_0x295a16){if(!_0x126f16['body'][_0xab70('0x24')]('text')&&!_0x126f16['body']['hasOwnProperty'](_0xab70('0x25'))){throw new db[(_0xab70('0x26'))][(_0xab70('0x27'))](_0xab70('0x28'));}else{if(_0x126f16['body'][_0xab70('0x24')](_0xab70('0x25'))&&!_0x126f16['body']['hasOwnProperty'](_0xab70('0x29'))){throw new db[(_0xab70('0x26'))][(_0xab70('0x27'))](_0xab70('0x2a'));}if(!_0x126f16[_0xab70('0x2b')]['hasOwnProperty']('recipients')){throw new db['Sequelize'][(_0xab70('0x27'))](_0xab70('0x2c'));}else{try{var _0x3b0da0=JSON[_0xab70('0x2d')](_0x126f16[_0xab70('0x2b')]['recipients']);}catch(_0x10b6a5){logger[_0xab70('0x1f')](_0x10b6a5);throw new db['Sequelize'][(_0xab70('0x27'))](_0xab70('0x2e'));}var _0x10b695=[_0xab70('0x2f'),'faxqueue',_0xab70('0x30'),'openchannelqueue',_0xab70('0x31'),_0xab70('0x32'),_0xab70('0x33'),_0xab70('0x34'),_0xab70('0x35')];if(_['some'](_0x3b0da0,function(_0x49a17b){return!_[_0xab70('0x36')](_0x10b695,_0x49a17b[_0xab70('0x37')][_0xab70('0x38')]());})){throw new db[(_0xab70('0x26'))]['ValidationError']('Invalid\x20model\x20in\x20\x27recipients\x27\x20object');}}}var _0x3fe3ea={};_0x3fe3ea[_0xab70('0x39')]=_0x126f16[_0xab70('0x2b')][_0xab70('0x24')](_0xab70('0x39'))?_0x126f16['body']['senderName']:_0x126f16[_0xab70('0x35')][_0xab70('0x3a')];_0x3fe3ea[_0xab70('0x3b')]=_['isEmpty'](_0x126f16[_0xab70('0x2b')][_0xab70('0x3b')])?null:_0x126f16[_0xab70('0x2b')]['recipientsDescription'];_0x3fe3ea[_0xab70('0x3c')]=_0x126f16[_0xab70('0x2b')]['beep']||![];_0x3fe3ea[_0xab70('0x3d')]=_0x126f16[_0xab70('0x35')]['id'];return getContent(_0x126f16['body'])[_0xab70('0x3e')](function(_0x312d7f){_0x3fe3ea[_0xab70('0x2b')]=_0x312d7f;return getRecipients(_0x3b0da0);})[_0xab70('0x3e')](function(_0x5d65bb){_0x3fe3ea[_0xab70('0x3f')]=_[_0xab70('0x40')](_0x5d65bb)[_0xab70('0x41')](',');return db[_0xab70('0x42')]['transaction'](function(_0x2b9ce8){return db[_0xab70('0x43')][_0xab70('0x44')](_0x3fe3ea,{'raw':!![],'transaction':_0x2b9ce8})[_0xab70('0x3e')](function(_0x458912){var _0x109eaa={'sender':_0x3fe3ea['senderName'],'description':_0x3fe3ea['recipientsDescription'],'content':_0x3fe3ea['body'],'beep':_0x3fe3ea[_0xab70('0x3c')]};_0x5d65bb[_0xab70('0x45')](function(_0x45bed8){_0x109eaa[_0xab70('0x46')]=_0x45bed8;socket['emit']('notification:send',_0x109eaa);});return _0x458912;});});})[_0xab70('0x3e')](respondWithResult(_0x452f2,0xc9))[_0xab70('0x47')](handleError(_0x452f2,null));};function getContent(_0x1859d5){return new BPromise(function(_0x489480,_0x595b1f){if(_0x1859d5['text']){_0x489480(_0x1859d5[_0xab70('0x48')]);return;}return db[_0xab70('0x49')][_0xab70('0x4a')]({'attributes':[_0xab70('0x4b')],'where':{'id':_0x1859d5[_0xab70('0x25')]},'raw':!![]})[_0xab70('0x3e')](function(_0x5b69f8){if(!_0x5b69f8)throw new db[(_0xab70('0x26'))]['ValidationError'](_0xab70('0x4c'));var _0x16f48f=Mustache[_0xab70('0x4d')](_0x5b69f8[_0xab70('0x4b')],_0x1859d5['view']);_0x489480(_0x16f48f);})[_0xab70('0x47')](function(_0x32d7ac){_0x595b1f(_0x32d7ac);});});}function getRecipients(_0x5270bf){return new BPromise(function(_0x4f191f,_0x43841f){var _0x5f2880=[];var _0x281729=[];_0x5270bf[_0xab70('0x45')](function(_0x331bf9){var _0x27c213=_[_0xab70('0x4e')](_0x331bf9['model'][_0xab70('0x38')]());if(_0x27c213===_0xab70('0x4f')){_0x5f2880=_[_0xab70('0x50')](_0x5f2880,_0x331bf9[_0xab70('0x51')]);}else{if(_['includes'](_0x27c213,_0xab70('0x52')))_0x27c213=_0x27c213[_0xab70('0x53')]('queue',_0xab70('0x54'));_0x331bf9[_0xab70('0x51')]['forEach'](function(_0x5bf49e){_0x281729[_0xab70('0x55')](getAgents(_0x27c213,_0x5bf49e));});}});return BPromise[_0xab70('0x56')](_0x281729)[_0xab70('0x3e')](function(_0x41e769){_0x5f2880=_[_0xab70('0x50')](_0x5f2880,_['flatten'](_0x41e769));_0x4f191f(_0x5f2880);})[_0xab70('0x47')](function(_0x1e2120){_0x43841f(_0x1e2120);});});}function getAgents(_0x1ae1ee,_0xd5840c){return new BPromise(function(_0x4cb2d4,_0x45b3b9){return db[_0x1ae1ee][_0xab70('0x4a')]({'where':{'id':_0xd5840c}})[_0xab70('0x3e')](function(_0x17ff9e){return _0x17ff9e[_0xab70('0x57')]({'attributes':['id'],'raw':!![]})[_0xab70('0x3e')](function(_0x2f5adc){var _0x3c5f99=_[_0xab70('0x58')](_0x2f5adc,'id');_0x4cb2d4(_0x3c5f99);});})[_0xab70('0x47')](function(_0x5a5c6e){_0x45b3b9(_0x5a5c6e);});});}