Built motion from commit (unavailable).|2.5.13
[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 _0xd5ab=['recipientsDescription','isEmpty','beep','SenderId','sortBy','join','sequelize','transaction','Notification','create','forEach','recipient','emit','notification:send','catch','Template','findOne','html','render','startCase','User','replace','queue','Queue','ids','push','all','union','flatten','getAgents','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','defaults','redis','localhost','socket.io-emitter','./notification.socket','register','sendStatus','status','json','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','end','error','stack','name','send','sendNotification','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','parse','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','smsqueue','voicequeue','whatsappqueue','team','user','some','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname'];(function(_0x4ec693,_0x12c3a9){var _0x113384=function(_0xe4818d){while(--_0xe4818d){_0x4ec693['push'](_0x4ec693['shift']());}};_0x113384(++_0x12c3a9);}(_0xd5ab,0x89));var _0xbd5a=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0xd5ab[_0x2dafbe];return _0x58a45a;};'use strict';var pdf=require(_0xbd5a('0x0'));var emlformat=require(_0xbd5a('0x1'));var rimraf=require(_0xbd5a('0x2'));var zipdir=require(_0xbd5a('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0xbd5a('0x4'));var moment=require(_0xbd5a('0x5'));var BPromise=require(_0xbd5a('0x6'));var Mustache=require(_0xbd5a('0x7'));var util=require('util');var path=require(_0xbd5a('0x8'));var sox=require(_0xbd5a('0x9'));var csv=require(_0xbd5a('0xa'));var ejs=require(_0xbd5a('0xb'));var fs=require('fs');var _=require(_0xbd5a('0xc'));var squel=require(_0xbd5a('0xd'));var crypto=require('crypto');var jsforce=require(_0xbd5a('0xe'));var deskjs=require(_0xbd5a('0xf'));var toCsv=require(_0xbd5a('0xa'));var querystring=require(_0xbd5a('0x10'));var Papa=require(_0xbd5a('0x11'));var Redis=require(_0xbd5a('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xbd5a('0x13'));var hardwareService=require(_0xbd5a('0x14'));var logger=require(_0xbd5a('0x15'))(_0xbd5a('0x16'));var utils=require(_0xbd5a('0x17'));var config=require(_0xbd5a('0x18'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config['redis']=_[_0xbd5a('0x19')](config[_0xbd5a('0x1a')],{'host':_0xbd5a('0x1b'),'port':0x18eb});var socket=require(_0xbd5a('0x1c'))(new Redis(config['redis']));require(_0xbd5a('0x1d'))[_0xbd5a('0x1e')](socket);function respondWithStatusCode(_0x4814f0,_0x56b2f9){_0x56b2f9=_0x56b2f9||0xcc;return function(_0x163042){if(_0x163042){return _0x4814f0[_0xbd5a('0x1f')](_0x56b2f9);}return _0x4814f0['status'](_0x56b2f9)['end']();};}function respondWithResult(_0x141884,_0x5c9630){_0x5c9630=_0x5c9630||0xc8;return function(_0xd3e036){if(_0xd3e036){return _0x141884[_0xbd5a('0x20')](_0x5c9630)[_0xbd5a('0x21')](_0xd3e036);}};}function respondWithFilteredResult(_0x3d03ac,_0x45dbd1){return function(_0x502353){if(_0x502353){var _0x3c9c01=_0x502353[_0xbd5a('0x22')],_0x43e341=_0x45dbd1[_0xbd5a('0x23')],_0x31bbd8=_0x45dbd1[_0xbd5a('0x23')]+_0x45dbd1['limit'],_0x3fafd6;if(_0x31bbd8>=_0x3c9c01){_0x31bbd8=_0x3c9c01;_0x3fafd6=0xc8;}else{_0x3fafd6=0xce;}_0x3d03ac['status'](_0x3fafd6);return _0x3d03ac[_0xbd5a('0x24')](_0xbd5a('0x25'),_0x43e341+'-'+_0x31bbd8+'/'+_0x3c9c01)[_0xbd5a('0x21')](_0x502353);}return null;};}function patchUpdates(_0x1f8d50){return function(_0x59a04f){try{jsonpatch[_0xbd5a('0x26')](_0x59a04f,_0x1f8d50,!![]);}catch(_0x39b016){return BPromise[_0xbd5a('0x27')](_0x39b016);}return _0x59a04f[_0xbd5a('0x28')]();};}function saveUpdates(_0x1c065b,_0x38bf39){return function(_0x5c4180){if(_0x5c4180){return _0x5c4180[_0xbd5a('0x29')](_0x1c065b)[_0xbd5a('0x2a')](function(_0x322a7b){return _0x322a7b;});}return null;};}function removeEntity(_0x2c25e8,_0xa8d12){return function(_0x17bfd9){if(_0x17bfd9){return _0x17bfd9[_0xbd5a('0x2b')]()['then'](function(){_0x2c25e8['status'](0xcc)[_0xbd5a('0x2c')]();});}};}function handleEntityNotFound(_0x3a0aaf,_0xea50dc){return function(_0x536ea0){if(!_0x536ea0){_0x3a0aaf[_0xbd5a('0x1f')](0x194);}return _0x536ea0;};}function handleError(_0xf9806,_0x4a42c8){_0x4a42c8=_0x4a42c8||0x1f4;return function(_0x4ba5e7){logger[_0xbd5a('0x2d')](_0x4ba5e7[_0xbd5a('0x2e')]);if(_0x4ba5e7[_0xbd5a('0x2f')]){delete _0x4ba5e7['name'];}_0xf9806['status'](_0x4a42c8)[_0xbd5a('0x30')](_0x4ba5e7);};}exports[_0xbd5a('0x31')]=function(_0x4fe951,_0x3b110e,_0x40cc78){if(!_0x4fe951[_0xbd5a('0x32')][_0xbd5a('0x33')](_0xbd5a('0x34'))&&!_0x4fe951['body'][_0xbd5a('0x33')](_0xbd5a('0x35'))){throw new db[(_0xbd5a('0x36'))]['ValidationError'](_0xbd5a('0x37'));}else{if(_0x4fe951[_0xbd5a('0x32')]['hasOwnProperty']('TemplateId')&&!_0x4fe951['body'][_0xbd5a('0x33')](_0xbd5a('0x38'))){throw new db[(_0xbd5a('0x36'))][(_0xbd5a('0x39'))](_0xbd5a('0x3a'));}if(!_0x4fe951[_0xbd5a('0x32')]['hasOwnProperty'](_0xbd5a('0x3b'))){throw new db[(_0xbd5a('0x36'))][(_0xbd5a('0x39'))]('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x10d76b=JSON[_0xbd5a('0x3c')](_0x4fe951[_0xbd5a('0x32')][_0xbd5a('0x3b')]);}catch(_0x203760){logger[_0xbd5a('0x2d')](_0x203760);throw new db['Sequelize'][(_0xbd5a('0x39'))](_0xbd5a('0x3d'));}var _0x5dab2a=[_0xbd5a('0x3e'),_0xbd5a('0x3f'),_0xbd5a('0x40'),'openchannelqueue',_0xbd5a('0x41'),_0xbd5a('0x42'),_0xbd5a('0x43'),_0xbd5a('0x44'),_0xbd5a('0x45')];if(_[_0xbd5a('0x46')](_0x10d76b,function(_0x1d8080){return!_[_0xbd5a('0x47')](_0x5dab2a,_0x1d8080[_0xbd5a('0x48')][_0xbd5a('0x49')]());})){throw new db['Sequelize'][(_0xbd5a('0x39'))](_0xbd5a('0x4a'));}}}var _0x4e8312={};_0x4e8312[_0xbd5a('0x4b')]=_0x4fe951[_0xbd5a('0x32')][_0xbd5a('0x33')](_0xbd5a('0x4b'))?_0x4fe951[_0xbd5a('0x32')][_0xbd5a('0x4b')]:_0x4fe951['user'][_0xbd5a('0x4c')];_0x4e8312[_0xbd5a('0x4d')]=_[_0xbd5a('0x4e')](_0x4fe951['body'][_0xbd5a('0x4d')])?null:_0x4fe951[_0xbd5a('0x32')][_0xbd5a('0x4d')];_0x4e8312['beep']=_0x4fe951[_0xbd5a('0x32')][_0xbd5a('0x4f')]||![];_0x4e8312[_0xbd5a('0x50')]=_0x4fe951[_0xbd5a('0x45')]['id'];return getContent(_0x4fe951[_0xbd5a('0x32')])[_0xbd5a('0x2a')](function(_0x4eb334){_0x4e8312[_0xbd5a('0x32')]=_0x4eb334;return getRecipients(_0x10d76b);})[_0xbd5a('0x2a')](function(_0x26b33f){_0x4e8312['recipientsId']=_[_0xbd5a('0x51')](_0x26b33f)[_0xbd5a('0x52')](',');return db[_0xbd5a('0x53')][_0xbd5a('0x54')](function(_0x5bbc3c){return db[_0xbd5a('0x55')][_0xbd5a('0x56')](_0x4e8312,{'raw':!![],'transaction':_0x5bbc3c})['then'](function(_0xbef1cc){var _0x5300df={'sender':_0x4e8312[_0xbd5a('0x4b')],'description':_0x4e8312[_0xbd5a('0x4d')],'content':_0x4e8312['body'],'beep':_0x4e8312['beep']};_0x26b33f[_0xbd5a('0x57')](function(_0x4ea3c8){_0x5300df[_0xbd5a('0x58')]=_0x4ea3c8;socket[_0xbd5a('0x59')](_0xbd5a('0x5a'),_0x5300df);});return _0xbef1cc;});});})[_0xbd5a('0x2a')](respondWithResult(_0x3b110e,0xc9))[_0xbd5a('0x5b')](handleError(_0x3b110e,null));};function getContent(_0x5cd326){return new BPromise(function(_0x5ef39f,_0x240635){if(_0x5cd326[_0xbd5a('0x34')]){_0x5ef39f(_0x5cd326['text']);return;}return db[_0xbd5a('0x5c')][_0xbd5a('0x5d')]({'attributes':[_0xbd5a('0x5e')],'where':{'id':_0x5cd326['TemplateId']},'raw':!![]})[_0xbd5a('0x2a')](function(_0x1a474c){if(!_0x1a474c)throw new db[(_0xbd5a('0x36'))][(_0xbd5a('0x39'))]('Invalid\x20\x27TemplateId\x27\x20parameter');var _0xf7f788=Mustache[_0xbd5a('0x5f')](_0x1a474c[_0xbd5a('0x5e')],_0x5cd326[_0xbd5a('0x38')]);_0x5ef39f(_0xf7f788);})[_0xbd5a('0x5b')](function(_0x30c481){_0x240635(_0x30c481);});});}function getRecipients(_0x2acd72){return new BPromise(function(_0x569a97,_0x939c3){var _0x4af600=[];var _0x563d84=[];_0x2acd72[_0xbd5a('0x57')](function(_0x4fe0fa){var _0x1d8389=_[_0xbd5a('0x60')](_0x4fe0fa[_0xbd5a('0x48')][_0xbd5a('0x49')]());if(_0x1d8389===_0xbd5a('0x61')){_0x4af600=_['union'](_0x4af600,_0x4fe0fa['ids']);}else{if(_['includes'](_0x1d8389,'queue'))_0x1d8389=_0x1d8389[_0xbd5a('0x62')](_0xbd5a('0x63'),_0xbd5a('0x64'));_0x4fe0fa[_0xbd5a('0x65')][_0xbd5a('0x57')](function(_0x584f90){_0x563d84[_0xbd5a('0x66')](getAgents(_0x1d8389,_0x584f90));});}});return BPromise[_0xbd5a('0x67')](_0x563d84)[_0xbd5a('0x2a')](function(_0x2f44c7){_0x4af600=_[_0xbd5a('0x68')](_0x4af600,_[_0xbd5a('0x69')](_0x2f44c7));_0x569a97(_0x4af600);})[_0xbd5a('0x5b')](function(_0x27168e){_0x939c3(_0x27168e);});});}function getAgents(_0x37cd4b,_0x38a6f1){return new BPromise(function(_0x5c3840,_0x8daebf){return db[_0x37cd4b]['findOne']({'where':{'id':_0x38a6f1}})[_0xbd5a('0x2a')](function(_0x106f04){return _0x106f04[_0xbd5a('0x6a')]({'attributes':['id'],'raw':!![]})[_0xbd5a('0x2a')](function(_0x5a5ad2){var _0x37d66a=_['map'](_0x5a5ad2,'id');_0x5c3840(_0x37d66a);});})[_0xbd5a('0x5b')](function(_0x5b35ed){_0x8daebf(_0x5b35ed);});});}