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 _0xe7d8=['Queue','push','all','getAgents','map','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','ejs','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./notification.socket','register','status','json','count','offset','limit','Content-Range','apply','save','update','then','sendStatus','name','sendNotification','body','hasOwnProperty','text','TemplateId','Sequelize','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','Missing\x20\x27view\x27\x20parameter','recipients','parse','error','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','smsqueue','team','user','some','includes','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','recipientsDescription','isEmpty','beep','SenderId','recipientsId','sortBy','sequelize','transaction','create','forEach','emit','notification:send','catch','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','startCase','model','User','union','ids','queue','replace'];(function(_0x1a69fb,_0x4f458a){var _0x217808=function(_0x1040f6){while(--_0x1040f6){_0x1a69fb['push'](_0x1a69fb['shift']());}};_0x217808(++_0x4f458a);}(_0xe7d8,0x18d));var _0x8e7d=function(_0x566168,_0x4c39af){_0x566168=_0x566168-0x0;var _0x4e1f7a=_0xe7d8[_0x566168];return _0x4e1f7a;};'use strict';var pdf=require(_0x8e7d('0x0'));var emlformat=require(_0x8e7d('0x1'));var rimraf=require(_0x8e7d('0x2'));var zipdir=require(_0x8e7d('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8e7d('0x4'));var moment=require(_0x8e7d('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x8e7d('0x6'));var util=require(_0x8e7d('0x7'));var path=require(_0x8e7d('0x8'));var sox=require(_0x8e7d('0x9'));var csv=require('to-csv');var ejs=require(_0x8e7d('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x8e7d('0xb'));var crypto=require(_0x8e7d('0xc'));var jsforce=require(_0x8e7d('0xd'));var deskjs=require(_0x8e7d('0xe'));var toCsv=require(_0x8e7d('0xf'));var querystring=require(_0x8e7d('0x10'));var Papa=require(_0x8e7d('0x11'));var Redis=require(_0x8e7d('0x12'));var authService=require(_0x8e7d('0x13'));var qs=require(_0x8e7d('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8e7d('0x15'));var logger=require(_0x8e7d('0x16'))(_0x8e7d('0x17'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0x8e7d('0x18'))['db'];config[_0x8e7d('0x19')]=_[_0x8e7d('0x1a')](config[_0x8e7d('0x19')],{'host':_0x8e7d('0x1b'),'port':0x18eb});var socket=require(_0x8e7d('0x1c'))(new Redis(config[_0x8e7d('0x19')]));require(_0x8e7d('0x1d'))[_0x8e7d('0x1e')](socket);function respondWithStatusCode(_0x44aefb,_0x189e08){_0x189e08=_0x189e08||0xcc;return function(_0x933160){if(_0x933160){return _0x44aefb['sendStatus'](_0x189e08);}return _0x44aefb[_0x8e7d('0x1f')](_0x189e08)['end']();};}function respondWithResult(_0x7c5040,_0x4af55f){_0x4af55f=_0x4af55f||0xc8;return function(_0xf87734){if(_0xf87734){return _0x7c5040[_0x8e7d('0x1f')](_0x4af55f)[_0x8e7d('0x20')](_0xf87734);}};}function respondWithFilteredResult(_0x5a1ee8,_0x5a589f){return function(_0x59c082){if(_0x59c082){var _0x472915=_0x59c082[_0x8e7d('0x21')],_0x44008c=_0x5a589f[_0x8e7d('0x22')],_0x529133=_0x5a589f[_0x8e7d('0x22')]+_0x5a589f[_0x8e7d('0x23')],_0x11ae0f;if(_0x529133>=_0x472915){_0x529133=_0x472915;_0x11ae0f=0xc8;}else{_0x11ae0f=0xce;}_0x5a1ee8['status'](_0x11ae0f);return _0x5a1ee8['set'](_0x8e7d('0x24'),_0x44008c+'-'+_0x529133+'/'+_0x472915)[_0x8e7d('0x20')](_0x59c082);}return null;};}function patchUpdates(_0x26187e){return function(_0x15e7da){try{jsonpatch[_0x8e7d('0x25')](_0x15e7da,_0x26187e,!![]);}catch(_0x44708c){return BPromise['reject'](_0x44708c);}return _0x15e7da[_0x8e7d('0x26')]();};}function saveUpdates(_0x2de1cf,_0x599e20){return function(_0x14e129){if(_0x14e129){return _0x14e129[_0x8e7d('0x27')](_0x2de1cf)[_0x8e7d('0x28')](function(_0x5183b8){return _0x5183b8;});}return null;};}function removeEntity(_0x80e8f3,_0x3c93a2){return function(_0x5cee9e){if(_0x5cee9e){return _0x5cee9e['destroy']()['then'](function(){_0x80e8f3[_0x8e7d('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x27d907,_0x2dcc5f){return function(_0x3d2736){if(!_0x3d2736){_0x27d907[_0x8e7d('0x29')](0x194);}return _0x3d2736;};}function handleError(_0x53d2b8,_0x31c388){_0x31c388=_0x31c388||0x1f4;return function(_0x524673){logger['error'](_0x524673['stack']);if(_0x524673[_0x8e7d('0x2a')]){delete _0x524673[_0x8e7d('0x2a')];}_0x53d2b8[_0x8e7d('0x1f')](_0x31c388)['send'](_0x524673);};}exports[_0x8e7d('0x2b')]=function(_0x5b2888,_0x1755e3,_0x3374ed){if(!_0x5b2888[_0x8e7d('0x2c')][_0x8e7d('0x2d')](_0x8e7d('0x2e'))&&!_0x5b2888[_0x8e7d('0x2c')][_0x8e7d('0x2d')](_0x8e7d('0x2f'))){throw new db[(_0x8e7d('0x30'))][(_0x8e7d('0x31'))](_0x8e7d('0x32'));}else{if(_0x5b2888['body']['hasOwnProperty'](_0x8e7d('0x2f'))&&!_0x5b2888[_0x8e7d('0x2c')][_0x8e7d('0x2d')](_0x8e7d('0x33'))){throw new db['Sequelize'][(_0x8e7d('0x31'))](_0x8e7d('0x34'));}if(!_0x5b2888[_0x8e7d('0x2c')][_0x8e7d('0x2d')](_0x8e7d('0x35'))){throw new db['Sequelize'][(_0x8e7d('0x31'))]('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x304b4b=JSON[_0x8e7d('0x36')](_0x5b2888[_0x8e7d('0x2c')][_0x8e7d('0x35')]);}catch(_0x503d3){logger[_0x8e7d('0x37')](_0x503d3);throw new db[(_0x8e7d('0x30'))][(_0x8e7d('0x31'))](_0x8e7d('0x38'));}var _0x18de68=[_0x8e7d('0x39'),_0x8e7d('0x3a'),_0x8e7d('0x3b'),'openchannelqueue',_0x8e7d('0x3c'),'voicequeue','whatsappqueue',_0x8e7d('0x3d'),_0x8e7d('0x3e')];if(_[_0x8e7d('0x3f')](_0x304b4b,function(_0x1ac792){return!_[_0x8e7d('0x40')](_0x18de68,_0x1ac792['model'][_0x8e7d('0x41')]());})){throw new db[(_0x8e7d('0x30'))][(_0x8e7d('0x31'))](_0x8e7d('0x42'));}}}var _0x5c4918={};_0x5c4918[_0x8e7d('0x43')]=_0x5b2888[_0x8e7d('0x2c')][_0x8e7d('0x2d')](_0x8e7d('0x43'))?_0x5b2888[_0x8e7d('0x2c')][_0x8e7d('0x43')]:_0x5b2888['user']['fullname'];_0x5c4918[_0x8e7d('0x44')]=_[_0x8e7d('0x45')](_0x5b2888[_0x8e7d('0x2c')]['recipientsDescription'])?null:_0x5b2888[_0x8e7d('0x2c')][_0x8e7d('0x44')];_0x5c4918[_0x8e7d('0x46')]=_0x5b2888[_0x8e7d('0x2c')][_0x8e7d('0x46')]||![];_0x5c4918[_0x8e7d('0x47')]=_0x5b2888[_0x8e7d('0x3e')]['id'];return getContent(_0x5b2888['body'])[_0x8e7d('0x28')](function(_0x22f372){_0x5c4918['body']=_0x22f372;return getRecipients(_0x304b4b);})[_0x8e7d('0x28')](function(_0x278a12){_0x5c4918[_0x8e7d('0x48')]=_[_0x8e7d('0x49')](_0x278a12)['join'](',');return db[_0x8e7d('0x4a')][_0x8e7d('0x4b')](function(_0x801dc){return db['Notification'][_0x8e7d('0x4c')](_0x5c4918,{'raw':!![],'transaction':_0x801dc})[_0x8e7d('0x28')](function(_0x4a025c){var _0x47b203={'sender':_0x5c4918[_0x8e7d('0x43')],'description':_0x5c4918[_0x8e7d('0x44')],'content':_0x5c4918[_0x8e7d('0x2c')],'beep':_0x5c4918['beep']};_0x278a12[_0x8e7d('0x4d')](function(_0xe5862b){_0x47b203['recipient']=_0xe5862b;socket[_0x8e7d('0x4e')](_0x8e7d('0x4f'),_0x47b203);});return _0x4a025c;});});})['then'](respondWithResult(_0x1755e3,0xc9))[_0x8e7d('0x50')](handleError(_0x1755e3,null));};function getContent(_0x17deb5){return new BPromise(function(_0x3e0bd9,_0x2d6d34){if(_0x17deb5['text']){_0x3e0bd9(_0x17deb5[_0x8e7d('0x2e')]);return;}return db[_0x8e7d('0x51')][_0x8e7d('0x52')]({'attributes':[_0x8e7d('0x53')],'where':{'id':_0x17deb5[_0x8e7d('0x2f')]},'raw':!![]})['then'](function(_0xbf2a){if(!_0xbf2a)throw new db[(_0x8e7d('0x30'))]['ValidationError'](_0x8e7d('0x54'));var _0x390f78=Mustache[_0x8e7d('0x55')](_0xbf2a[_0x8e7d('0x53')],_0x17deb5[_0x8e7d('0x33')]);_0x3e0bd9(_0x390f78);})['catch'](function(_0x3b8ddd){_0x2d6d34(_0x3b8ddd);});});}function getRecipients(_0x44be44){return new BPromise(function(_0x2077a2,_0x3f8b0b){var _0x15e4ae=[];var _0x529972=[];_0x44be44[_0x8e7d('0x4d')](function(_0x383e88){var _0x2c32b7=_[_0x8e7d('0x56')](_0x383e88[_0x8e7d('0x57')]['toLowerCase']());if(_0x2c32b7===_0x8e7d('0x58')){_0x15e4ae=_[_0x8e7d('0x59')](_0x15e4ae,_0x383e88[_0x8e7d('0x5a')]);}else{if(_[_0x8e7d('0x40')](_0x2c32b7,_0x8e7d('0x5b')))_0x2c32b7=_0x2c32b7[_0x8e7d('0x5c')](_0x8e7d('0x5b'),_0x8e7d('0x5d'));_0x383e88[_0x8e7d('0x5a')][_0x8e7d('0x4d')](function(_0x101f0e){_0x529972[_0x8e7d('0x5e')](getAgents(_0x2c32b7,_0x101f0e));});}});return BPromise[_0x8e7d('0x5f')](_0x529972)[_0x8e7d('0x28')](function(_0x63c87d){_0x15e4ae=_[_0x8e7d('0x59')](_0x15e4ae,_['flatten'](_0x63c87d));_0x2077a2(_0x15e4ae);})[_0x8e7d('0x50')](function(_0x15d8e3){_0x3f8b0b(_0x15d8e3);});});}function getAgents(_0x5759b6,_0x55a244){return new BPromise(function(_0x50e0f1,_0x4eb6a3){return db[_0x5759b6]['findOne']({'where':{'id':_0x55a244}})[_0x8e7d('0x28')](function(_0x441c24){return _0x441c24[_0x8e7d('0x60')]({'attributes':['id'],'raw':!![]})['then'](function(_0x3cb766){var _0x4355a3=_[_0x8e7d('0x61')](_0x3cb766,'id');_0x50e0f1(_0x4355a3);});})[_0x8e7d('0x50')](function(_0x178e61){_0x4eb6a3(_0x178e61);});});}