Built motion from commit (unavailable).|2.5.4
[motion2.git] / server / api / notification / notification.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 _0x389e=['recipientsId','sortBy','Notification','create','recipient','notification:send','Template','findOne','Invalid\x20\x27TemplateId\x27\x20parameter','render','html','catch','startCase','User','union','ids','replace','queue','Queue','forEach','push','all','flatten','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','crypto','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','defaults','localhost','socket.io-emitter','register','sendStatus','end','status','json','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','stack','name','send','sendNotification','body','hasOwnProperty','text','TemplateId','view','Sequelize','ValidationError','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','error','chatqueue','faxqueue','smsqueue','voicequeue','whatsappqueue','team','user','some','includes','model','toLowerCase','senderName','fullname','isEmpty','recipientsDescription','beep','SenderId'];(function(_0x2879df,_0x180e9f){var _0x46ec78=function(_0x30c809){while(--_0x30c809){_0x2879df['push'](_0x2879df['shift']());}};_0x46ec78(++_0x180e9f);}(_0x389e,0x137));var _0xe389=function(_0x425d5b,_0x546a25){_0x425d5b=_0x425d5b-0x0;var _0x517ec2=_0x389e[_0x425d5b];return _0x517ec2;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0xe389('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xe389('0x1'));var rp=require(_0xe389('0x2'));var moment=require(_0xe389('0x3'));var BPromise=require(_0xe389('0x4'));var Mustache=require(_0xe389('0x5'));var util=require(_0xe389('0x6'));var path=require(_0xe389('0x7'));var sox=require('sox');var csv=require(_0xe389('0x8'));var ejs=require(_0xe389('0x9'));var fs=require('fs');var _=require(_0xe389('0xa'));var squel=require('squel');var crypto=require(_0xe389('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xe389('0x8'));var querystring=require(_0xe389('0xc'));var Papa=require('papaparse');var Redis=require(_0xe389('0xd'));var authService=require(_0xe389('0xe'));var qs=require(_0xe389('0xf'));var as=require(_0xe389('0x10'));var hardwareService=require(_0xe389('0x11'));var logger=require(_0xe389('0x12'))(_0xe389('0x13'));var utils=require(_0xe389('0x14'));var config=require('../../config/environment');var db=require(_0xe389('0x15'))['db'];config['redis']=_[_0xe389('0x16')](config['redis'],{'host':_0xe389('0x17'),'port':0x18eb});var socket=require(_0xe389('0x18'))(new Redis(config['redis']));require('./notification.socket')[_0xe389('0x19')](socket);function respondWithStatusCode(_0x3f840,_0x26a1b4){_0x26a1b4=_0x26a1b4||0xcc;return function(_0x244d44){if(_0x244d44){return _0x3f840[_0xe389('0x1a')](_0x26a1b4);}return _0x3f840['status'](_0x26a1b4)[_0xe389('0x1b')]();};}function respondWithResult(_0x13b794,_0x3efdb7){_0x3efdb7=_0x3efdb7||0xc8;return function(_0x454335){if(_0x454335){return _0x13b794[_0xe389('0x1c')](_0x3efdb7)[_0xe389('0x1d')](_0x454335);}};}function respondWithFilteredResult(_0x89779a,_0x1aef9f){return function(_0xe8089f){if(_0xe8089f){var _0x1067d4=_0xe8089f[_0xe389('0x1e')],_0x44264a=_0x1aef9f[_0xe389('0x1f')],_0x3d2d12=_0x1aef9f['offset']+_0x1aef9f[_0xe389('0x20')],_0x48ce8d;if(_0x3d2d12>=_0x1067d4){_0x3d2d12=_0x1067d4;_0x48ce8d=0xc8;}else{_0x48ce8d=0xce;}_0x89779a[_0xe389('0x1c')](_0x48ce8d);return _0x89779a[_0xe389('0x21')](_0xe389('0x22'),_0x44264a+'-'+_0x3d2d12+'/'+_0x1067d4)[_0xe389('0x1d')](_0xe8089f);}return null;};}function patchUpdates(_0x3723e8){return function(_0x3b054f){try{jsonpatch[_0xe389('0x23')](_0x3b054f,_0x3723e8,!![]);}catch(_0x3f65cb){return BPromise['reject'](_0x3f65cb);}return _0x3b054f[_0xe389('0x24')]();};}function saveUpdates(_0x29a128,_0x3c4f76){return function(_0x4dde4d){if(_0x4dde4d){return _0x4dde4d[_0xe389('0x25')](_0x29a128)[_0xe389('0x26')](function(_0x2d3bbc){return _0x2d3bbc;});}return null;};}function removeEntity(_0x223e1f,_0x1d9f09){return function(_0x224dd1){if(_0x224dd1){return _0x224dd1[_0xe389('0x27')]()[_0xe389('0x26')](function(){_0x223e1f[_0xe389('0x1c')](0xcc)[_0xe389('0x1b')]();});}};}function handleEntityNotFound(_0x288534,_0x2dbc6a){return function(_0x3d9765){if(!_0x3d9765){_0x288534[_0xe389('0x1a')](0x194);}return _0x3d9765;};}function handleError(_0x2a7489,_0x28a54f){_0x28a54f=_0x28a54f||0x1f4;return function(_0x58c2d9){logger['error'](_0x58c2d9[_0xe389('0x28')]);if(_0x58c2d9[_0xe389('0x29')]){delete _0x58c2d9[_0xe389('0x29')];}_0x2a7489[_0xe389('0x1c')](_0x28a54f)[_0xe389('0x2a')](_0x58c2d9);};}exports[_0xe389('0x2b')]=function(_0x102806,_0x45d2c2,_0x755abe){if(!_0x102806[_0xe389('0x2c')][_0xe389('0x2d')](_0xe389('0x2e'))&&!_0x102806[_0xe389('0x2c')][_0xe389('0x2d')](_0xe389('0x2f'))){throw new db['Sequelize']['ValidationError']('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x102806[_0xe389('0x2c')]['hasOwnProperty']('TemplateId')&&!_0x102806[_0xe389('0x2c')][_0xe389('0x2d')](_0xe389('0x30'))){throw new db[(_0xe389('0x31'))][(_0xe389('0x32'))](_0xe389('0x33'));}if(!_0x102806['body'][_0xe389('0x2d')](_0xe389('0x34'))){throw new db[(_0xe389('0x31'))][(_0xe389('0x32'))](_0xe389('0x35'));}else{try{var _0xca2eaa=JSON[_0xe389('0x36')](_0x102806[_0xe389('0x2c')][_0xe389('0x34')]);}catch(_0x1b1506){logger[_0xe389('0x37')](_0x1b1506);throw new db['Sequelize'][(_0xe389('0x32'))]('Invalid\x20\x27recipients\x27\x20object');}var _0x5368cf=[_0xe389('0x38'),_0xe389('0x39'),'mailqueue','openchannelqueue',_0xe389('0x3a'),_0xe389('0x3b'),_0xe389('0x3c'),_0xe389('0x3d'),_0xe389('0x3e')];if(_[_0xe389('0x3f')](_0xca2eaa,function(_0x4adb5d){return!_[_0xe389('0x40')](_0x5368cf,_0x4adb5d[_0xe389('0x41')][_0xe389('0x42')]());})){throw new db[(_0xe389('0x31'))][(_0xe389('0x32'))]('Invalid\x20model\x20in\x20\x27recipients\x27\x20object');}}}var _0x4c695f={};_0x4c695f['senderName']=_0x102806[_0xe389('0x2c')][_0xe389('0x2d')](_0xe389('0x43'))?_0x102806[_0xe389('0x2c')][_0xe389('0x43')]:_0x102806['user'][_0xe389('0x44')];_0x4c695f['recipientsDescription']=_[_0xe389('0x45')](_0x102806[_0xe389('0x2c')][_0xe389('0x46')])?null:_0x102806[_0xe389('0x2c')][_0xe389('0x46')];_0x4c695f[_0xe389('0x47')]=_0x102806['body'][_0xe389('0x47')]||![];_0x4c695f[_0xe389('0x48')]=_0x102806[_0xe389('0x3e')]['id'];return getContent(_0x102806[_0xe389('0x2c')])[_0xe389('0x26')](function(_0x3f5bb0){_0x4c695f[_0xe389('0x2c')]=_0x3f5bb0;return getRecipients(_0xca2eaa);})[_0xe389('0x26')](function(_0x205df6){_0x4c695f[_0xe389('0x49')]=_[_0xe389('0x4a')](_0x205df6)['join'](',');return db['sequelize']['transaction'](function(_0xd7527){return db[_0xe389('0x4b')][_0xe389('0x4c')](_0x4c695f,{'raw':!![],'transaction':_0xd7527})[_0xe389('0x26')](function(_0x2e85ae){var _0x2fd301={'sender':_0x4c695f[_0xe389('0x43')],'description':_0x4c695f[_0xe389('0x46')],'content':_0x4c695f[_0xe389('0x2c')],'beep':_0x4c695f[_0xe389('0x47')]};_0x205df6['forEach'](function(_0x12b794){_0x2fd301[_0xe389('0x4d')]=_0x12b794;socket['emit'](_0xe389('0x4e'),_0x2fd301);});return _0x2e85ae;});});})[_0xe389('0x26')](respondWithResult(_0x45d2c2,0xc9))['catch'](handleError(_0x45d2c2,null));};function getContent(_0x156224){return new BPromise(function(_0x3a720c,_0x3803d8){if(_0x156224[_0xe389('0x2e')]){_0x3a720c(_0x156224['text']);return;}return db[_0xe389('0x4f')][_0xe389('0x50')]({'attributes':['html'],'where':{'id':_0x156224[_0xe389('0x2f')]},'raw':!![]})[_0xe389('0x26')](function(_0x2cdfca){if(!_0x2cdfca)throw new db[(_0xe389('0x31'))][(_0xe389('0x32'))](_0xe389('0x51'));var _0x1145c6=Mustache[_0xe389('0x52')](_0x2cdfca[_0xe389('0x53')],_0x156224[_0xe389('0x30')]);_0x3a720c(_0x1145c6);})[_0xe389('0x54')](function(_0x3fa51e){_0x3803d8(_0x3fa51e);});});}function getRecipients(_0x1812eb){return new BPromise(function(_0x14ffec,_0x1625b9){var _0x1c66e8=[];var _0x9389d4=[];_0x1812eb['forEach'](function(_0x27872a){var _0x309874=_[_0xe389('0x55')](_0x27872a[_0xe389('0x41')][_0xe389('0x42')]());if(_0x309874===_0xe389('0x56')){_0x1c66e8=_[_0xe389('0x57')](_0x1c66e8,_0x27872a[_0xe389('0x58')]);}else{if(_[_0xe389('0x40')](_0x309874,'queue'))_0x309874=_0x309874[_0xe389('0x59')](_0xe389('0x5a'),_0xe389('0x5b'));_0x27872a['ids'][_0xe389('0x5c')](function(_0x46ff6e){_0x9389d4[_0xe389('0x5d')](getAgents(_0x309874,_0x46ff6e));});}});return BPromise[_0xe389('0x5e')](_0x9389d4)[_0xe389('0x26')](function(_0x6bd54a){_0x1c66e8=_['union'](_0x1c66e8,_[_0xe389('0x5f')](_0x6bd54a));_0x14ffec(_0x1c66e8);})[_0xe389('0x54')](function(_0x36781b){_0x1625b9(_0x36781b);});});}function getAgents(_0x41ab5b,_0x5e9ff8){return new BPromise(function(_0x5729c7,_0x3303cd){return db[_0x41ab5b][_0xe389('0x50')]({'where':{'id':_0x5e9ff8}})['then'](function(_0x54ccd3){return _0x54ccd3['getAgents']({'attributes':['id'],'raw':!![]})['then'](function(_0x2f8c05){var _0x57942f=_['map'](_0x2f8c05,'id');_0x5729c7(_0x57942f);});})[_0xe389('0x54')](function(_0x3cfb20){_0x3303cd(_0x3cfb20);});});}