Built motion from commit (unavailable).|2.5.3
[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 _0x1bd1=['fullname','recipientsDescription','isEmpty','beep','SenderId','recipientsId','sortBy','join','sequelize','create','forEach','emit','notification:send','catch','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','startCase','model','User','union','queue','ids','push','all','flatten','map','html-pdf','eml-format','rimraf','zip-dir','bluebird','util','path','sox','squel','crypto','jsforce','desk.js','to-csv','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./notification.socket','register','sendStatus','status','end','json','count','offset','set','Content-Range','reject','save','update','then','destroy','error','stack','name','send','sendNotification','body','hasOwnProperty','text','Sequelize','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','TemplateId','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','Invalid\x20\x27recipients\x27\x20object','chatqueue','mailqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','team','user','some','includes','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName'];(function(_0x1bc741,_0x2bad31){var _0x265068=function(_0x5a17eb){while(--_0x5a17eb){_0x1bc741['push'](_0x1bc741['shift']());}};_0x265068(++_0x2bad31);}(_0x1bd1,0x149));var _0x11bd=function(_0x93557a,_0x43aa42){_0x93557a=_0x93557a-0x0;var _0x57c4bb=_0x1bd1[_0x93557a];return _0x57c4bb;};'use strict';var pdf=require(_0x11bd('0x0'));var emlformat=require(_0x11bd('0x1'));var rimraf=require(_0x11bd('0x2'));var zipdir=require(_0x11bd('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x11bd('0x4'));var Mustache=require('mustache');var util=require(_0x11bd('0x5'));var path=require(_0x11bd('0x6'));var sox=require(_0x11bd('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x11bd('0x8'));var crypto=require(_0x11bd('0x9'));var jsforce=require(_0x11bd('0xa'));var deskjs=require(_0x11bd('0xb'));var toCsv=require(_0x11bd('0xc'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x11bd('0xd'));var authService=require(_0x11bd('0xe'));var qs=require(_0x11bd('0xf'));var as=require(_0x11bd('0x10'));var hardwareService=require(_0x11bd('0x11'));var logger=require('../../config/logger')(_0x11bd('0x12'));var utils=require(_0x11bd('0x13'));var config=require(_0x11bd('0x14'));var db=require(_0x11bd('0x15'))['db'];config['redis']=_[_0x11bd('0x16')](config[_0x11bd('0x17')],{'host':_0x11bd('0x18'),'port':0x18eb});var socket=require(_0x11bd('0x19'))(new Redis(config[_0x11bd('0x17')]));require(_0x11bd('0x1a'))[_0x11bd('0x1b')](socket);function respondWithStatusCode(_0x507ab5,_0x4389f4){_0x4389f4=_0x4389f4||0xcc;return function(_0x3eb9a3){if(_0x3eb9a3){return _0x507ab5[_0x11bd('0x1c')](_0x4389f4);}return _0x507ab5[_0x11bd('0x1d')](_0x4389f4)[_0x11bd('0x1e')]();};}function respondWithResult(_0x23d050,_0x59043f){_0x59043f=_0x59043f||0xc8;return function(_0x39116d){if(_0x39116d){return _0x23d050[_0x11bd('0x1d')](_0x59043f)[_0x11bd('0x1f')](_0x39116d);}};}function respondWithFilteredResult(_0x2ce1fc,_0x1ff139){return function(_0x44cba7){if(_0x44cba7){var _0x561f24=_0x44cba7[_0x11bd('0x20')],_0x2f8a9b=_0x1ff139[_0x11bd('0x21')],_0xe9f85=_0x1ff139[_0x11bd('0x21')]+_0x1ff139['limit'],_0x28f616;if(_0xe9f85>=_0x561f24){_0xe9f85=_0x561f24;_0x28f616=0xc8;}else{_0x28f616=0xce;}_0x2ce1fc[_0x11bd('0x1d')](_0x28f616);return _0x2ce1fc[_0x11bd('0x22')](_0x11bd('0x23'),_0x2f8a9b+'-'+_0xe9f85+'/'+_0x561f24)[_0x11bd('0x1f')](_0x44cba7);}return null;};}function patchUpdates(_0xa076a9){return function(_0x1247de){try{jsonpatch['apply'](_0x1247de,_0xa076a9,!![]);}catch(_0xde031b){return BPromise[_0x11bd('0x24')](_0xde031b);}return _0x1247de[_0x11bd('0x25')]();};}function saveUpdates(_0x326591,_0x1f8ca6){return function(_0x3af304){if(_0x3af304){return _0x3af304[_0x11bd('0x26')](_0x326591)[_0x11bd('0x27')](function(_0x2e0d4a){return _0x2e0d4a;});}return null;};}function removeEntity(_0x41e22f,_0x1c17d9){return function(_0x1df6c6){if(_0x1df6c6){return _0x1df6c6[_0x11bd('0x28')]()['then'](function(){_0x41e22f[_0x11bd('0x1d')](0xcc)[_0x11bd('0x1e')]();});}};}function handleEntityNotFound(_0x4794e4,_0x322329){return function(_0x597063){if(!_0x597063){_0x4794e4[_0x11bd('0x1c')](0x194);}return _0x597063;};}function handleError(_0x5d2507,_0x33c950){_0x33c950=_0x33c950||0x1f4;return function(_0x309d65){logger[_0x11bd('0x29')](_0x309d65[_0x11bd('0x2a')]);if(_0x309d65[_0x11bd('0x2b')]){delete _0x309d65['name'];}_0x5d2507[_0x11bd('0x1d')](_0x33c950)[_0x11bd('0x2c')](_0x309d65);};}exports[_0x11bd('0x2d')]=function(_0xf976f3,_0x31164e,_0x22ebcd){if(!_0xf976f3[_0x11bd('0x2e')][_0x11bd('0x2f')](_0x11bd('0x30'))&&!_0xf976f3['body'][_0x11bd('0x2f')]('TemplateId')){throw new db[(_0x11bd('0x31'))][(_0x11bd('0x32'))](_0x11bd('0x33'));}else{if(_0xf976f3[_0x11bd('0x2e')][_0x11bd('0x2f')](_0x11bd('0x34'))&&!_0xf976f3[_0x11bd('0x2e')][_0x11bd('0x2f')]('view')){throw new db[(_0x11bd('0x31'))][(_0x11bd('0x32'))](_0x11bd('0x35'));}if(!_0xf976f3[_0x11bd('0x2e')][_0x11bd('0x2f')](_0x11bd('0x36'))){throw new db['Sequelize'][(_0x11bd('0x32'))](_0x11bd('0x37'));}else{try{var _0x1a0b27=JSON[_0x11bd('0x38')](_0xf976f3[_0x11bd('0x2e')][_0x11bd('0x36')]);}catch(_0xf2a7a8){logger[_0x11bd('0x29')](_0xf2a7a8);throw new db[(_0x11bd('0x31'))][(_0x11bd('0x32'))](_0x11bd('0x39'));}var _0x2dd6a9=[_0x11bd('0x3a'),'faxqueue',_0x11bd('0x3b'),_0x11bd('0x3c'),_0x11bd('0x3d'),_0x11bd('0x3e'),_0x11bd('0x3f'),_0x11bd('0x40'),_0x11bd('0x41')];if(_[_0x11bd('0x42')](_0x1a0b27,function(_0x1b38d1){return!_[_0x11bd('0x43')](_0x2dd6a9,_0x1b38d1['model'][_0x11bd('0x44')]());})){throw new db[(_0x11bd('0x31'))][(_0x11bd('0x32'))](_0x11bd('0x45'));}}}var _0x861e22={};_0x861e22[_0x11bd('0x46')]=_0xf976f3['body']['hasOwnProperty'](_0x11bd('0x46'))?_0xf976f3['body']['senderName']:_0xf976f3[_0x11bd('0x41')][_0x11bd('0x47')];_0x861e22[_0x11bd('0x48')]=_[_0x11bd('0x49')](_0xf976f3[_0x11bd('0x2e')][_0x11bd('0x48')])?null:_0xf976f3['body']['recipientsDescription'];_0x861e22['beep']=_0xf976f3[_0x11bd('0x2e')][_0x11bd('0x4a')]||![];_0x861e22[_0x11bd('0x4b')]=_0xf976f3['user']['id'];return getContent(_0xf976f3[_0x11bd('0x2e')])[_0x11bd('0x27')](function(_0x18c4cf){_0x861e22[_0x11bd('0x2e')]=_0x18c4cf;return getRecipients(_0x1a0b27);})['then'](function(_0x2ff9f8){_0x861e22[_0x11bd('0x4c')]=_[_0x11bd('0x4d')](_0x2ff9f8)[_0x11bd('0x4e')](',');return db[_0x11bd('0x4f')]['transaction'](function(_0xdd1bf4){return db['Notification'][_0x11bd('0x50')](_0x861e22,{'raw':!![],'transaction':_0xdd1bf4})[_0x11bd('0x27')](function(_0x5702b3){var _0x43c982={'sender':_0x861e22['senderName'],'description':_0x861e22[_0x11bd('0x48')],'content':_0x861e22[_0x11bd('0x2e')],'beep':_0x861e22[_0x11bd('0x4a')]};_0x2ff9f8[_0x11bd('0x51')](function(_0x3e633d){_0x43c982['recipient']=_0x3e633d;socket[_0x11bd('0x52')](_0x11bd('0x53'),_0x43c982);});return _0x5702b3;});});})[_0x11bd('0x27')](respondWithResult(_0x31164e,0xc9))[_0x11bd('0x54')](handleError(_0x31164e,null));};function getContent(_0x3cbedc){return new BPromise(function(_0x311393,_0x2bc80c){if(_0x3cbedc[_0x11bd('0x30')]){_0x311393(_0x3cbedc[_0x11bd('0x30')]);return;}return db[_0x11bd('0x55')][_0x11bd('0x56')]({'attributes':[_0x11bd('0x57')],'where':{'id':_0x3cbedc['TemplateId']},'raw':!![]})[_0x11bd('0x27')](function(_0x1756e5){if(!_0x1756e5)throw new db[(_0x11bd('0x31'))][(_0x11bd('0x32'))](_0x11bd('0x58'));var _0x2e1c9e=Mustache[_0x11bd('0x59')](_0x1756e5[_0x11bd('0x57')],_0x3cbedc['view']);_0x311393(_0x2e1c9e);})[_0x11bd('0x54')](function(_0x4b4881){_0x2bc80c(_0x4b4881);});});}function getRecipients(_0x4f1166){return new BPromise(function(_0x57883b,_0x36d560){var _0x566da8=[];var _0x5313c3=[];_0x4f1166[_0x11bd('0x51')](function(_0x65ea87){var _0x4b027d=_[_0x11bd('0x5a')](_0x65ea87[_0x11bd('0x5b')][_0x11bd('0x44')]());if(_0x4b027d===_0x11bd('0x5c')){_0x566da8=_[_0x11bd('0x5d')](_0x566da8,_0x65ea87['ids']);}else{if(_[_0x11bd('0x43')](_0x4b027d,_0x11bd('0x5e')))_0x4b027d=_0x4b027d['replace'](_0x11bd('0x5e'),'Queue');_0x65ea87[_0x11bd('0x5f')][_0x11bd('0x51')](function(_0x22ddee){_0x5313c3[_0x11bd('0x60')](getAgents(_0x4b027d,_0x22ddee));});}});return BPromise[_0x11bd('0x61')](_0x5313c3)[_0x11bd('0x27')](function(_0x4e63a2){_0x566da8=_[_0x11bd('0x5d')](_0x566da8,_[_0x11bd('0x62')](_0x4e63a2));_0x57883b(_0x566da8);})[_0x11bd('0x54')](function(_0x58333f){_0x36d560(_0x58333f);});});}function getAgents(_0x3f0d18,_0x37de12){return new BPromise(function(_0x5b7d0e,_0x2dbf2d){return db[_0x3f0d18][_0x11bd('0x56')]({'where':{'id':_0x37de12}})[_0x11bd('0x27')](function(_0x5a0400){return _0x5a0400['getAgents']({'attributes':['id'],'raw':!![]})[_0x11bd('0x27')](function(_0x29c5ee){var _0x10359f=_[_0x11bd('0x63')](_0x29c5ee,'id');_0x5b7d0e(_0x10359f);});})[_0x11bd('0x54')](function(_0x5dbfcf){_0x2dbf2d(_0x5dbfcf);});});}