ea57716301855d17db5686870b89419bb4c370dc
[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 _0xd3f5=['../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./userNotification.socket','register','status','end','json','offset','limit','count','Content-Range','apply','reject','then','sendStatus','error','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','mailqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','team','some','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','user','fullname','recipientsDescription','beep','SenderId','recipientsId','sortBy','sequelize','transaction','UserNotification','create','forEach','recipient','emit','userNotification:send','catch','Template','html','render','startCase','union','ids','replace','queue','Queue','all','flatten','getAgents','map','eml-format','rimraf','bluebird','mustache','util','path','to-csv','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api'];(function(_0x3ab9ee,_0x4a74b8){var _0x82ee88=function(_0x6ccc7e){while(--_0x6ccc7e){_0x3ab9ee['push'](_0x3ab9ee['shift']());}};_0x82ee88(++_0x4a74b8);}(_0xd3f5,0x1d1));var _0x5d3f=function(_0x6131cd,_0x4c26a1){_0x6131cd=_0x6131cd-0x0;var _0x47e916=_0xd3f5[_0x6131cd];return _0x47e916;};'use strict';var emlformat=require(_0x5d3f('0x0'));var rimraf=require(_0x5d3f('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x5d3f('0x2'));var Mustache=require(_0x5d3f('0x3'));var util=require(_0x5d3f('0x4'));var path=require(_0x5d3f('0x5'));var sox=require('sox');var csv=require(_0x5d3f('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5d3f('0x7'));var _=require(_0x5d3f('0x8'));var squel=require(_0x5d3f('0x9'));var crypto=require(_0x5d3f('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x5d3f('0xb'));var toCsv=require(_0x5d3f('0x6'));var querystring=require(_0x5d3f('0xc'));var Papa=require(_0x5d3f('0xd'));var Redis=require(_0x5d3f('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x5d3f('0xf'));var as=require(_0x5d3f('0x10'));var hardwareService=require(_0x5d3f('0x11'));var logger=require(_0x5d3f('0x12'))(_0x5d3f('0x13'));var utils=require(_0x5d3f('0x14'));var config=require(_0x5d3f('0x15'));var licenseUtil=require(_0x5d3f('0x16'));var db=require('../../mysqldb')['db'];config[_0x5d3f('0x17')]=_[_0x5d3f('0x18')](config[_0x5d3f('0x17')],{'host':_0x5d3f('0x19'),'port':0x18eb});var socket=require(_0x5d3f('0x1a'))(new Redis(config['redis']));require(_0x5d3f('0x1b'))[_0x5d3f('0x1c')](socket);function respondWithStatusCode(_0x1e6cc9,_0x130ee7){_0x130ee7=_0x130ee7||0xcc;return function(_0x19c182){if(_0x19c182){return _0x1e6cc9['sendStatus'](_0x130ee7);}return _0x1e6cc9[_0x5d3f('0x1d')](_0x130ee7)[_0x5d3f('0x1e')]();};}function respondWithResult(_0x391a1e,_0x11621f){_0x11621f=_0x11621f||0xc8;return function(_0x10c58c){if(_0x10c58c){return _0x391a1e['status'](_0x11621f)[_0x5d3f('0x1f')](_0x10c58c);}};}function respondWithFilteredResult(_0x33fcc0,_0x5aac36){return function(_0x274e3f){if(_0x274e3f){var _0x2c4591=typeof _0x5aac36[_0x5d3f('0x20')]==='undefined'&&typeof _0x5aac36[_0x5d3f('0x21')]==='undefined';var _0x978cc5=_0x274e3f[_0x5d3f('0x22')];var _0x5b8d74=_0x2c4591?0x0:_0x5aac36[_0x5d3f('0x20')];var _0x20f9f0=_0x2c4591?_0x274e3f[_0x5d3f('0x22')]:_0x5aac36[_0x5d3f('0x20')]+_0x5aac36[_0x5d3f('0x21')];var _0x161b0a;if(_0x20f9f0>=_0x978cc5){_0x20f9f0=_0x978cc5;_0x161b0a=0xc8;}else{_0x161b0a=0xce;}_0x33fcc0[_0x5d3f('0x1d')](_0x161b0a);return _0x33fcc0['set'](_0x5d3f('0x23'),_0x5b8d74+'-'+_0x20f9f0+'/'+_0x978cc5)[_0x5d3f('0x1f')](_0x274e3f);}return null;};}function patchUpdates(_0x2ec34d){return function(_0x273f9d){try{jsonpatch[_0x5d3f('0x24')](_0x273f9d,_0x2ec34d,!![]);}catch(_0x24f693){return BPromise[_0x5d3f('0x25')](_0x24f693);}return _0x273f9d['save']();};}function saveUpdates(_0x204548,_0x26244f){return function(_0x713c4b){if(_0x713c4b){return _0x713c4b['update'](_0x204548)[_0x5d3f('0x26')](function(_0x14bad0){return _0x14bad0;});}return null;};}function removeEntity(_0x1e3cf5,_0x4b4359){return function(_0x31e05a){if(_0x31e05a){return _0x31e05a['destroy']()[_0x5d3f('0x26')](function(){_0x1e3cf5['status'](0xcc)[_0x5d3f('0x1e')]();});}};}function handleEntityNotFound(_0x567f29,_0x5ac8c4){return function(_0xb804b3){if(!_0xb804b3){_0x567f29[_0x5d3f('0x27')](0x194);}return _0xb804b3;};}function handleError(_0x203fee,_0x428bf2){_0x428bf2=_0x428bf2||0x1f4;return function(_0x5775eb){logger[_0x5d3f('0x28')](_0x5775eb['stack']);if(_0x5775eb['name']){delete _0x5775eb[_0x5d3f('0x29')];}_0x203fee[_0x5d3f('0x1d')](_0x428bf2)[_0x5d3f('0x2a')](_0x5775eb);};}exports[_0x5d3f('0x2b')]=function(_0x4973c8,_0x40e46d,_0x210c83){if(!_0x4973c8[_0x5d3f('0x2c')][_0x5d3f('0x2d')](_0x5d3f('0x2e'))&&!_0x4973c8[_0x5d3f('0x2c')][_0x5d3f('0x2d')](_0x5d3f('0x2f'))){throw new db[(_0x5d3f('0x30'))][(_0x5d3f('0x31'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x4973c8[_0x5d3f('0x2c')][_0x5d3f('0x2d')](_0x5d3f('0x2f'))&&!_0x4973c8['body'][_0x5d3f('0x2d')](_0x5d3f('0x32'))){throw new db[(_0x5d3f('0x30'))][(_0x5d3f('0x31'))](_0x5d3f('0x33'));}if(!_0x4973c8[_0x5d3f('0x2c')][_0x5d3f('0x2d')](_0x5d3f('0x34'))){throw new db['Sequelize'][(_0x5d3f('0x31'))](_0x5d3f('0x35'));}else{try{var _0x488a13=JSON[_0x5d3f('0x36')](_0x4973c8[_0x5d3f('0x2c')][_0x5d3f('0x34')]);}catch(_0x5c938e){logger[_0x5d3f('0x28')](_0x5c938e);throw new db[(_0x5d3f('0x30'))][(_0x5d3f('0x31'))](_0x5d3f('0x37'));}var _0x5aa700=['chatqueue','faxqueue',_0x5d3f('0x38'),_0x5d3f('0x39'),_0x5d3f('0x3a'),_0x5d3f('0x3b'),_0x5d3f('0x3c'),_0x5d3f('0x3d'),'user'];if(_[_0x5d3f('0x3e')](_0x488a13,function(_0x463809){return!_[_0x5d3f('0x3f')](_0x5aa700,_0x463809[_0x5d3f('0x40')][_0x5d3f('0x41')]());})){throw new db[(_0x5d3f('0x30'))][(_0x5d3f('0x31'))](_0x5d3f('0x42'));}}}var _0x36f8a1={};_0x36f8a1[_0x5d3f('0x43')]=_0x4973c8['body'][_0x5d3f('0x2d')]('senderName')?_0x4973c8['body'][_0x5d3f('0x43')]:_0x4973c8[_0x5d3f('0x44')][_0x5d3f('0x45')];_0x36f8a1['recipientsDescription']=_['isEmpty'](_0x4973c8[_0x5d3f('0x2c')][_0x5d3f('0x46')])?null:_0x4973c8['body'][_0x5d3f('0x46')];_0x36f8a1['beep']=_0x4973c8[_0x5d3f('0x2c')][_0x5d3f('0x47')]||![];_0x36f8a1[_0x5d3f('0x48')]=_0x4973c8[_0x5d3f('0x44')]['id'];return getContent(_0x4973c8[_0x5d3f('0x2c')])[_0x5d3f('0x26')](function(_0x12c6be){_0x36f8a1['body']=_0x12c6be;return getRecipients(_0x488a13);})[_0x5d3f('0x26')](function(_0x55e507){_0x36f8a1[_0x5d3f('0x49')]=_[_0x5d3f('0x4a')](_0x55e507)['join'](',');return db[_0x5d3f('0x4b')][_0x5d3f('0x4c')](function(_0x55f3f0){return db[_0x5d3f('0x4d')][_0x5d3f('0x4e')](_0x36f8a1,{'raw':!![],'transaction':_0x55f3f0})[_0x5d3f('0x26')](function(_0x3eec42){var _0x88c90c={'sender':_0x36f8a1['senderName'],'description':_0x36f8a1[_0x5d3f('0x46')],'content':_0x36f8a1[_0x5d3f('0x2c')],'beep':_0x36f8a1[_0x5d3f('0x47')]};_0x55e507[_0x5d3f('0x4f')](function(_0x42fd55){_0x88c90c[_0x5d3f('0x50')]=_0x42fd55;socket[_0x5d3f('0x51')](_0x5d3f('0x52'),_0x88c90c);});return _0x3eec42;});});})[_0x5d3f('0x26')](respondWithResult(_0x40e46d,0xc9))[_0x5d3f('0x53')](handleError(_0x40e46d,null));};function getContent(_0x1f7203){return new BPromise(function(_0x49abeb,_0x113482){if(_0x1f7203[_0x5d3f('0x2e')]){_0x49abeb(_0x1f7203[_0x5d3f('0x2e')]);return;}return db[_0x5d3f('0x54')]['findOne']({'attributes':[_0x5d3f('0x55')],'where':{'id':_0x1f7203[_0x5d3f('0x2f')]},'raw':!![]})[_0x5d3f('0x26')](function(_0x49e0d3){if(!_0x49e0d3)throw new db[(_0x5d3f('0x30'))]['ValidationError']('Invalid\x20\x27TemplateId\x27\x20parameter');var _0x2154bb=Mustache[_0x5d3f('0x56')](_0x49e0d3['html'],_0x1f7203[_0x5d3f('0x32')]);_0x49abeb(_0x2154bb);})[_0x5d3f('0x53')](function(_0xc4ee03){_0x113482(_0xc4ee03);});});}function getRecipients(_0x49f75b){return new BPromise(function(_0x144ffb,_0x402659){var _0x22f0b6=[];var _0x241fe5=[];_0x49f75b[_0x5d3f('0x4f')](function(_0x5617ff){var _0x591024=_[_0x5d3f('0x57')](_0x5617ff[_0x5d3f('0x40')][_0x5d3f('0x41')]());if(_0x591024==='User'){_0x22f0b6=_[_0x5d3f('0x58')](_0x22f0b6,_0x5617ff[_0x5d3f('0x59')]);}else{if(_[_0x5d3f('0x3f')](_0x591024,'queue'))_0x591024=_0x591024[_0x5d3f('0x5a')](_0x5d3f('0x5b'),_0x5d3f('0x5c'));_0x5617ff['ids'][_0x5d3f('0x4f')](function(_0x33e0a5){_0x241fe5['push'](getAgents(_0x591024,_0x33e0a5));});}});return BPromise[_0x5d3f('0x5d')](_0x241fe5)[_0x5d3f('0x26')](function(_0x2df324){_0x22f0b6=_[_0x5d3f('0x58')](_0x22f0b6,_[_0x5d3f('0x5e')](_0x2df324));_0x144ffb(_0x22f0b6);})[_0x5d3f('0x53')](function(_0x2691ef){_0x402659(_0x2691ef);});});}function getAgents(_0x42347a,_0x39c064){return new BPromise(function(_0x3f986b,_0x291a58){return db[_0x42347a]['findOne']({'where':{'id':_0x39c064}})[_0x5d3f('0x26')](function(_0x30e017){return _0x30e017[_0x5d3f('0x5f')]({'attributes':['id'],'raw':!![]})[_0x5d3f('0x26')](function(_0x3f8a5f){var _0x4684cb=_[_0x5d3f('0x60')](_0x3f8a5f,'id');_0x3f986b(_0x4684cb);});})[_0x5d3f('0x53')](function(_0x592062){_0x291a58(_0x592062);});});}