Built motion from commit 3c2ce842.|2.6.31
[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 _0x94e7=['redis','defaults','socket.io-emitter','./userNotification.socket','register','end','json','offset','undefined','limit','count','Content-Range','reject','update','destroy','then','status','sendStatus','error','stack','send','sendUserNotification','body','text','hasOwnProperty','Sequelize','ValidationError','TemplateId','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','chatqueue','faxqueue','mailqueue','openchannelqueue','smsqueue','voicequeue','team','user','some','includes','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','isEmpty','beep','SenderId','recipientsId','sortBy','join','sequelize','transaction','UserNotification','create','forEach','userNotification:send','catch','Template','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','view','startCase','User','union','replace','queue','Queue','ids','push','all','flatten','findOne','getAgents','eml-format','rimraf','request-promise','moment','bluebird','mustache','path','to-csv','ejs','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x94e7,0x1e1));var _0x794e=function(_0x28c83c,_0x5ce91a){_0x28c83c=_0x28c83c-0x0;var _0x551dda=_0x94e7[_0x28c83c];return _0x551dda;};'use strict';var emlformat=require(_0x794e('0x0'));var rimraf=require(_0x794e('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x794e('0x2'));var moment=require(_0x794e('0x3'));var BPromise=require(_0x794e('0x4'));var Mustache=require(_0x794e('0x5'));var util=require('util');var path=require(_0x794e('0x6'));var sox=require('sox');var csv=require(_0x794e('0x7'));var ejs=require(_0x794e('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x794e('0x9'));var squel=require(_0x794e('0xa'));var crypto=require(_0x794e('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x794e('0xc'));var toCsv=require(_0x794e('0x7'));var querystring=require('querystring');var Papa=require(_0x794e('0xd'));var Redis=require(_0x794e('0xe'));var authService=require(_0x794e('0xf'));var qs=require(_0x794e('0x10'));var as=require(_0x794e('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x794e('0x12'))(_0x794e('0x13'));var utils=require(_0x794e('0x14'));var config=require(_0x794e('0x15'));var licenseUtil=require(_0x794e('0x16'));var db=require(_0x794e('0x17'))['db'];config[_0x794e('0x18')]=_[_0x794e('0x19')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x794e('0x1a'))(new Redis(config[_0x794e('0x18')]));require(_0x794e('0x1b'))[_0x794e('0x1c')](socket);function respondWithStatusCode(_0x5847c7,_0x4aeca8){_0x4aeca8=_0x4aeca8||0xcc;return function(_0x459d5e){if(_0x459d5e){return _0x5847c7['sendStatus'](_0x4aeca8);}return _0x5847c7['status'](_0x4aeca8)[_0x794e('0x1d')]();};}function respondWithResult(_0x2b6502,_0x1ff382){_0x1ff382=_0x1ff382||0xc8;return function(_0xcd7788){if(_0xcd7788){return _0x2b6502['status'](_0x1ff382)[_0x794e('0x1e')](_0xcd7788);}};}function respondWithFilteredResult(_0x4aed12,_0x334d55){return function(_0xeafb04){if(_0xeafb04){var _0x3ca064=typeof _0x334d55[_0x794e('0x1f')]===_0x794e('0x20')&&typeof _0x334d55[_0x794e('0x21')]===_0x794e('0x20');var _0x596f22=_0xeafb04[_0x794e('0x22')];var _0x3e8890=_0x3ca064?0x0:_0x334d55[_0x794e('0x1f')];var _0x21c793=_0x3ca064?_0xeafb04[_0x794e('0x22')]:_0x334d55[_0x794e('0x1f')]+_0x334d55['limit'];var _0x5720b9;if(_0x21c793>=_0x596f22){_0x21c793=_0x596f22;_0x5720b9=0xc8;}else{_0x5720b9=0xce;}_0x4aed12['status'](_0x5720b9);return _0x4aed12['set'](_0x794e('0x23'),_0x3e8890+'-'+_0x21c793+'/'+_0x596f22)[_0x794e('0x1e')](_0xeafb04);}return null;};}function patchUpdates(_0x59b916){return function(_0x3e0685){try{jsonpatch['apply'](_0x3e0685,_0x59b916,!![]);}catch(_0x50ad03){return BPromise[_0x794e('0x24')](_0x50ad03);}return _0x3e0685['save']();};}function saveUpdates(_0x4043e3,_0x50da7b){return function(_0x26f755){if(_0x26f755){return _0x26f755[_0x794e('0x25')](_0x4043e3)['then'](function(_0x24e548){return _0x24e548;});}return null;};}function removeEntity(_0x9c6d52,_0x6d829b){return function(_0xe6838b){if(_0xe6838b){return _0xe6838b[_0x794e('0x26')]()[_0x794e('0x27')](function(){_0x9c6d52[_0x794e('0x28')](0xcc)[_0x794e('0x1d')]();});}};}function handleEntityNotFound(_0x1dc2e8,_0x45320f){return function(_0x589a24){if(!_0x589a24){_0x1dc2e8[_0x794e('0x29')](0x194);}return _0x589a24;};}function handleError(_0x283341,_0x1c14b9){_0x1c14b9=_0x1c14b9||0x1f4;return function(_0x264510){logger[_0x794e('0x2a')](_0x264510[_0x794e('0x2b')]);if(_0x264510['name']){delete _0x264510['name'];}_0x283341['status'](_0x1c14b9)[_0x794e('0x2c')](_0x264510);};}exports[_0x794e('0x2d')]=function(_0x4dcfb9,_0x7fd7d1,_0x1c9838){if(!_0x4dcfb9[_0x794e('0x2e')]['hasOwnProperty'](_0x794e('0x2f'))&&!_0x4dcfb9[_0x794e('0x2e')][_0x794e('0x30')]('TemplateId')){throw new db[(_0x794e('0x31'))][(_0x794e('0x32'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x4dcfb9[_0x794e('0x2e')][_0x794e('0x30')](_0x794e('0x33'))&&!_0x4dcfb9[_0x794e('0x2e')][_0x794e('0x30')]('view')){throw new db[(_0x794e('0x31'))][(_0x794e('0x32'))](_0x794e('0x34'));}if(!_0x4dcfb9[_0x794e('0x2e')][_0x794e('0x30')](_0x794e('0x35'))){throw new db[(_0x794e('0x31'))][(_0x794e('0x32'))](_0x794e('0x36'));}else{try{var _0x3801ca=JSON[_0x794e('0x37')](_0x4dcfb9[_0x794e('0x2e')][_0x794e('0x35')]);}catch(_0xf44c94){logger[_0x794e('0x2a')](_0xf44c94);throw new db[(_0x794e('0x31'))][(_0x794e('0x32'))]('Invalid\x20\x27recipients\x27\x20object');}var _0x57185c=[_0x794e('0x38'),_0x794e('0x39'),_0x794e('0x3a'),_0x794e('0x3b'),_0x794e('0x3c'),_0x794e('0x3d'),'whatsappqueue',_0x794e('0x3e'),_0x794e('0x3f')];if(_[_0x794e('0x40')](_0x3801ca,function(_0x4d240d){return!_[_0x794e('0x41')](_0x57185c,_0x4d240d['model'][_0x794e('0x42')]());})){throw new db['Sequelize'][(_0x794e('0x32'))](_0x794e('0x43'));}}}var _0x57d965={};_0x57d965[_0x794e('0x44')]=_0x4dcfb9['body'][_0x794e('0x30')](_0x794e('0x44'))?_0x4dcfb9[_0x794e('0x2e')][_0x794e('0x44')]:_0x4dcfb9[_0x794e('0x3f')][_0x794e('0x45')];_0x57d965[_0x794e('0x46')]=_[_0x794e('0x47')](_0x4dcfb9[_0x794e('0x2e')]['recipientsDescription'])?null:_0x4dcfb9[_0x794e('0x2e')][_0x794e('0x46')];_0x57d965[_0x794e('0x48')]=_0x4dcfb9[_0x794e('0x2e')][_0x794e('0x48')]||![];_0x57d965[_0x794e('0x49')]=_0x4dcfb9[_0x794e('0x3f')]['id'];return getContent(_0x4dcfb9['body'])[_0x794e('0x27')](function(_0x5cc8e5){_0x57d965[_0x794e('0x2e')]=_0x5cc8e5;return getRecipients(_0x3801ca);})[_0x794e('0x27')](function(_0x5e02d7){_0x57d965[_0x794e('0x4a')]=_[_0x794e('0x4b')](_0x5e02d7)[_0x794e('0x4c')](',');return db[_0x794e('0x4d')][_0x794e('0x4e')](function(_0x482bb4){return db[_0x794e('0x4f')][_0x794e('0x50')](_0x57d965,{'raw':!![],'transaction':_0x482bb4})[_0x794e('0x27')](function(_0x22f2f0){var _0x5366bd={'sender':_0x57d965[_0x794e('0x44')],'description':_0x57d965[_0x794e('0x46')],'content':_0x57d965[_0x794e('0x2e')],'beep':_0x57d965['beep']};_0x5e02d7[_0x794e('0x51')](function(_0x248d02){_0x5366bd['recipient']=_0x248d02;socket['emit'](_0x794e('0x52'),_0x5366bd);});return _0x22f2f0;});});})[_0x794e('0x27')](respondWithResult(_0x7fd7d1,0xc9))[_0x794e('0x53')](handleError(_0x7fd7d1,null));};function getContent(_0x56d8cb){return new BPromise(function(_0x56ea8a,_0x4c846c){if(_0x56d8cb[_0x794e('0x2f')]){_0x56ea8a(_0x56d8cb['text']);return;}return db[_0x794e('0x54')]['findOne']({'attributes':[_0x794e('0x55')],'where':{'id':_0x56d8cb[_0x794e('0x33')]},'raw':!![]})[_0x794e('0x27')](function(_0x69b059){if(!_0x69b059)throw new db['Sequelize'][(_0x794e('0x32'))](_0x794e('0x56'));var _0x155296=Mustache[_0x794e('0x57')](_0x69b059[_0x794e('0x55')],_0x56d8cb[_0x794e('0x58')]);_0x56ea8a(_0x155296);})[_0x794e('0x53')](function(_0x100d4c){_0x4c846c(_0x100d4c);});});}function getRecipients(_0x3710ca){return new BPromise(function(_0x57e4bf,_0x2166db){var _0x2431f2=[];var _0x35ca6f=[];_0x3710ca[_0x794e('0x51')](function(_0xc6b62c){var _0x21e28f=_[_0x794e('0x59')](_0xc6b62c['model'][_0x794e('0x42')]());if(_0x21e28f===_0x794e('0x5a')){_0x2431f2=_[_0x794e('0x5b')](_0x2431f2,_0xc6b62c['ids']);}else{if(_['includes'](_0x21e28f,'queue'))_0x21e28f=_0x21e28f[_0x794e('0x5c')](_0x794e('0x5d'),_0x794e('0x5e'));_0xc6b62c[_0x794e('0x5f')][_0x794e('0x51')](function(_0x2414cb){_0x35ca6f[_0x794e('0x60')](getAgents(_0x21e28f,_0x2414cb));});}});return BPromise[_0x794e('0x61')](_0x35ca6f)[_0x794e('0x27')](function(_0x4e9c20){_0x2431f2=_[_0x794e('0x5b')](_0x2431f2,_[_0x794e('0x62')](_0x4e9c20));_0x57e4bf(_0x2431f2);})[_0x794e('0x53')](function(_0x3c0326){_0x2166db(_0x3c0326);});});}function getAgents(_0x5b30f1,_0x44dd2b){return new BPromise(function(_0x3d8cbe,_0x56d0e6){return db[_0x5b30f1][_0x794e('0x63')]({'where':{'id':_0x44dd2b}})[_0x794e('0x27')](function(_0x8aab99){return _0x8aab99[_0x794e('0x64')]({'attributes':['id'],'raw':!![]})[_0x794e('0x27')](function(_0x108c4a){var _0xfe5772=_['map'](_0x108c4a,'id');_0x3d8cbe(_0xfe5772);});})[_0x794e('0x53')](function(_0x49ed27){_0x56d0e6(_0x49ed27);});});}