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 _0x2169=['getAgents','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/environment','redis','defaults','localhost','./notification.socket','register','status','json','count','offset','limit','set','Content-Range','apply','reject','then','destroy','end','sendStatus','error','name','send','hasOwnProperty','text','body','TemplateId','Sequelize','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','Invalid\x20\x27recipients\x27\x20object','chatqueue','mailqueue','openchannelqueue','smsqueue','whatsappqueue','user','some','includes','model','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','isEmpty','beep','SenderId','sortBy','join','transaction','Notification','create','forEach','emit','notification:send','catch','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','startCase','toLowerCase','User','union','ids','queue','replace','Queue','push','all','flatten'];(function(_0x35aafd,_0x23627f){var _0x429c9c=function(_0x20a4f5){while(--_0x20a4f5){_0x35aafd['push'](_0x35aafd['shift']());}};_0x429c9c(++_0x23627f);}(_0x2169,0x12d));var _0x9216=function(_0x35156b,_0x4f47e1){_0x35156b=_0x35156b-0x0;var _0x5e9bee=_0x2169[_0x35156b];return _0x5e9bee;};'use strict';var pdf=require(_0x9216('0x0'));var emlformat=require(_0x9216('0x1'));var rimraf=require(_0x9216('0x2'));var zipdir=require(_0x9216('0x3'));var jsonpatch=require(_0x9216('0x4'));var rp=require('request-promise');var moment=require(_0x9216('0x5'));var BPromise=require(_0x9216('0x6'));var Mustache=require(_0x9216('0x7'));var util=require(_0x9216('0x8'));var path=require(_0x9216('0x9'));var sox=require(_0x9216('0xa'));var csv=require(_0x9216('0xb'));var ejs=require(_0x9216('0xc'));var fs=require('fs');var _=require('lodash');var squel=require(_0x9216('0xd'));var crypto=require(_0x9216('0xe'));var jsforce=require(_0x9216('0xf'));var deskjs=require(_0x9216('0x10'));var toCsv=require(_0x9216('0xb'));var querystring=require(_0x9216('0x11'));var Papa=require(_0x9216('0x12'));var Redis=require(_0x9216('0x13'));var authService=require(_0x9216('0x14'));var qs=require(_0x9216('0x15'));var as=require(_0x9216('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9216('0x17'))('api');var utils=require('../../config/utils');var config=require(_0x9216('0x18'));var db=require('../../mysqldb')['db'];config[_0x9216('0x19')]=_[_0x9216('0x1a')](config['redis'],{'host':_0x9216('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x9216('0x19')]));require(_0x9216('0x1c'))[_0x9216('0x1d')](socket);function respondWithStatusCode(_0x4d3231,_0x118236){_0x118236=_0x118236||0xcc;return function(_0x41463d){if(_0x41463d){return _0x4d3231['sendStatus'](_0x118236);}return _0x4d3231[_0x9216('0x1e')](_0x118236)['end']();};}function respondWithResult(_0x9327d1,_0x20f4b9){_0x20f4b9=_0x20f4b9||0xc8;return function(_0x1a8505){if(_0x1a8505){return _0x9327d1[_0x9216('0x1e')](_0x20f4b9)[_0x9216('0x1f')](_0x1a8505);}};}function respondWithFilteredResult(_0x33474c,_0x54d1c4){return function(_0x19e8fe){if(_0x19e8fe){var _0x1cf2cf=_0x19e8fe[_0x9216('0x20')],_0x1d2a06=_0x54d1c4[_0x9216('0x21')],_0x56c1ba=_0x54d1c4[_0x9216('0x21')]+_0x54d1c4[_0x9216('0x22')],_0x23675d;if(_0x56c1ba>=_0x1cf2cf){_0x56c1ba=_0x1cf2cf;_0x23675d=0xc8;}else{_0x23675d=0xce;}_0x33474c['status'](_0x23675d);return _0x33474c[_0x9216('0x23')](_0x9216('0x24'),_0x1d2a06+'-'+_0x56c1ba+'/'+_0x1cf2cf)[_0x9216('0x1f')](_0x19e8fe);}return null;};}function patchUpdates(_0x1cd27f){return function(_0x1d7fbf){try{jsonpatch[_0x9216('0x25')](_0x1d7fbf,_0x1cd27f,!![]);}catch(_0x308c26){return BPromise[_0x9216('0x26')](_0x308c26);}return _0x1d7fbf['save']();};}function saveUpdates(_0x115ab5,_0x4a2344){return function(_0x10b70d){if(_0x10b70d){return _0x10b70d['update'](_0x115ab5)[_0x9216('0x27')](function(_0x128fa2){return _0x128fa2;});}return null;};}function removeEntity(_0x302f5a,_0x208bec){return function(_0x3cc687){if(_0x3cc687){return _0x3cc687[_0x9216('0x28')]()[_0x9216('0x27')](function(){_0x302f5a[_0x9216('0x1e')](0xcc)[_0x9216('0x29')]();});}};}function handleEntityNotFound(_0x3c5f5a,_0x2b8ed7){return function(_0x2cc49d){if(!_0x2cc49d){_0x3c5f5a[_0x9216('0x2a')](0x194);}return _0x2cc49d;};}function handleError(_0x2ffe34,_0x5dc5b5){_0x5dc5b5=_0x5dc5b5||0x1f4;return function(_0x3a10c8){logger[_0x9216('0x2b')](_0x3a10c8['stack']);if(_0x3a10c8[_0x9216('0x2c')]){delete _0x3a10c8[_0x9216('0x2c')];}_0x2ffe34[_0x9216('0x1e')](_0x5dc5b5)[_0x9216('0x2d')](_0x3a10c8);};}exports['sendNotification']=function(_0x2b51be,_0x12e5d4,_0x271510){if(!_0x2b51be['body'][_0x9216('0x2e')](_0x9216('0x2f'))&&!_0x2b51be[_0x9216('0x30')][_0x9216('0x2e')](_0x9216('0x31'))){throw new db[(_0x9216('0x32'))][(_0x9216('0x33'))](_0x9216('0x34'));}else{if(_0x2b51be['body'][_0x9216('0x2e')](_0x9216('0x31'))&&!_0x2b51be[_0x9216('0x30')]['hasOwnProperty'](_0x9216('0x35'))){throw new db[(_0x9216('0x32'))]['ValidationError'](_0x9216('0x36'));}if(!_0x2b51be[_0x9216('0x30')][_0x9216('0x2e')](_0x9216('0x37'))){throw new db['Sequelize']['ValidationError'](_0x9216('0x38'));}else{try{var _0x6f7ca0=JSON[_0x9216('0x39')](_0x2b51be[_0x9216('0x30')][_0x9216('0x37')]);}catch(_0x2262d7){logger[_0x9216('0x2b')](_0x2262d7);throw new db[(_0x9216('0x32'))][(_0x9216('0x33'))](_0x9216('0x3a'));}var _0x59c7fc=[_0x9216('0x3b'),'faxqueue',_0x9216('0x3c'),_0x9216('0x3d'),_0x9216('0x3e'),'voicequeue',_0x9216('0x3f'),'team',_0x9216('0x40')];if(_[_0x9216('0x41')](_0x6f7ca0,function(_0x270471){return!_[_0x9216('0x42')](_0x59c7fc,_0x270471[_0x9216('0x43')]['toLowerCase']());})){throw new db[(_0x9216('0x32'))][(_0x9216('0x33'))](_0x9216('0x44'));}}}var _0x134cfd={};_0x134cfd[_0x9216('0x45')]=_0x2b51be[_0x9216('0x30')][_0x9216('0x2e')](_0x9216('0x45'))?_0x2b51be['body'][_0x9216('0x45')]:_0x2b51be[_0x9216('0x40')][_0x9216('0x46')];_0x134cfd[_0x9216('0x47')]=_[_0x9216('0x48')](_0x2b51be['body'][_0x9216('0x47')])?null:_0x2b51be[_0x9216('0x30')][_0x9216('0x47')];_0x134cfd[_0x9216('0x49')]=_0x2b51be[_0x9216('0x30')][_0x9216('0x49')]||![];_0x134cfd[_0x9216('0x4a')]=_0x2b51be[_0x9216('0x40')]['id'];return getContent(_0x2b51be[_0x9216('0x30')])[_0x9216('0x27')](function(_0x4374a0){_0x134cfd[_0x9216('0x30')]=_0x4374a0;return getRecipients(_0x6f7ca0);})[_0x9216('0x27')](function(_0x2fdbb3){_0x134cfd['recipientsId']=_[_0x9216('0x4b')](_0x2fdbb3)[_0x9216('0x4c')](',');return db['sequelize'][_0x9216('0x4d')](function(_0x48b3bc){return db[_0x9216('0x4e')][_0x9216('0x4f')](_0x134cfd,{'raw':!![],'transaction':_0x48b3bc})[_0x9216('0x27')](function(_0x1379db){var _0x41e105={'sender':_0x134cfd[_0x9216('0x45')],'description':_0x134cfd['recipientsDescription'],'content':_0x134cfd[_0x9216('0x30')],'beep':_0x134cfd['beep']};_0x2fdbb3[_0x9216('0x50')](function(_0x50e82e){_0x41e105['recipient']=_0x50e82e;socket[_0x9216('0x51')](_0x9216('0x52'),_0x41e105);});return _0x1379db;});});})[_0x9216('0x27')](respondWithResult(_0x12e5d4,0xc9))[_0x9216('0x53')](handleError(_0x12e5d4,null));};function getContent(_0x1db5ec){return new BPromise(function(_0x5cc3a8,_0x282060){if(_0x1db5ec[_0x9216('0x2f')]){_0x5cc3a8(_0x1db5ec[_0x9216('0x2f')]);return;}return db['Template'][_0x9216('0x54')]({'attributes':[_0x9216('0x55')],'where':{'id':_0x1db5ec[_0x9216('0x31')]},'raw':!![]})[_0x9216('0x27')](function(_0x8c9746){if(!_0x8c9746)throw new db[(_0x9216('0x32'))][(_0x9216('0x33'))](_0x9216('0x56'));var _0x11c44f=Mustache[_0x9216('0x57')](_0x8c9746[_0x9216('0x55')],_0x1db5ec[_0x9216('0x35')]);_0x5cc3a8(_0x11c44f);})['catch'](function(_0xf7af4b){_0x282060(_0xf7af4b);});});}function getRecipients(_0x31fbc6){return new BPromise(function(_0x153b74,_0x1c3a76){var _0x2e85d4=[];var _0x46c527=[];_0x31fbc6[_0x9216('0x50')](function(_0x485dad){var _0x38d2d7=_[_0x9216('0x58')](_0x485dad[_0x9216('0x43')][_0x9216('0x59')]());if(_0x38d2d7===_0x9216('0x5a')){_0x2e85d4=_[_0x9216('0x5b')](_0x2e85d4,_0x485dad[_0x9216('0x5c')]);}else{if(_['includes'](_0x38d2d7,_0x9216('0x5d')))_0x38d2d7=_0x38d2d7[_0x9216('0x5e')]('queue',_0x9216('0x5f'));_0x485dad[_0x9216('0x5c')][_0x9216('0x50')](function(_0x3518ba){_0x46c527[_0x9216('0x60')](getAgents(_0x38d2d7,_0x3518ba));});}});return BPromise[_0x9216('0x61')](_0x46c527)['then'](function(_0x116f7d){_0x2e85d4=_['union'](_0x2e85d4,_[_0x9216('0x62')](_0x116f7d));_0x153b74(_0x2e85d4);})[_0x9216('0x53')](function(_0x382f91){_0x1c3a76(_0x382f91);});});}function getAgents(_0x9fdec3,_0x311a18){return new BPromise(function(_0x4a81cc,_0x3516ba){return db[_0x9fdec3][_0x9216('0x54')]({'where':{'id':_0x311a18}})[_0x9216('0x27')](function(_0x3878f8){return _0x3878f8[_0x9216('0x63')]({'attributes':['id'],'raw':!![]})['then'](function(_0x46bec5){var _0x31c21d=_['map'](_0x46bec5,'id');_0x4a81cc(_0x31c21d);});})['catch'](function(_0x63c469){_0x3516ba(_0x63c469);});});}