Built motion from commit ac06311e.|2.6.28
[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 _0x7139=['Invalid\x20\x27recipients\x27\x20object','faxqueue','mailqueue','openchannelqueue','smsqueue','whatsappqueue','team','user','some','includes','model','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','recipientsDescription','isEmpty','beep','SenderId','sortBy','join','sequelize','UserNotification','create','forEach','recipient','emit','userNotification:send','catch','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','view','startCase','toLowerCase','User','ids','replace','queue','all','union','flatten','findOne','getAgents','map','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./userNotification.socket','register','sendStatus','status','end','json','offset','undefined','count','apply','reject','update','then','destroy','stack','name','send','body','hasOwnProperty','text','TemplateId','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','Sequelize','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','error'];(function(_0x5c78d9,_0x2736c7){var _0x69ae1f=function(_0x4b31ac){while(--_0x4b31ac){_0x5c78d9['push'](_0x5c78d9['shift']());}};_0x69ae1f(++_0x2736c7);}(_0x7139,0x91));var _0x9713=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x7139[_0x2641f9];return _0x585741;};'use strict';var emlformat=require(_0x9713('0x0'));var rimraf=require(_0x9713('0x1'));var zipdir=require(_0x9713('0x2'));var jsonpatch=require(_0x9713('0x3'));var rp=require(_0x9713('0x4'));var moment=require(_0x9713('0x5'));var BPromise=require(_0x9713('0x6'));var Mustache=require(_0x9713('0x7'));var util=require('util');var path=require(_0x9713('0x8'));var sox=require(_0x9713('0x9'));var csv=require(_0x9713('0xa'));var ejs=require(_0x9713('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9713('0xc'));var squel=require('squel');var crypto=require(_0x9713('0xd'));var jsforce=require(_0x9713('0xe'));var deskjs=require(_0x9713('0xf'));var toCsv=require('to-csv');var querystring=require(_0x9713('0x10'));var Papa=require(_0x9713('0x11'));var Redis=require('ioredis');var authService=require(_0x9713('0x12'));var qs=require(_0x9713('0x13'));var as=require(_0x9713('0x14'));var hardwareService=require(_0x9713('0x15'));var logger=require('../../config/logger')(_0x9713('0x16'));var utils=require(_0x9713('0x17'));var config=require(_0x9713('0x18'));var licenseUtil=require(_0x9713('0x19'));var db=require(_0x9713('0x1a'))['db'];config[_0x9713('0x1b')]=_[_0x9713('0x1c')](config[_0x9713('0x1b')],{'host':'localhost','port':0x18eb});var socket=require(_0x9713('0x1d'))(new Redis(config[_0x9713('0x1b')]));require(_0x9713('0x1e'))[_0x9713('0x1f')](socket);function respondWithStatusCode(_0x201ad8,_0x3c767d){_0x3c767d=_0x3c767d||0xcc;return function(_0x58e2b0){if(_0x58e2b0){return _0x201ad8[_0x9713('0x20')](_0x3c767d);}return _0x201ad8[_0x9713('0x21')](_0x3c767d)[_0x9713('0x22')]();};}function respondWithResult(_0x24d582,_0x47a48c){_0x47a48c=_0x47a48c||0xc8;return function(_0x309660){if(_0x309660){return _0x24d582[_0x9713('0x21')](_0x47a48c)[_0x9713('0x23')](_0x309660);}};}function respondWithFilteredResult(_0x51d5e1,_0xae2e9d){return function(_0x14060d){if(_0x14060d){var _0x1657de=typeof _0xae2e9d[_0x9713('0x24')]===_0x9713('0x25')&&typeof _0xae2e9d['limit']===_0x9713('0x25');var _0x3e9b74=_0x14060d[_0x9713('0x26')];var _0xd664d9=_0x1657de?0x0:_0xae2e9d[_0x9713('0x24')];var _0x281a3c=_0x1657de?_0x14060d['count']:_0xae2e9d['offset']+_0xae2e9d['limit'];var _0x1e2e09;if(_0x281a3c>=_0x3e9b74){_0x281a3c=_0x3e9b74;_0x1e2e09=0xc8;}else{_0x1e2e09=0xce;}_0x51d5e1['status'](_0x1e2e09);return _0x51d5e1['set']('Content-Range',_0xd664d9+'-'+_0x281a3c+'/'+_0x3e9b74)[_0x9713('0x23')](_0x14060d);}return null;};}function patchUpdates(_0x3a2991){return function(_0x4f185c){try{jsonpatch[_0x9713('0x27')](_0x4f185c,_0x3a2991,!![]);}catch(_0x2693e0){return BPromise[_0x9713('0x28')](_0x2693e0);}return _0x4f185c['save']();};}function saveUpdates(_0x5c7c48,_0x5e9980){return function(_0xdb1aad){if(_0xdb1aad){return _0xdb1aad[_0x9713('0x29')](_0x5c7c48)[_0x9713('0x2a')](function(_0x36435){return _0x36435;});}return null;};}function removeEntity(_0x48f30f,_0x442866){return function(_0x4171de){if(_0x4171de){return _0x4171de[_0x9713('0x2b')]()[_0x9713('0x2a')](function(){_0x48f30f['status'](0xcc)[_0x9713('0x22')]();});}};}function handleEntityNotFound(_0x3830c9,_0x5db4c1){return function(_0x19c152){if(!_0x19c152){_0x3830c9[_0x9713('0x20')](0x194);}return _0x19c152;};}function handleError(_0x3b3121,_0x3780e3){_0x3780e3=_0x3780e3||0x1f4;return function(_0x2ec4c8){logger['error'](_0x2ec4c8[_0x9713('0x2c')]);if(_0x2ec4c8[_0x9713('0x2d')]){delete _0x2ec4c8[_0x9713('0x2d')];}_0x3b3121[_0x9713('0x21')](_0x3780e3)[_0x9713('0x2e')](_0x2ec4c8);};}exports['sendUserNotification']=function(_0xbf8f14,_0x2841e0,_0x430d4b){if(!_0xbf8f14[_0x9713('0x2f')][_0x9713('0x30')](_0x9713('0x31'))&&!_0xbf8f14[_0x9713('0x2f')][_0x9713('0x30')](_0x9713('0x32'))){throw new db['Sequelize'][(_0x9713('0x33'))](_0x9713('0x34'));}else{if(_0xbf8f14[_0x9713('0x2f')]['hasOwnProperty'](_0x9713('0x32'))&&!_0xbf8f14[_0x9713('0x2f')]['hasOwnProperty']('view')){throw new db[(_0x9713('0x35'))][(_0x9713('0x33'))](_0x9713('0x36'));}if(!_0xbf8f14[_0x9713('0x2f')][_0x9713('0x30')](_0x9713('0x37'))){throw new db['Sequelize'][(_0x9713('0x33'))](_0x9713('0x38'));}else{try{var _0x36761c=JSON[_0x9713('0x39')](_0xbf8f14['body']['recipients']);}catch(_0x1c2e02){logger[_0x9713('0x3a')](_0x1c2e02);throw new db[(_0x9713('0x35'))][(_0x9713('0x33'))](_0x9713('0x3b'));}var _0x4496c9=['chatqueue',_0x9713('0x3c'),_0x9713('0x3d'),_0x9713('0x3e'),_0x9713('0x3f'),'voicequeue',_0x9713('0x40'),_0x9713('0x41'),_0x9713('0x42')];if(_[_0x9713('0x43')](_0x36761c,function(_0x31bd73){return!_[_0x9713('0x44')](_0x4496c9,_0x31bd73[_0x9713('0x45')]['toLowerCase']());})){throw new db[(_0x9713('0x35'))][(_0x9713('0x33'))](_0x9713('0x46'));}}}var _0x23635a={};_0x23635a['senderName']=_0xbf8f14[_0x9713('0x2f')][_0x9713('0x30')](_0x9713('0x47'))?_0xbf8f14[_0x9713('0x2f')][_0x9713('0x47')]:_0xbf8f14[_0x9713('0x42')]['fullname'];_0x23635a[_0x9713('0x48')]=_[_0x9713('0x49')](_0xbf8f14[_0x9713('0x2f')]['recipientsDescription'])?null:_0xbf8f14[_0x9713('0x2f')][_0x9713('0x48')];_0x23635a['beep']=_0xbf8f14[_0x9713('0x2f')][_0x9713('0x4a')]||![];_0x23635a[_0x9713('0x4b')]=_0xbf8f14[_0x9713('0x42')]['id'];return getContent(_0xbf8f14[_0x9713('0x2f')])['then'](function(_0x121d2d){_0x23635a[_0x9713('0x2f')]=_0x121d2d;return getRecipients(_0x36761c);})['then'](function(_0x3b9329){_0x23635a['recipientsId']=_[_0x9713('0x4c')](_0x3b9329)[_0x9713('0x4d')](',');return db[_0x9713('0x4e')]['transaction'](function(_0x6bb3df){return db[_0x9713('0x4f')][_0x9713('0x50')](_0x23635a,{'raw':!![],'transaction':_0x6bb3df})[_0x9713('0x2a')](function(_0x738adf){var _0x33c37a={'sender':_0x23635a[_0x9713('0x47')],'description':_0x23635a[_0x9713('0x48')],'content':_0x23635a[_0x9713('0x2f')],'beep':_0x23635a['beep']};_0x3b9329[_0x9713('0x51')](function(_0x4ef64c){_0x33c37a[_0x9713('0x52')]=_0x4ef64c;socket[_0x9713('0x53')](_0x9713('0x54'),_0x33c37a);});return _0x738adf;});});})[_0x9713('0x2a')](respondWithResult(_0x2841e0,0xc9))[_0x9713('0x55')](handleError(_0x2841e0,null));};function getContent(_0x350166){return new BPromise(function(_0x448e60,_0x24bac8){if(_0x350166['text']){_0x448e60(_0x350166[_0x9713('0x31')]);return;}return db['Template']['findOne']({'attributes':[_0x9713('0x56')],'where':{'id':_0x350166[_0x9713('0x32')]},'raw':!![]})['then'](function(_0xbd6863){if(!_0xbd6863)throw new db['Sequelize'][(_0x9713('0x33'))](_0x9713('0x57'));var _0x29e24f=Mustache[_0x9713('0x58')](_0xbd6863[_0x9713('0x56')],_0x350166[_0x9713('0x59')]);_0x448e60(_0x29e24f);})[_0x9713('0x55')](function(_0x2b3e1b){_0x24bac8(_0x2b3e1b);});});}function getRecipients(_0x348adf){return new BPromise(function(_0x518c76,_0x19c060){var _0x229373=[];var _0x461a35=[];_0x348adf[_0x9713('0x51')](function(_0x5118d5){var _0x280d49=_[_0x9713('0x5a')](_0x5118d5[_0x9713('0x45')][_0x9713('0x5b')]());if(_0x280d49===_0x9713('0x5c')){_0x229373=_['union'](_0x229373,_0x5118d5[_0x9713('0x5d')]);}else{if(_[_0x9713('0x44')](_0x280d49,'queue'))_0x280d49=_0x280d49[_0x9713('0x5e')](_0x9713('0x5f'),'Queue');_0x5118d5[_0x9713('0x5d')][_0x9713('0x51')](function(_0x56eb66){_0x461a35['push'](getAgents(_0x280d49,_0x56eb66));});}});return BPromise[_0x9713('0x60')](_0x461a35)[_0x9713('0x2a')](function(_0x559aab){_0x229373=_[_0x9713('0x61')](_0x229373,_[_0x9713('0x62')](_0x559aab));_0x518c76(_0x229373);})['catch'](function(_0x1b432e){_0x19c060(_0x1b432e);});});}function getAgents(_0x58db2d,_0x506e3f){return new BPromise(function(_0x372e78,_0x3ba10a){return db[_0x58db2d][_0x9713('0x63')]({'where':{'id':_0x506e3f}})['then'](function(_0x4ceaf6){return _0x4ceaf6[_0x9713('0x64')]({'attributes':['id'],'raw':!![]})[_0x9713('0x2a')](function(_0x585d6a){var _0x4da89f=_[_0x9713('0x65')](_0x585d6a,'id');_0x372e78(_0x4da89f);});})['catch'](function(_0x81c823){_0x3ba10a(_0x81c823);});});}