e48d104786eb24de59be2f0f9c543599fc9c1903
[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 _0x7dcc=['../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./userNotification.socket','register','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','end','error','stack','name','send','sendUserNotification','body','hasOwnProperty','text','TemplateId','Sequelize','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','ValidationError','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','user','some','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','recipientsDescription','isEmpty','beep','SenderId','recipientsId','sortBy','join','sequelize','UserNotification','create','emit','catch','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','forEach','User','union','ids','queue','replace','Queue','flatten','getAgents','eml-format','zip-dir','fast-json-patch','moment','bluebird','util','path','to-csv','ejs','fs-extra','lodash','querystring','papaparse','ioredis','../../components/auth/service'];(function(_0x1facfa,_0x1acf7d){var _0x9ec701=function(_0x115e37){while(--_0x115e37){_0x1facfa['push'](_0x1facfa['shift']());}};_0x9ec701(++_0x1acf7d);}(_0x7dcc,0xb3));var _0xc7dc=function(_0x4e43d4,_0xd760d0){_0x4e43d4=_0x4e43d4-0x0;var _0x4db61c=_0x7dcc[_0x4e43d4];return _0x4db61c;};'use strict';var emlformat=require(_0xc7dc('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xc7dc('0x1'));var jsonpatch=require(_0xc7dc('0x2'));var rp=require('request-promise');var moment=require(_0xc7dc('0x3'));var BPromise=require(_0xc7dc('0x4'));var Mustache=require('mustache');var util=require(_0xc7dc('0x5'));var path=require(_0xc7dc('0x6'));var sox=require('sox');var csv=require(_0xc7dc('0x7'));var ejs=require(_0xc7dc('0x8'));var fs=require('fs');var fs_extra=require(_0xc7dc('0x9'));var _=require(_0xc7dc('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xc7dc('0xb'));var Papa=require(_0xc7dc('0xc'));var Redis=require(_0xc7dc('0xd'));var authService=require(_0xc7dc('0xe'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xc7dc('0xf'))(_0xc7dc('0x10'));var utils=require(_0xc7dc('0x11'));var config=require(_0xc7dc('0x12'));var licenseUtil=require(_0xc7dc('0x13'));var db=require(_0xc7dc('0x14'))['db'];config[_0xc7dc('0x15')]=_[_0xc7dc('0x16')](config['redis'],{'host':_0xc7dc('0x17'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xc7dc('0x15')]));require(_0xc7dc('0x18'))[_0xc7dc('0x19')](socket);function respondWithStatusCode(_0x399464,_0x176236){_0x176236=_0x176236||0xcc;return function(_0x537015){if(_0x537015){return _0x399464[_0xc7dc('0x1a')](_0x176236);}return _0x399464[_0xc7dc('0x1b')](_0x176236)['end']();};}function respondWithResult(_0x372de4,_0x5de7c){_0x5de7c=_0x5de7c||0xc8;return function(_0x20abaa){if(_0x20abaa){return _0x372de4[_0xc7dc('0x1b')](_0x5de7c)[_0xc7dc('0x1c')](_0x20abaa);}};}function respondWithFilteredResult(_0x24686a,_0x1b9ad5){return function(_0x5a9f56){if(_0x5a9f56){var _0x56e670=typeof _0x1b9ad5[_0xc7dc('0x1d')]===_0xc7dc('0x1e')&&typeof _0x1b9ad5[_0xc7dc('0x1f')]===_0xc7dc('0x1e');var _0x4b7ec6=_0x5a9f56['count'];var _0x173420=_0x56e670?0x0:_0x1b9ad5[_0xc7dc('0x1d')];var _0x1e19f1=_0x56e670?_0x5a9f56[_0xc7dc('0x20')]:_0x1b9ad5[_0xc7dc('0x1d')]+_0x1b9ad5['limit'];var _0x2f064d;if(_0x1e19f1>=_0x4b7ec6){_0x1e19f1=_0x4b7ec6;_0x2f064d=0xc8;}else{_0x2f064d=0xce;}_0x24686a[_0xc7dc('0x1b')](_0x2f064d);return _0x24686a[_0xc7dc('0x21')](_0xc7dc('0x22'),_0x173420+'-'+_0x1e19f1+'/'+_0x4b7ec6)[_0xc7dc('0x1c')](_0x5a9f56);}return null;};}function patchUpdates(_0x291434){return function(_0x41b6e7){try{jsonpatch['apply'](_0x41b6e7,_0x291434,!![]);}catch(_0x59a9d7){return BPromise[_0xc7dc('0x23')](_0x59a9d7);}return _0x41b6e7[_0xc7dc('0x24')]();};}function saveUpdates(_0x46de59,_0x484082){return function(_0x10e23c){if(_0x10e23c){return _0x10e23c[_0xc7dc('0x25')](_0x46de59)[_0xc7dc('0x26')](function(_0x111e21){return _0x111e21;});}return null;};}function removeEntity(_0x2e87e2,_0x2b8b6c){return function(_0x2f5d0b){if(_0x2f5d0b){return _0x2f5d0b[_0xc7dc('0x27')]()[_0xc7dc('0x26')](function(){_0x2e87e2[_0xc7dc('0x1b')](0xcc)[_0xc7dc('0x28')]();});}};}function handleEntityNotFound(_0x43137b,_0x467197){return function(_0x41fc70){if(!_0x41fc70){_0x43137b[_0xc7dc('0x1a')](0x194);}return _0x41fc70;};}function handleError(_0x135dd1,_0x2d256a){_0x2d256a=_0x2d256a||0x1f4;return function(_0x4fb4a4){logger[_0xc7dc('0x29')](_0x4fb4a4[_0xc7dc('0x2a')]);if(_0x4fb4a4[_0xc7dc('0x2b')]){delete _0x4fb4a4[_0xc7dc('0x2b')];}_0x135dd1[_0xc7dc('0x1b')](_0x2d256a)[_0xc7dc('0x2c')](_0x4fb4a4);};}exports[_0xc7dc('0x2d')]=function(_0x4907a4,_0x565448,_0x2d6854){if(!_0x4907a4[_0xc7dc('0x2e')][_0xc7dc('0x2f')](_0xc7dc('0x30'))&&!_0x4907a4[_0xc7dc('0x2e')][_0xc7dc('0x2f')](_0xc7dc('0x31'))){throw new db[(_0xc7dc('0x32'))]['ValidationError'](_0xc7dc('0x33'));}else{if(_0x4907a4[_0xc7dc('0x2e')]['hasOwnProperty'](_0xc7dc('0x31'))&&!_0x4907a4['body']['hasOwnProperty'](_0xc7dc('0x34'))){throw new db[(_0xc7dc('0x32'))][(_0xc7dc('0x35'))](_0xc7dc('0x36'));}if(!_0x4907a4['body'][_0xc7dc('0x2f')](_0xc7dc('0x37'))){throw new db[(_0xc7dc('0x32'))]['ValidationError'](_0xc7dc('0x38'));}else{try{var _0x189c85=JSON['parse'](_0x4907a4[_0xc7dc('0x2e')]['recipients']);}catch(_0x1cfb0a){logger[_0xc7dc('0x29')](_0x1cfb0a);throw new db[(_0xc7dc('0x32'))][(_0xc7dc('0x35'))](_0xc7dc('0x39'));}var _0x4eed3e=[_0xc7dc('0x3a'),_0xc7dc('0x3b'),_0xc7dc('0x3c'),_0xc7dc('0x3d'),_0xc7dc('0x3e'),_0xc7dc('0x3f'),_0xc7dc('0x40'),'team',_0xc7dc('0x41')];if(_[_0xc7dc('0x42')](_0x189c85,function(_0x51b0af){return!_[_0xc7dc('0x43')](_0x4eed3e,_0x51b0af[_0xc7dc('0x44')][_0xc7dc('0x45')]());})){throw new db[(_0xc7dc('0x32'))][(_0xc7dc('0x35'))](_0xc7dc('0x46'));}}}var _0x293b69={};_0x293b69[_0xc7dc('0x47')]=_0x4907a4[_0xc7dc('0x2e')]['hasOwnProperty'](_0xc7dc('0x47'))?_0x4907a4['body'][_0xc7dc('0x47')]:_0x4907a4['user']['fullname'];_0x293b69[_0xc7dc('0x48')]=_[_0xc7dc('0x49')](_0x4907a4[_0xc7dc('0x2e')]['recipientsDescription'])?null:_0x4907a4['body']['recipientsDescription'];_0x293b69[_0xc7dc('0x4a')]=_0x4907a4[_0xc7dc('0x2e')]['beep']||![];_0x293b69[_0xc7dc('0x4b')]=_0x4907a4[_0xc7dc('0x41')]['id'];return getContent(_0x4907a4[_0xc7dc('0x2e')])['then'](function(_0x270f19){_0x293b69['body']=_0x270f19;return getRecipients(_0x189c85);})[_0xc7dc('0x26')](function(_0x52becf){_0x293b69[_0xc7dc('0x4c')]=_[_0xc7dc('0x4d')](_0x52becf)[_0xc7dc('0x4e')](',');return db[_0xc7dc('0x4f')]['transaction'](function(_0x447a47){return db[_0xc7dc('0x50')][_0xc7dc('0x51')](_0x293b69,{'raw':!![],'transaction':_0x447a47})[_0xc7dc('0x26')](function(_0x3472c0){var _0x15c6f7={'sender':_0x293b69[_0xc7dc('0x47')],'description':_0x293b69['recipientsDescription'],'content':_0x293b69[_0xc7dc('0x2e')],'beep':_0x293b69['beep']};_0x52becf['forEach'](function(_0xb568cf){_0x15c6f7['recipient']=_0xb568cf;socket[_0xc7dc('0x52')]('userNotification:send',_0x15c6f7);});return _0x3472c0;});});})['then'](respondWithResult(_0x565448,0xc9))[_0xc7dc('0x53')](handleError(_0x565448,null));};function getContent(_0x248e67){return new BPromise(function(_0x35912a,_0x4d3b47){if(_0x248e67[_0xc7dc('0x30')]){_0x35912a(_0x248e67[_0xc7dc('0x30')]);return;}return db['Template'][_0xc7dc('0x54')]({'attributes':[_0xc7dc('0x55')],'where':{'id':_0x248e67[_0xc7dc('0x31')]},'raw':!![]})[_0xc7dc('0x26')](function(_0x119de3){if(!_0x119de3)throw new db[(_0xc7dc('0x32'))][(_0xc7dc('0x35'))](_0xc7dc('0x56'));var _0x3a12cc=Mustache[_0xc7dc('0x57')](_0x119de3[_0xc7dc('0x55')],_0x248e67[_0xc7dc('0x34')]);_0x35912a(_0x3a12cc);})[_0xc7dc('0x53')](function(_0x53a05d){_0x4d3b47(_0x53a05d);});});}function getRecipients(_0x31be57){return new BPromise(function(_0x3f7d0e,_0x180d28){var _0x288471=[];var _0x13ef2b=[];_0x31be57[_0xc7dc('0x58')](function(_0x160ab9){var _0x1534a8=_['startCase'](_0x160ab9[_0xc7dc('0x44')][_0xc7dc('0x45')]());if(_0x1534a8===_0xc7dc('0x59')){_0x288471=_[_0xc7dc('0x5a')](_0x288471,_0x160ab9[_0xc7dc('0x5b')]);}else{if(_[_0xc7dc('0x43')](_0x1534a8,_0xc7dc('0x5c')))_0x1534a8=_0x1534a8[_0xc7dc('0x5d')](_0xc7dc('0x5c'),_0xc7dc('0x5e'));_0x160ab9[_0xc7dc('0x5b')][_0xc7dc('0x58')](function(_0x1f6a20){_0x13ef2b['push'](getAgents(_0x1534a8,_0x1f6a20));});}});return BPromise['all'](_0x13ef2b)[_0xc7dc('0x26')](function(_0x3dc6ad){_0x288471=_['union'](_0x288471,_[_0xc7dc('0x5f')](_0x3dc6ad));_0x3f7d0e(_0x288471);})[_0xc7dc('0x53')](function(_0x46fc4e){_0x180d28(_0x46fc4e);});});}function getAgents(_0x4cd48a,_0x1515ae){return new BPromise(function(_0x4490e1,_0x69a0e8){return db[_0x4cd48a][_0xc7dc('0x54')]({'where':{'id':_0x1515ae}})[_0xc7dc('0x26')](function(_0x5ef250){return _0x5ef250[_0xc7dc('0x60')]({'attributes':['id'],'raw':!![]})[_0xc7dc('0x26')](function(_0x1f30cc){var _0x4ebf75=_['map'](_0x1f30cc,'id');_0x4490e1(_0x4ebf75);});})[_0xc7dc('0x53')](function(_0x2bb590){_0x69a0e8(_0x2bb590);});});}