Built motion from commit da617fac.|2.6.6
[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 _0xf9c2=['beep','recipientsId','sortBy','join','transaction','UserNotification','forEach','recipient','emit','userNotification:send','catch','Template','findOne','Invalid\x20\x27TemplateId\x27\x20parameter','render','html','startCase','User','union','ids','replace','Queue','push','getAgents','map','rimraf','fast-json-patch','moment','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./userNotification.socket','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','sendStatus','error','stack','name','send','sendUserNotification','body','hasOwnProperty','text','TemplateId','Sequelize','ValidationError','view','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','openchannelqueue','whatsappqueue','team','user','some','includes','model','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','isEmpty','recipientsDescription'];(function(_0x2f6ac1,_0x6ec9d0){var _0x36a38d=function(_0x6377d1){while(--_0x6377d1){_0x2f6ac1['push'](_0x2f6ac1['shift']());}};_0x36a38d(++_0x6ec9d0);}(_0xf9c2,0x14b));var _0x2f9c=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xf9c2[_0x321bb2];return _0x9c12ed;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2f9c('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x2f9c('0x1'));var rp=require('request-promise');var moment=require(_0x2f9c('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x2f9c('0x3'));var util=require(_0x2f9c('0x4'));var path=require(_0x2f9c('0x5'));var sox=require(_0x2f9c('0x6'));var csv=require('to-csv');var ejs=require(_0x2f9c('0x7'));var fs=require('fs');var fs_extra=require(_0x2f9c('0x8'));var _=require(_0x2f9c('0x9'));var squel=require(_0x2f9c('0xa'));var crypto=require(_0x2f9c('0xb'));var jsforce=require(_0x2f9c('0xc'));var deskjs=require(_0x2f9c('0xd'));var toCsv=require(_0x2f9c('0xe'));var querystring=require('querystring');var Papa=require(_0x2f9c('0xf'));var Redis=require(_0x2f9c('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x2f9c('0x11'));var as=require(_0x2f9c('0x12'));var hardwareService=require(_0x2f9c('0x13'));var logger=require(_0x2f9c('0x14'))(_0x2f9c('0x15'));var utils=require(_0x2f9c('0x16'));var config=require(_0x2f9c('0x17'));var licenseUtil=require(_0x2f9c('0x18'));var db=require(_0x2f9c('0x19'))['db'];config[_0x2f9c('0x1a')]=_[_0x2f9c('0x1b')](config['redis'],{'host':_0x2f9c('0x1c'),'port':0x18eb});var socket=require(_0x2f9c('0x1d'))(new Redis(config[_0x2f9c('0x1a')]));require(_0x2f9c('0x1e'))['register'](socket);function respondWithStatusCode(_0x111370,_0x4c1768){_0x4c1768=_0x4c1768||0xcc;return function(_0x466f89){if(_0x466f89){return _0x111370['sendStatus'](_0x4c1768);}return _0x111370[_0x2f9c('0x1f')](_0x4c1768)[_0x2f9c('0x20')]();};}function respondWithResult(_0x407650,_0x1aff05){_0x1aff05=_0x1aff05||0xc8;return function(_0xfe0806){if(_0xfe0806){return _0x407650['status'](_0x1aff05)[_0x2f9c('0x21')](_0xfe0806);}};}function respondWithFilteredResult(_0x5638ac,_0x49e9dc){return function(_0x5820cc){if(_0x5820cc){var _0x7a8d03=typeof _0x49e9dc[_0x2f9c('0x22')]===_0x2f9c('0x23')&&typeof _0x49e9dc[_0x2f9c('0x24')]===_0x2f9c('0x23');var _0xecab50=_0x5820cc[_0x2f9c('0x25')];var _0x100031=_0x7a8d03?0x0:_0x49e9dc['offset'];var _0x254ae8=_0x7a8d03?_0x5820cc['count']:_0x49e9dc['offset']+_0x49e9dc[_0x2f9c('0x24')];var _0x4332a1;if(_0x254ae8>=_0xecab50){_0x254ae8=_0xecab50;_0x4332a1=0xc8;}else{_0x4332a1=0xce;}_0x5638ac[_0x2f9c('0x1f')](_0x4332a1);return _0x5638ac[_0x2f9c('0x26')](_0x2f9c('0x27'),_0x100031+'-'+_0x254ae8+'/'+_0xecab50)[_0x2f9c('0x21')](_0x5820cc);}return null;};}function patchUpdates(_0x3f1011){return function(_0x37535b){try{jsonpatch[_0x2f9c('0x28')](_0x37535b,_0x3f1011,!![]);}catch(_0x47b6a9){return BPromise[_0x2f9c('0x29')](_0x47b6a9);}return _0x37535b[_0x2f9c('0x2a')]();};}function saveUpdates(_0x189a24,_0xff0324){return function(_0x26657e){if(_0x26657e){return _0x26657e[_0x2f9c('0x2b')](_0x189a24)['then'](function(_0x534de6){return _0x534de6;});}return null;};}function removeEntity(_0x464548,_0x579164){return function(_0x1c58f7){if(_0x1c58f7){return _0x1c58f7['destroy']()[_0x2f9c('0x2c')](function(){_0x464548[_0x2f9c('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2b96e4,_0x5f2841){return function(_0x1fcd50){if(!_0x1fcd50){_0x2b96e4[_0x2f9c('0x2d')](0x194);}return _0x1fcd50;};}function handleError(_0x6fab4e,_0x40ff91){_0x40ff91=_0x40ff91||0x1f4;return function(_0x372fff){logger[_0x2f9c('0x2e')](_0x372fff[_0x2f9c('0x2f')]);if(_0x372fff[_0x2f9c('0x30')]){delete _0x372fff[_0x2f9c('0x30')];}_0x6fab4e[_0x2f9c('0x1f')](_0x40ff91)[_0x2f9c('0x31')](_0x372fff);};}exports[_0x2f9c('0x32')]=function(_0x3fa1ce,_0x306cac,_0x327fc0){if(!_0x3fa1ce[_0x2f9c('0x33')][_0x2f9c('0x34')](_0x2f9c('0x35'))&&!_0x3fa1ce['body'][_0x2f9c('0x34')](_0x2f9c('0x36'))){throw new db[(_0x2f9c('0x37'))][(_0x2f9c('0x38'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x3fa1ce[_0x2f9c('0x33')]['hasOwnProperty']('TemplateId')&&!_0x3fa1ce[_0x2f9c('0x33')][_0x2f9c('0x34')](_0x2f9c('0x39'))){throw new db[(_0x2f9c('0x37'))][(_0x2f9c('0x38'))](_0x2f9c('0x3a'));}if(!_0x3fa1ce[_0x2f9c('0x33')][_0x2f9c('0x34')](_0x2f9c('0x3b'))){throw new db[(_0x2f9c('0x37'))][(_0x2f9c('0x38'))](_0x2f9c('0x3c'));}else{try{var _0x29bc0d=JSON[_0x2f9c('0x3d')](_0x3fa1ce[_0x2f9c('0x33')]['recipients']);}catch(_0x20ccd2){logger[_0x2f9c('0x2e')](_0x20ccd2);throw new db[(_0x2f9c('0x37'))]['ValidationError'](_0x2f9c('0x3e'));}var _0x47e935=[_0x2f9c('0x3f'),_0x2f9c('0x40'),_0x2f9c('0x41'),_0x2f9c('0x42'),'smsqueue','voicequeue',_0x2f9c('0x43'),_0x2f9c('0x44'),_0x2f9c('0x45')];if(_[_0x2f9c('0x46')](_0x29bc0d,function(_0x573e0f){return!_[_0x2f9c('0x47')](_0x47e935,_0x573e0f[_0x2f9c('0x48')]['toLowerCase']());})){throw new db[(_0x2f9c('0x37'))][(_0x2f9c('0x38'))](_0x2f9c('0x49'));}}}var _0x17f196={};_0x17f196['senderName']=_0x3fa1ce[_0x2f9c('0x33')][_0x2f9c('0x34')](_0x2f9c('0x4a'))?_0x3fa1ce[_0x2f9c('0x33')][_0x2f9c('0x4a')]:_0x3fa1ce[_0x2f9c('0x45')]['fullname'];_0x17f196['recipientsDescription']=_[_0x2f9c('0x4b')](_0x3fa1ce[_0x2f9c('0x33')][_0x2f9c('0x4c')])?null:_0x3fa1ce[_0x2f9c('0x33')][_0x2f9c('0x4c')];_0x17f196[_0x2f9c('0x4d')]=_0x3fa1ce[_0x2f9c('0x33')][_0x2f9c('0x4d')]||![];_0x17f196['SenderId']=_0x3fa1ce[_0x2f9c('0x45')]['id'];return getContent(_0x3fa1ce['body'])[_0x2f9c('0x2c')](function(_0x2dd3cb){_0x17f196[_0x2f9c('0x33')]=_0x2dd3cb;return getRecipients(_0x29bc0d);})[_0x2f9c('0x2c')](function(_0x2d2afa){_0x17f196[_0x2f9c('0x4e')]=_[_0x2f9c('0x4f')](_0x2d2afa)[_0x2f9c('0x50')](',');return db['sequelize'][_0x2f9c('0x51')](function(_0x5ea91e){return db[_0x2f9c('0x52')]['create'](_0x17f196,{'raw':!![],'transaction':_0x5ea91e})['then'](function(_0x38029a){var _0x599a2e={'sender':_0x17f196['senderName'],'description':_0x17f196['recipientsDescription'],'content':_0x17f196[_0x2f9c('0x33')],'beep':_0x17f196[_0x2f9c('0x4d')]};_0x2d2afa[_0x2f9c('0x53')](function(_0xfd2f5f){_0x599a2e[_0x2f9c('0x54')]=_0xfd2f5f;socket[_0x2f9c('0x55')](_0x2f9c('0x56'),_0x599a2e);});return _0x38029a;});});})['then'](respondWithResult(_0x306cac,0xc9))[_0x2f9c('0x57')](handleError(_0x306cac,null));};function getContent(_0x48b248){return new BPromise(function(_0x2a09e7,_0x5e4cae){if(_0x48b248[_0x2f9c('0x35')]){_0x2a09e7(_0x48b248['text']);return;}return db[_0x2f9c('0x58')][_0x2f9c('0x59')]({'attributes':['html'],'where':{'id':_0x48b248['TemplateId']},'raw':!![]})['then'](function(_0x332c51){if(!_0x332c51)throw new db[(_0x2f9c('0x37'))][(_0x2f9c('0x38'))](_0x2f9c('0x5a'));var _0x52e5bf=Mustache[_0x2f9c('0x5b')](_0x332c51[_0x2f9c('0x5c')],_0x48b248[_0x2f9c('0x39')]);_0x2a09e7(_0x52e5bf);})[_0x2f9c('0x57')](function(_0x54a39e){_0x5e4cae(_0x54a39e);});});}function getRecipients(_0x1a013b){return new BPromise(function(_0x11e3ce,_0x3b024e){var _0x4bcf07=[];var _0x587944=[];_0x1a013b[_0x2f9c('0x53')](function(_0x247f97){var _0x52c68e=_[_0x2f9c('0x5d')](_0x247f97[_0x2f9c('0x48')]['toLowerCase']());if(_0x52c68e===_0x2f9c('0x5e')){_0x4bcf07=_[_0x2f9c('0x5f')](_0x4bcf07,_0x247f97[_0x2f9c('0x60')]);}else{if(_[_0x2f9c('0x47')](_0x52c68e,'queue'))_0x52c68e=_0x52c68e[_0x2f9c('0x61')]('queue',_0x2f9c('0x62'));_0x247f97[_0x2f9c('0x60')][_0x2f9c('0x53')](function(_0x150ff8){_0x587944[_0x2f9c('0x63')](getAgents(_0x52c68e,_0x150ff8));});}});return BPromise['all'](_0x587944)[_0x2f9c('0x2c')](function(_0x1fd3be){_0x4bcf07=_[_0x2f9c('0x5f')](_0x4bcf07,_['flatten'](_0x1fd3be));_0x11e3ce(_0x4bcf07);})[_0x2f9c('0x57')](function(_0x285d08){_0x3b024e(_0x285d08);});});}function getAgents(_0x4e1a3c,_0x5a8c4f){return new BPromise(function(_0x260b60,_0x541f38){return db[_0x4e1a3c][_0x2f9c('0x59')]({'where':{'id':_0x5a8c4f}})['then'](function(_0x24ada4){return _0x24ada4[_0x2f9c('0x64')]({'attributes':['id'],'raw':!![]})['then'](function(_0x9239db){var _0xa6b5ee=_[_0x2f9c('0x65')](_0x9239db,'id');_0x260b60(_0xa6b5ee);});})[_0x2f9c('0x57')](function(_0x442cba){_0x541f38(_0x442cba);});});}