Built motion from commit (unavailable).|2.5.26
[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 _0x1b83=['mailqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','team','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','user','fullname','recipientsDescription','isEmpty','beep','sortBy','join','transaction','UserNotification','forEach','recipient','emit','userNotification:send','Template','findOne','html','TemplateId','render','view','catch','startCase','ids','queue','replace','all','union','flatten','getAgents','map','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/license/util','../../mysqldb','defaults','redis','localhost','sendStatus','status','end','json','count','limit','Content-Range','reject','destroy','then','error','stack','name','send','sendUserNotification','hasOwnProperty','text','body','ValidationError','Sequelize','Missing\x20\x27view\x27\x20parameter','recipients','parse','chatqueue','faxqueue'];(function(_0xbf0060,_0x25274c){var _0x2ab323=function(_0xd22a50){while(--_0xd22a50){_0xbf0060['push'](_0xbf0060['shift']());}};_0x2ab323(++_0x25274c);}(_0x1b83,0x194));var _0x31b8=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0x1b83[_0x21a9d9];return _0x46adce;};'use strict';var emlformat=require(_0x31b8('0x0'));var rimraf=require(_0x31b8('0x1'));var zipdir=require(_0x31b8('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x31b8('0x3'));var BPromise=require(_0x31b8('0x4'));var Mustache=require(_0x31b8('0x5'));var util=require(_0x31b8('0x6'));var path=require(_0x31b8('0x7'));var sox=require(_0x31b8('0x8'));var csv=require('to-csv');var ejs=require(_0x31b8('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x31b8('0xa'));var squel=require(_0x31b8('0xb'));var crypto=require(_0x31b8('0xc'));var jsforce=require(_0x31b8('0xd'));var deskjs=require(_0x31b8('0xe'));var toCsv=require(_0x31b8('0xf'));var querystring=require(_0x31b8('0x10'));var Papa=require(_0x31b8('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x31b8('0x12'));var hardwareService=require(_0x31b8('0x13'));var logger=require(_0x31b8('0x14'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x31b8('0x15'));var db=require(_0x31b8('0x16'))['db'];config['redis']=_[_0x31b8('0x17')](config[_0x31b8('0x18')],{'host':_0x31b8('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x31b8('0x18')]));require('./userNotification.socket')['register'](socket);function respondWithStatusCode(_0x18f638,_0x1fc2af){_0x1fc2af=_0x1fc2af||0xcc;return function(_0x503813){if(_0x503813){return _0x18f638[_0x31b8('0x1a')](_0x1fc2af);}return _0x18f638[_0x31b8('0x1b')](_0x1fc2af)[_0x31b8('0x1c')]();};}function respondWithResult(_0xca4b2d,_0x57a9e8){_0x57a9e8=_0x57a9e8||0xc8;return function(_0x5bff93){if(_0x5bff93){return _0xca4b2d[_0x31b8('0x1b')](_0x57a9e8)[_0x31b8('0x1d')](_0x5bff93);}};}function respondWithFilteredResult(_0x318a51,_0x47dcd9){return function(_0x397f47){if(_0x397f47){var _0x4ffa7c=_0x397f47[_0x31b8('0x1e')],_0x4f18d4=_0x47dcd9['offset'],_0x4e8f27=_0x47dcd9['offset']+_0x47dcd9[_0x31b8('0x1f')],_0x400167;if(_0x4e8f27>=_0x4ffa7c){_0x4e8f27=_0x4ffa7c;_0x400167=0xc8;}else{_0x400167=0xce;}_0x318a51[_0x31b8('0x1b')](_0x400167);return _0x318a51['set'](_0x31b8('0x20'),_0x4f18d4+'-'+_0x4e8f27+'/'+_0x4ffa7c)['json'](_0x397f47);}return null;};}function patchUpdates(_0xe8a6f2){return function(_0x5b7b97){try{jsonpatch['apply'](_0x5b7b97,_0xe8a6f2,!![]);}catch(_0x3362c5){return BPromise[_0x31b8('0x21')](_0x3362c5);}return _0x5b7b97['save']();};}function saveUpdates(_0x483885,_0x52d02c){return function(_0x170e40){if(_0x170e40){return _0x170e40['update'](_0x483885)['then'](function(_0x391731){return _0x391731;});}return null;};}function removeEntity(_0x27b9dc,_0x5ef10e){return function(_0x4ac1c3){if(_0x4ac1c3){return _0x4ac1c3[_0x31b8('0x22')]()[_0x31b8('0x23')](function(){_0x27b9dc[_0x31b8('0x1b')](0xcc)[_0x31b8('0x1c')]();});}};}function handleEntityNotFound(_0x3fe752,_0x4d5fb4){return function(_0x5354da){if(!_0x5354da){_0x3fe752[_0x31b8('0x1a')](0x194);}return _0x5354da;};}function handleError(_0x58874c,_0x41313a){_0x41313a=_0x41313a||0x1f4;return function(_0x2ed514){logger[_0x31b8('0x24')](_0x2ed514[_0x31b8('0x25')]);if(_0x2ed514[_0x31b8('0x26')]){delete _0x2ed514['name'];}_0x58874c[_0x31b8('0x1b')](_0x41313a)[_0x31b8('0x27')](_0x2ed514);};}exports[_0x31b8('0x28')]=function(_0x5b0943,_0x1478f0,_0x7ed274){if(!_0x5b0943['body'][_0x31b8('0x29')](_0x31b8('0x2a'))&&!_0x5b0943[_0x31b8('0x2b')][_0x31b8('0x29')]('TemplateId')){throw new db['Sequelize'][(_0x31b8('0x2c'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x5b0943['body'][_0x31b8('0x29')]('TemplateId')&&!_0x5b0943[_0x31b8('0x2b')][_0x31b8('0x29')]('view')){throw new db[(_0x31b8('0x2d'))][(_0x31b8('0x2c'))](_0x31b8('0x2e'));}if(!_0x5b0943[_0x31b8('0x2b')]['hasOwnProperty'](_0x31b8('0x2f'))){throw new db[(_0x31b8('0x2d'))]['ValidationError']('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x4277e7=JSON[_0x31b8('0x30')](_0x5b0943[_0x31b8('0x2b')][_0x31b8('0x2f')]);}catch(_0x1d8a29){logger[_0x31b8('0x24')](_0x1d8a29);throw new db['Sequelize']['ValidationError']('Invalid\x20\x27recipients\x27\x20object');}var _0x1f8de8=[_0x31b8('0x31'),_0x31b8('0x32'),_0x31b8('0x33'),_0x31b8('0x34'),_0x31b8('0x35'),_0x31b8('0x36'),_0x31b8('0x37'),_0x31b8('0x38'),'user'];if(_['some'](_0x4277e7,function(_0x35088b){return!_[_0x31b8('0x39')](_0x1f8de8,_0x35088b[_0x31b8('0x3a')][_0x31b8('0x3b')]());})){throw new db[(_0x31b8('0x2d'))][(_0x31b8('0x2c'))](_0x31b8('0x3c'));}}}var _0x3c7a4b={};_0x3c7a4b[_0x31b8('0x3d')]=_0x5b0943[_0x31b8('0x2b')][_0x31b8('0x29')](_0x31b8('0x3d'))?_0x5b0943[_0x31b8('0x2b')][_0x31b8('0x3d')]:_0x5b0943[_0x31b8('0x3e')][_0x31b8('0x3f')];_0x3c7a4b[_0x31b8('0x40')]=_[_0x31b8('0x41')](_0x5b0943[_0x31b8('0x2b')]['recipientsDescription'])?null:_0x5b0943['body'][_0x31b8('0x40')];_0x3c7a4b[_0x31b8('0x42')]=_0x5b0943[_0x31b8('0x2b')][_0x31b8('0x42')]||![];_0x3c7a4b['SenderId']=_0x5b0943['user']['id'];return getContent(_0x5b0943[_0x31b8('0x2b')])[_0x31b8('0x23')](function(_0x28c0be){_0x3c7a4b[_0x31b8('0x2b')]=_0x28c0be;return getRecipients(_0x4277e7);})[_0x31b8('0x23')](function(_0x31945f){_0x3c7a4b['recipientsId']=_[_0x31b8('0x43')](_0x31945f)[_0x31b8('0x44')](',');return db['sequelize'][_0x31b8('0x45')](function(_0x127777){return db[_0x31b8('0x46')]['create'](_0x3c7a4b,{'raw':!![],'transaction':_0x127777})[_0x31b8('0x23')](function(_0xadf656){var _0x492d35={'sender':_0x3c7a4b[_0x31b8('0x3d')],'description':_0x3c7a4b[_0x31b8('0x40')],'content':_0x3c7a4b['body'],'beep':_0x3c7a4b[_0x31b8('0x42')]};_0x31945f[_0x31b8('0x47')](function(_0x5e7da9){_0x492d35[_0x31b8('0x48')]=_0x5e7da9;socket[_0x31b8('0x49')](_0x31b8('0x4a'),_0x492d35);});return _0xadf656;});});})[_0x31b8('0x23')](respondWithResult(_0x1478f0,0xc9))['catch'](handleError(_0x1478f0,null));};function getContent(_0x360c7d){return new BPromise(function(_0x21f96e,_0x535784){if(_0x360c7d[_0x31b8('0x2a')]){_0x21f96e(_0x360c7d[_0x31b8('0x2a')]);return;}return db[_0x31b8('0x4b')][_0x31b8('0x4c')]({'attributes':[_0x31b8('0x4d')],'where':{'id':_0x360c7d[_0x31b8('0x4e')]},'raw':!![]})[_0x31b8('0x23')](function(_0x48ed24){if(!_0x48ed24)throw new db[(_0x31b8('0x2d'))][(_0x31b8('0x2c'))]('Invalid\x20\x27TemplateId\x27\x20parameter');var _0x3acaee=Mustache[_0x31b8('0x4f')](_0x48ed24[_0x31b8('0x4d')],_0x360c7d[_0x31b8('0x50')]);_0x21f96e(_0x3acaee);})[_0x31b8('0x51')](function(_0x261b79){_0x535784(_0x261b79);});});}function getRecipients(_0x2c9726){return new BPromise(function(_0x541410,_0x4c25a6){var _0x2e2635=[];var _0xd7df5b=[];_0x2c9726[_0x31b8('0x47')](function(_0x1704c0){var _0x153587=_[_0x31b8('0x52')](_0x1704c0['model'][_0x31b8('0x3b')]());if(_0x153587==='User'){_0x2e2635=_['union'](_0x2e2635,_0x1704c0[_0x31b8('0x53')]);}else{if(_[_0x31b8('0x39')](_0x153587,_0x31b8('0x54')))_0x153587=_0x153587[_0x31b8('0x55')](_0x31b8('0x54'),'Queue');_0x1704c0[_0x31b8('0x53')][_0x31b8('0x47')](function(_0x56e909){_0xd7df5b['push'](getAgents(_0x153587,_0x56e909));});}});return BPromise[_0x31b8('0x56')](_0xd7df5b)[_0x31b8('0x23')](function(_0x1f4cc0){_0x2e2635=_[_0x31b8('0x57')](_0x2e2635,_[_0x31b8('0x58')](_0x1f4cc0));_0x541410(_0x2e2635);})['catch'](function(_0x3a4f4c){_0x4c25a6(_0x3a4f4c);});});}function getAgents(_0x3f5f69,_0x5a191c){return new BPromise(function(_0x3ae13d,_0x16a5c2){return db[_0x3f5f69][_0x31b8('0x4c')]({'where':{'id':_0x5a191c}})[_0x31b8('0x23')](function(_0x107bfc){return _0x107bfc[_0x31b8('0x59')]({'attributes':['id'],'raw':!![]})[_0x31b8('0x23')](function(_0x432842){var _0x505b38=_[_0x31b8('0x5a')](_0x432842,'id');_0x3ae13d(_0x505b38);});})[_0x31b8('0x51')](function(_0x4c5a87){_0x16a5c2(_0x4c5a87);});});}