ab972be806cca3658bf4a66299ec11c539bf3204
[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 _0x59d1=['text','TemplateId','Sequelize','ValidationError','view','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','error','chatqueue','openchannelqueue','smsqueue','whatsappqueue','some','model','toLowerCase','senderName','user','fullname','isEmpty','recipientsDescription','beep','SenderId','recipientsId','sortBy','join','Notification','forEach','recipient','emit','notification:send','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','startCase','User','union','ids','includes','queue','replace','push','all','catch','getAgents','map','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','to-csv','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./notification.socket','register','sendStatus','status','end','json','count','limit','set','apply','reject','save','update','then','destroy','stack','name','send','sendNotification','body','hasOwnProperty'];(function(_0x1a5858,_0x41d401){var _0x22cbc3=function(_0x2552ef){while(--_0x2552ef){_0x1a5858['push'](_0x1a5858['shift']());}};_0x22cbc3(++_0x41d401);}(_0x59d1,0x92));var _0x159d=function(_0x2bd6b9,_0xba2ab){_0x2bd6b9=_0x2bd6b9-0x0;var _0x5859a9=_0x59d1[_0x2bd6b9];return _0x5859a9;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x159d('0x0'));var rimraf=require(_0x159d('0x1'));var zipdir=require(_0x159d('0x2'));var jsonpatch=require(_0x159d('0x3'));var rp=require(_0x159d('0x4'));var moment=require('moment');var BPromise=require(_0x159d('0x5'));var Mustache=require(_0x159d('0x6'));var util=require(_0x159d('0x7'));var path=require(_0x159d('0x8'));var sox=require(_0x159d('0x9'));var csv=require('to-csv');var ejs=require(_0x159d('0xa'));var fs=require('fs');var _=require(_0x159d('0xb'));var squel=require(_0x159d('0xc'));var crypto=require(_0x159d('0xd'));var jsforce=require(_0x159d('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x159d('0xf'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x159d('0x10'));var qs=require(_0x159d('0x11'));var as=require(_0x159d('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x159d('0x13'))(_0x159d('0x14'));var utils=require(_0x159d('0x15'));var config=require('../../config/environment');var db=require(_0x159d('0x16'))['db'];config[_0x159d('0x17')]=_[_0x159d('0x18')](config[_0x159d('0x17')],{'host':_0x159d('0x19'),'port':0x18eb});var socket=require(_0x159d('0x1a'))(new Redis(config['redis']));require(_0x159d('0x1b'))[_0x159d('0x1c')](socket);function respondWithStatusCode(_0x28f43f,_0x541fe1){_0x541fe1=_0x541fe1||0xcc;return function(_0x1d6337){if(_0x1d6337){return _0x28f43f[_0x159d('0x1d')](_0x541fe1);}return _0x28f43f[_0x159d('0x1e')](_0x541fe1)[_0x159d('0x1f')]();};}function respondWithResult(_0x24c90c,_0x2f8171){_0x2f8171=_0x2f8171||0xc8;return function(_0x2cfdd8){if(_0x2cfdd8){return _0x24c90c[_0x159d('0x1e')](_0x2f8171)[_0x159d('0x20')](_0x2cfdd8);}};}function respondWithFilteredResult(_0x4d0ba0,_0x4d459a){return function(_0x35db77){if(_0x35db77){var _0x16baeb=_0x35db77[_0x159d('0x21')],_0x28f5ec=_0x4d459a['offset'],_0x577136=_0x4d459a['offset']+_0x4d459a[_0x159d('0x22')],_0x4bc849;if(_0x577136>=_0x16baeb){_0x577136=_0x16baeb;_0x4bc849=0xc8;}else{_0x4bc849=0xce;}_0x4d0ba0[_0x159d('0x1e')](_0x4bc849);return _0x4d0ba0[_0x159d('0x23')]('Content-Range',_0x28f5ec+'-'+_0x577136+'/'+_0x16baeb)['json'](_0x35db77);}return null;};}function patchUpdates(_0x2ab0c7){return function(_0x3f0e33){try{jsonpatch[_0x159d('0x24')](_0x3f0e33,_0x2ab0c7,!![]);}catch(_0x53b63c){return BPromise[_0x159d('0x25')](_0x53b63c);}return _0x3f0e33[_0x159d('0x26')]();};}function saveUpdates(_0x39b2e9,_0x16105c){return function(_0x21d20c){if(_0x21d20c){return _0x21d20c[_0x159d('0x27')](_0x39b2e9)[_0x159d('0x28')](function(_0x1c7278){return _0x1c7278;});}return null;};}function removeEntity(_0x40a00c,_0x2560a2){return function(_0x5f44ed){if(_0x5f44ed){return _0x5f44ed[_0x159d('0x29')]()[_0x159d('0x28')](function(){_0x40a00c['status'](0xcc)[_0x159d('0x1f')]();});}};}function handleEntityNotFound(_0x178c85,_0x9eab58){return function(_0x3ba488){if(!_0x3ba488){_0x178c85[_0x159d('0x1d')](0x194);}return _0x3ba488;};}function handleError(_0x163001,_0x2f06df){_0x2f06df=_0x2f06df||0x1f4;return function(_0x3d68dc){logger['error'](_0x3d68dc[_0x159d('0x2a')]);if(_0x3d68dc[_0x159d('0x2b')]){delete _0x3d68dc[_0x159d('0x2b')];}_0x163001['status'](_0x2f06df)[_0x159d('0x2c')](_0x3d68dc);};}exports[_0x159d('0x2d')]=function(_0x215520,_0x482e6d,_0x191bf9){if(!_0x215520[_0x159d('0x2e')][_0x159d('0x2f')](_0x159d('0x30'))&&!_0x215520['body'][_0x159d('0x2f')](_0x159d('0x31'))){throw new db[(_0x159d('0x32'))][(_0x159d('0x33'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x215520[_0x159d('0x2e')]['hasOwnProperty']('TemplateId')&&!_0x215520['body'][_0x159d('0x2f')](_0x159d('0x34'))){throw new db['Sequelize'][(_0x159d('0x33'))](_0x159d('0x35'));}if(!_0x215520[_0x159d('0x2e')][_0x159d('0x2f')](_0x159d('0x36'))){throw new db['Sequelize'][(_0x159d('0x33'))](_0x159d('0x37'));}else{try{var _0x7cca0c=JSON[_0x159d('0x38')](_0x215520[_0x159d('0x2e')][_0x159d('0x36')]);}catch(_0x1fb104){logger[_0x159d('0x39')](_0x1fb104);throw new db['Sequelize']['ValidationError']('Invalid\x20\x27recipients\x27\x20object');}var _0x48a3c0=[_0x159d('0x3a'),'faxqueue','mailqueue',_0x159d('0x3b'),_0x159d('0x3c'),'voicequeue',_0x159d('0x3d'),'team','user'];if(_[_0x159d('0x3e')](_0x7cca0c,function(_0x502fc8){return!_['includes'](_0x48a3c0,_0x502fc8[_0x159d('0x3f')][_0x159d('0x40')]());})){throw new db[(_0x159d('0x32'))]['ValidationError']('Invalid\x20model\x20in\x20\x27recipients\x27\x20object');}}}var _0xb62ad1={};_0xb62ad1[_0x159d('0x41')]=_0x215520[_0x159d('0x2e')][_0x159d('0x2f')](_0x159d('0x41'))?_0x215520[_0x159d('0x2e')][_0x159d('0x41')]:_0x215520[_0x159d('0x42')][_0x159d('0x43')];_0xb62ad1['recipientsDescription']=_[_0x159d('0x44')](_0x215520[_0x159d('0x2e')]['recipientsDescription'])?null:_0x215520[_0x159d('0x2e')][_0x159d('0x45')];_0xb62ad1[_0x159d('0x46')]=_0x215520['body']['beep']||![];_0xb62ad1[_0x159d('0x47')]=_0x215520[_0x159d('0x42')]['id'];return getContent(_0x215520[_0x159d('0x2e')])['then'](function(_0x43a5d5){_0xb62ad1[_0x159d('0x2e')]=_0x43a5d5;return getRecipients(_0x7cca0c);})[_0x159d('0x28')](function(_0x4d1429){_0xb62ad1[_0x159d('0x48')]=_[_0x159d('0x49')](_0x4d1429)[_0x159d('0x4a')](',');return db['sequelize']['transaction'](function(_0xd78903){return db[_0x159d('0x4b')]['create'](_0xb62ad1,{'raw':!![],'transaction':_0xd78903})[_0x159d('0x28')](function(_0x58d102){var _0x443d96={'sender':_0xb62ad1[_0x159d('0x41')],'description':_0xb62ad1[_0x159d('0x45')],'content':_0xb62ad1[_0x159d('0x2e')],'beep':_0xb62ad1['beep']};_0x4d1429[_0x159d('0x4c')](function(_0x58291f){_0x443d96[_0x159d('0x4d')]=_0x58291f;socket[_0x159d('0x4e')](_0x159d('0x4f'),_0x443d96);});return _0x58d102;});});})[_0x159d('0x28')](respondWithResult(_0x482e6d,0xc9))['catch'](handleError(_0x482e6d,null));};function getContent(_0x9fb822){return new BPromise(function(_0x35d497,_0x58eb3e){if(_0x9fb822['text']){_0x35d497(_0x9fb822[_0x159d('0x30')]);return;}return db[_0x159d('0x50')][_0x159d('0x51')]({'attributes':[_0x159d('0x52')],'where':{'id':_0x9fb822[_0x159d('0x31')]},'raw':!![]})['then'](function(_0x4fc33e){if(!_0x4fc33e)throw new db[(_0x159d('0x32'))]['ValidationError'](_0x159d('0x53'));var _0x365a7=Mustache[_0x159d('0x54')](_0x4fc33e[_0x159d('0x52')],_0x9fb822['view']);_0x35d497(_0x365a7);})['catch'](function(_0x41aaef){_0x58eb3e(_0x41aaef);});});}function getRecipients(_0x29a0d9){return new BPromise(function(_0x148087,_0x2823c2){var _0x36307d=[];var _0x280663=[];_0x29a0d9['forEach'](function(_0x5db2bb){var _0x4d4f75=_[_0x159d('0x55')](_0x5db2bb[_0x159d('0x3f')][_0x159d('0x40')]());if(_0x4d4f75===_0x159d('0x56')){_0x36307d=_[_0x159d('0x57')](_0x36307d,_0x5db2bb[_0x159d('0x58')]);}else{if(_[_0x159d('0x59')](_0x4d4f75,_0x159d('0x5a')))_0x4d4f75=_0x4d4f75[_0x159d('0x5b')](_0x159d('0x5a'),'Queue');_0x5db2bb['ids'][_0x159d('0x4c')](function(_0x3c3645){_0x280663[_0x159d('0x5c')](getAgents(_0x4d4f75,_0x3c3645));});}});return BPromise[_0x159d('0x5d')](_0x280663)[_0x159d('0x28')](function(_0xfeb778){_0x36307d=_['union'](_0x36307d,_['flatten'](_0xfeb778));_0x148087(_0x36307d);})[_0x159d('0x5e')](function(_0x26ff17){_0x2823c2(_0x26ff17);});});}function getAgents(_0x81f272,_0x250040){return new BPromise(function(_0x28aba1,_0x5cbd53){return db[_0x81f272]['findOne']({'where':{'id':_0x250040}})[_0x159d('0x28')](function(_0x5525eb){return _0x5525eb[_0x159d('0x5f')]({'attributes':['id'],'raw':!![]})[_0x159d('0x28')](function(_0x5d0c1f){var _0x545e68=_[_0x159d('0x60')](_0x5d0c1f,'id');_0x28aba1(_0x545e68);});})['catch'](function(_0x1887ec){_0x5cbd53(_0x1887ec);});});}