Built motion from commit 47436d59.|2.6.7
[motion2.git] / server / api / userNotification / userNotification.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 _0x4313=['senderName','user','fullname','isEmpty','recipientsDescription','beep','SenderId','recipientsId','sortBy','join','sequelize','transaction','create','forEach','recipient','emit','userNotification:send','catch','text','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','startCase','union','ids','queue','replace','Queue','all','getAgents','map','eml-format','rimraf','fast-json-patch','moment','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./userNotification.socket','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','error','name','send','body','hasOwnProperty','TemplateId','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','Sequelize','Missing\x20\x27view\x27\x20parameter','recipients','parse','Invalid\x20\x27recipients\x27\x20object','faxqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','team','some','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x4313,0x14d));var _0x3431=function(_0x51ca3d,_0x27ccc0){_0x51ca3d=_0x51ca3d-0x0;var _0x1a5877=_0x4313[_0x51ca3d];return _0x1a5877;};'use strict';var emlformat=require(_0x3431('0x0'));var rimraf=require(_0x3431('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3431('0x2'));var rp=require('request-promise');var moment=require(_0x3431('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x3431('0x4'));var util=require(_0x3431('0x5'));var path=require('path');var sox=require(_0x3431('0x6'));var csv=require('to-csv');var ejs=require(_0x3431('0x7'));var fs=require('fs');var fs_extra=require(_0x3431('0x8'));var _=require(_0x3431('0x9'));var squel=require(_0x3431('0xa'));var crypto=require(_0x3431('0xb'));var jsforce=require(_0x3431('0xc'));var deskjs=require(_0x3431('0xd'));var toCsv=require(_0x3431('0xe'));var querystring=require(_0x3431('0xf'));var Papa=require('papaparse');var Redis=require(_0x3431('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x3431('0x11'));var hardwareService=require(_0x3431('0x12'));var logger=require(_0x3431('0x13'))(_0x3431('0x14'));var utils=require(_0x3431('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x3431('0x16'));var db=require(_0x3431('0x17'))['db'];config[_0x3431('0x18')]=_[_0x3431('0x19')](config[_0x3431('0x18')],{'host':'localhost','port':0x18eb});var socket=require(_0x3431('0x1a'))(new Redis(config[_0x3431('0x18')]));require(_0x3431('0x1b'))['register'](socket);function respondWithStatusCode(_0x78370,_0x552030){_0x552030=_0x552030||0xcc;return function(_0x48f2db){if(_0x48f2db){return _0x78370[_0x3431('0x1c')](_0x552030);}return _0x78370[_0x3431('0x1d')](_0x552030)[_0x3431('0x1e')]();};}function respondWithResult(_0x27197a,_0x359998){_0x359998=_0x359998||0xc8;return function(_0x249949){if(_0x249949){return _0x27197a[_0x3431('0x1d')](_0x359998)['json'](_0x249949);}};}function respondWithFilteredResult(_0x5a04e3,_0x4e3da4){return function(_0x18d29b){if(_0x18d29b){var _0x325473=typeof _0x4e3da4[_0x3431('0x1f')]===_0x3431('0x20')&&typeof _0x4e3da4[_0x3431('0x21')]===_0x3431('0x20');var _0x5058af=_0x18d29b[_0x3431('0x22')];var _0x258763=_0x325473?0x0:_0x4e3da4['offset'];var _0x57d4da=_0x325473?_0x18d29b[_0x3431('0x22')]:_0x4e3da4[_0x3431('0x1f')]+_0x4e3da4[_0x3431('0x21')];var _0x39c7c2;if(_0x57d4da>=_0x5058af){_0x57d4da=_0x5058af;_0x39c7c2=0xc8;}else{_0x39c7c2=0xce;}_0x5a04e3[_0x3431('0x1d')](_0x39c7c2);return _0x5a04e3[_0x3431('0x23')](_0x3431('0x24'),_0x258763+'-'+_0x57d4da+'/'+_0x5058af)['json'](_0x18d29b);}return null;};}function patchUpdates(_0x54c3c0){return function(_0x146991){try{jsonpatch[_0x3431('0x25')](_0x146991,_0x54c3c0,!![]);}catch(_0x2bd279){return BPromise[_0x3431('0x26')](_0x2bd279);}return _0x146991[_0x3431('0x27')]();};}function saveUpdates(_0x3701b8,_0x4eac40){return function(_0x2e9c90){if(_0x2e9c90){return _0x2e9c90[_0x3431('0x28')](_0x3701b8)[_0x3431('0x29')](function(_0x5bcf26){return _0x5bcf26;});}return null;};}function removeEntity(_0x453b64,_0x105892){return function(_0x5dd911){if(_0x5dd911){return _0x5dd911['destroy']()[_0x3431('0x29')](function(){_0x453b64[_0x3431('0x1d')](0xcc)[_0x3431('0x1e')]();});}};}function handleEntityNotFound(_0x286cdf,_0x44f39f){return function(_0x95a9c6){if(!_0x95a9c6){_0x286cdf[_0x3431('0x1c')](0x194);}return _0x95a9c6;};}function handleError(_0xbd69c0,_0x473762){_0x473762=_0x473762||0x1f4;return function(_0x588641){logger[_0x3431('0x2a')](_0x588641['stack']);if(_0x588641['name']){delete _0x588641[_0x3431('0x2b')];}_0xbd69c0[_0x3431('0x1d')](_0x473762)[_0x3431('0x2c')](_0x588641);};}exports['sendUserNotification']=function(_0x2bf269,_0x316936,_0x1e721e){if(!_0x2bf269[_0x3431('0x2d')][_0x3431('0x2e')]('text')&&!_0x2bf269['body']['hasOwnProperty'](_0x3431('0x2f'))){throw new db['Sequelize'][(_0x3431('0x30'))](_0x3431('0x31'));}else{if(_0x2bf269[_0x3431('0x2d')]['hasOwnProperty'](_0x3431('0x2f'))&&!_0x2bf269[_0x3431('0x2d')]['hasOwnProperty'](_0x3431('0x32'))){throw new db[(_0x3431('0x33'))]['ValidationError'](_0x3431('0x34'));}if(!_0x2bf269[_0x3431('0x2d')][_0x3431('0x2e')](_0x3431('0x35'))){throw new db[(_0x3431('0x33'))]['ValidationError']('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x300bd7=JSON[_0x3431('0x36')](_0x2bf269[_0x3431('0x2d')][_0x3431('0x35')]);}catch(_0x3a6c7b){logger[_0x3431('0x2a')](_0x3a6c7b);throw new db[(_0x3431('0x33'))][(_0x3431('0x30'))](_0x3431('0x37'));}var _0x564d55=['chatqueue',_0x3431('0x38'),'mailqueue',_0x3431('0x39'),_0x3431('0x3a'),_0x3431('0x3b'),_0x3431('0x3c'),_0x3431('0x3d'),'user'];if(_[_0x3431('0x3e')](_0x300bd7,function(_0x1c9866){return!_[_0x3431('0x3f')](_0x564d55,_0x1c9866[_0x3431('0x40')][_0x3431('0x41')]());})){throw new db[(_0x3431('0x33'))][(_0x3431('0x30'))](_0x3431('0x42'));}}}var _0x5635d2={};_0x5635d2[_0x3431('0x43')]=_0x2bf269[_0x3431('0x2d')][_0x3431('0x2e')](_0x3431('0x43'))?_0x2bf269[_0x3431('0x2d')][_0x3431('0x43')]:_0x2bf269[_0x3431('0x44')][_0x3431('0x45')];_0x5635d2['recipientsDescription']=_[_0x3431('0x46')](_0x2bf269[_0x3431('0x2d')]['recipientsDescription'])?null:_0x2bf269[_0x3431('0x2d')][_0x3431('0x47')];_0x5635d2[_0x3431('0x48')]=_0x2bf269['body'][_0x3431('0x48')]||![];_0x5635d2[_0x3431('0x49')]=_0x2bf269[_0x3431('0x44')]['id'];return getContent(_0x2bf269[_0x3431('0x2d')])['then'](function(_0x164777){_0x5635d2['body']=_0x164777;return getRecipients(_0x300bd7);})[_0x3431('0x29')](function(_0x45eb0f){_0x5635d2[_0x3431('0x4a')]=_[_0x3431('0x4b')](_0x45eb0f)[_0x3431('0x4c')](',');return db[_0x3431('0x4d')][_0x3431('0x4e')](function(_0x3ebefc){return db['UserNotification'][_0x3431('0x4f')](_0x5635d2,{'raw':!![],'transaction':_0x3ebefc})[_0x3431('0x29')](function(_0x2ffe4c){var _0x58d826={'sender':_0x5635d2['senderName'],'description':_0x5635d2[_0x3431('0x47')],'content':_0x5635d2[_0x3431('0x2d')],'beep':_0x5635d2[_0x3431('0x48')]};_0x45eb0f[_0x3431('0x50')](function(_0x23d4b1){_0x58d826[_0x3431('0x51')]=_0x23d4b1;socket[_0x3431('0x52')](_0x3431('0x53'),_0x58d826);});return _0x2ffe4c;});});})[_0x3431('0x29')](respondWithResult(_0x316936,0xc9))[_0x3431('0x54')](handleError(_0x316936,null));};function getContent(_0x5abe80){return new BPromise(function(_0x2c414f,_0x69aa70){if(_0x5abe80[_0x3431('0x55')]){_0x2c414f(_0x5abe80[_0x3431('0x55')]);return;}return db[_0x3431('0x56')][_0x3431('0x57')]({'attributes':[_0x3431('0x58')],'where':{'id':_0x5abe80['TemplateId']},'raw':!![]})['then'](function(_0x5b28d8){if(!_0x5b28d8)throw new db['Sequelize'][(_0x3431('0x30'))](_0x3431('0x59'));var _0x1387aa=Mustache[_0x3431('0x5a')](_0x5b28d8[_0x3431('0x58')],_0x5abe80[_0x3431('0x32')]);_0x2c414f(_0x1387aa);})['catch'](function(_0x2e3f6f){_0x69aa70(_0x2e3f6f);});});}function getRecipients(_0xb6a76c){return new BPromise(function(_0x45353e,_0x5a0232){var _0x39a88c=[];var _0x3dc84d=[];_0xb6a76c['forEach'](function(_0x461549){var _0x5a85c6=_[_0x3431('0x5b')](_0x461549[_0x3431('0x40')][_0x3431('0x41')]());if(_0x5a85c6==='User'){_0x39a88c=_[_0x3431('0x5c')](_0x39a88c,_0x461549[_0x3431('0x5d')]);}else{if(_['includes'](_0x5a85c6,_0x3431('0x5e')))_0x5a85c6=_0x5a85c6[_0x3431('0x5f')]('queue',_0x3431('0x60'));_0x461549['ids'][_0x3431('0x50')](function(_0x556d98){_0x3dc84d['push'](getAgents(_0x5a85c6,_0x556d98));});}});return BPromise[_0x3431('0x61')](_0x3dc84d)['then'](function(_0x460116){_0x39a88c=_[_0x3431('0x5c')](_0x39a88c,_['flatten'](_0x460116));_0x45353e(_0x39a88c);})[_0x3431('0x54')](function(_0x223643){_0x5a0232(_0x223643);});});}function getAgents(_0x502b30,_0x31be31){return new BPromise(function(_0x340bf8,_0x2ad5c9){return db[_0x502b30][_0x3431('0x57')]({'where':{'id':_0x31be31}})['then'](function(_0x466bfd){return _0x466bfd[_0x3431('0x62')]({'attributes':['id'],'raw':!![]})[_0x3431('0x29')](function(_0x64c2ec){var _0x52fcb7=_[_0x3431('0x63')](_0x64c2ec,'id');_0x340bf8(_0x52fcb7);});})[_0x3431('0x54')](function(_0x351aff){_0x2ad5c9(_0x351aff);});});}