Built motion from commit b5413ace.|2.6.9
[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 _0x4fa4=['../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','./userNotification.socket','register','sendStatus','status','end','json','offset','undefined','count','limit','Content-Range','apply','save','update','then','destroy','error','stack','name','send','body','text','hasOwnProperty','TemplateId','Sequelize','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','Missing\x20\x27view\x27\x20parameter','Missing\x20\x27recipients\x27\x20parameter','parse','recipients','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','openchannelqueue','smsqueue','whatsappqueue','team','some','includes','model','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','user','fullname','isEmpty','recipientsDescription','beep','recipientsId','join','sequelize','transaction','UserNotification','create','forEach','recipient','emit','Template','Invalid\x20\x27TemplateId\x27\x20parameter','render','html','catch','toLowerCase','User','union','ids','queue','replace','Queue','push','all','flatten','getAgents','map','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs'];(function(_0x5c9307,_0x5b97e4){var _0x373e29=function(_0xefebbd){while(--_0xefebbd){_0x5c9307['push'](_0x5c9307['shift']());}};_0x373e29(++_0x5b97e4);}(_0x4fa4,0x1f0));var _0x44fa=function(_0xaa1b3e,_0x47d976){_0xaa1b3e=_0xaa1b3e-0x0;var _0x454d7d=_0x4fa4[_0xaa1b3e];return _0x454d7d;};'use strict';var emlformat=require(_0x44fa('0x0'));var rimraf=require(_0x44fa('0x1'));var zipdir=require(_0x44fa('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x44fa('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x44fa('0x4'));var util=require(_0x44fa('0x5'));var path=require(_0x44fa('0x6'));var sox=require(_0x44fa('0x7'));var csv=require(_0x44fa('0x8'));var ejs=require(_0x44fa('0x9'));var fs=require('fs');var fs_extra=require(_0x44fa('0xa'));var _=require(_0x44fa('0xb'));var squel=require(_0x44fa('0xc'));var crypto=require('crypto');var jsforce=require(_0x44fa('0xd'));var deskjs=require(_0x44fa('0xe'));var toCsv=require(_0x44fa('0x8'));var querystring=require('querystring');var Papa=require(_0x44fa('0xf'));var Redis=require(_0x44fa('0x10'));var authService=require(_0x44fa('0x11'));var qs=require(_0x44fa('0x12'));var as=require(_0x44fa('0x13'));var hardwareService=require(_0x44fa('0x14'));var logger=require(_0x44fa('0x15'))(_0x44fa('0x16'));var utils=require(_0x44fa('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x44fa('0x18'));var db=require(_0x44fa('0x19'))['db'];config[_0x44fa('0x1a')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x44fa('0x1b'))[_0x44fa('0x1c')](socket);function respondWithStatusCode(_0x3b7a55,_0x169b71){_0x169b71=_0x169b71||0xcc;return function(_0x332899){if(_0x332899){return _0x3b7a55[_0x44fa('0x1d')](_0x169b71);}return _0x3b7a55[_0x44fa('0x1e')](_0x169b71)[_0x44fa('0x1f')]();};}function respondWithResult(_0x2b6985,_0x52421f){_0x52421f=_0x52421f||0xc8;return function(_0x49257d){if(_0x49257d){return _0x2b6985[_0x44fa('0x1e')](_0x52421f)[_0x44fa('0x20')](_0x49257d);}};}function respondWithFilteredResult(_0xe686,_0x27ac29){return function(_0xcc1c15){if(_0xcc1c15){var _0x4c16c5=typeof _0x27ac29[_0x44fa('0x21')]===_0x44fa('0x22')&&typeof _0x27ac29['limit']===_0x44fa('0x22');var _0x1c3575=_0xcc1c15[_0x44fa('0x23')];var _0x168541=_0x4c16c5?0x0:_0x27ac29[_0x44fa('0x21')];var _0x238db7=_0x4c16c5?_0xcc1c15[_0x44fa('0x23')]:_0x27ac29[_0x44fa('0x21')]+_0x27ac29[_0x44fa('0x24')];var _0x1dbbd5;if(_0x238db7>=_0x1c3575){_0x238db7=_0x1c3575;_0x1dbbd5=0xc8;}else{_0x1dbbd5=0xce;}_0xe686['status'](_0x1dbbd5);return _0xe686['set'](_0x44fa('0x25'),_0x168541+'-'+_0x238db7+'/'+_0x1c3575)[_0x44fa('0x20')](_0xcc1c15);}return null;};}function patchUpdates(_0x5e9df6){return function(_0x4eea2a){try{jsonpatch[_0x44fa('0x26')](_0x4eea2a,_0x5e9df6,!![]);}catch(_0x3a178b){return BPromise['reject'](_0x3a178b);}return _0x4eea2a[_0x44fa('0x27')]();};}function saveUpdates(_0x50dcda,_0x10b3f8){return function(_0x307894){if(_0x307894){return _0x307894[_0x44fa('0x28')](_0x50dcda)[_0x44fa('0x29')](function(_0x9d8ad1){return _0x9d8ad1;});}return null;};}function removeEntity(_0x99608e,_0x1ca4e3){return function(_0x39ce40){if(_0x39ce40){return _0x39ce40[_0x44fa('0x2a')]()[_0x44fa('0x29')](function(){_0x99608e[_0x44fa('0x1e')](0xcc)[_0x44fa('0x1f')]();});}};}function handleEntityNotFound(_0x45559d,_0x5d026b){return function(_0x4fe34d){if(!_0x4fe34d){_0x45559d[_0x44fa('0x1d')](0x194);}return _0x4fe34d;};}function handleError(_0x4bf438,_0x312a1d){_0x312a1d=_0x312a1d||0x1f4;return function(_0x127baf){logger[_0x44fa('0x2b')](_0x127baf[_0x44fa('0x2c')]);if(_0x127baf[_0x44fa('0x2d')]){delete _0x127baf[_0x44fa('0x2d')];}_0x4bf438[_0x44fa('0x1e')](_0x312a1d)[_0x44fa('0x2e')](_0x127baf);};}exports['sendUserNotification']=function(_0x4cb622,_0x30aff3,_0x4be725){if(!_0x4cb622[_0x44fa('0x2f')]['hasOwnProperty'](_0x44fa('0x30'))&&!_0x4cb622[_0x44fa('0x2f')][_0x44fa('0x31')](_0x44fa('0x32'))){throw new db[(_0x44fa('0x33'))][(_0x44fa('0x34'))](_0x44fa('0x35'));}else{if(_0x4cb622[_0x44fa('0x2f')]['hasOwnProperty'](_0x44fa('0x32'))&&!_0x4cb622[_0x44fa('0x2f')][_0x44fa('0x31')](_0x44fa('0x36'))){throw new db[(_0x44fa('0x33'))][(_0x44fa('0x34'))](_0x44fa('0x37'));}if(!_0x4cb622[_0x44fa('0x2f')][_0x44fa('0x31')]('recipients')){throw new db[(_0x44fa('0x33'))][(_0x44fa('0x34'))](_0x44fa('0x38'));}else{try{var _0x4ec700=JSON[_0x44fa('0x39')](_0x4cb622[_0x44fa('0x2f')][_0x44fa('0x3a')]);}catch(_0x3299dc){logger[_0x44fa('0x2b')](_0x3299dc);throw new db[(_0x44fa('0x33'))][(_0x44fa('0x34'))](_0x44fa('0x3b'));}var _0x4a4e85=[_0x44fa('0x3c'),_0x44fa('0x3d'),_0x44fa('0x3e'),_0x44fa('0x3f'),_0x44fa('0x40'),'voicequeue',_0x44fa('0x41'),_0x44fa('0x42'),'user'];if(_[_0x44fa('0x43')](_0x4ec700,function(_0x35a429){return!_[_0x44fa('0x44')](_0x4a4e85,_0x35a429[_0x44fa('0x45')]['toLowerCase']());})){throw new db[(_0x44fa('0x33'))][(_0x44fa('0x34'))](_0x44fa('0x46'));}}}var _0x44c3dc={};_0x44c3dc[_0x44fa('0x47')]=_0x4cb622[_0x44fa('0x2f')][_0x44fa('0x31')](_0x44fa('0x47'))?_0x4cb622[_0x44fa('0x2f')][_0x44fa('0x47')]:_0x4cb622[_0x44fa('0x48')][_0x44fa('0x49')];_0x44c3dc['recipientsDescription']=_[_0x44fa('0x4a')](_0x4cb622[_0x44fa('0x2f')]['recipientsDescription'])?null:_0x4cb622['body'][_0x44fa('0x4b')];_0x44c3dc[_0x44fa('0x4c')]=_0x4cb622[_0x44fa('0x2f')][_0x44fa('0x4c')]||![];_0x44c3dc['SenderId']=_0x4cb622[_0x44fa('0x48')]['id'];return getContent(_0x4cb622['body'])[_0x44fa('0x29')](function(_0x55bc96){_0x44c3dc[_0x44fa('0x2f')]=_0x55bc96;return getRecipients(_0x4ec700);})[_0x44fa('0x29')](function(_0x54d0e2){_0x44c3dc[_0x44fa('0x4d')]=_['sortBy'](_0x54d0e2)[_0x44fa('0x4e')](',');return db[_0x44fa('0x4f')][_0x44fa('0x50')](function(_0x787de3){return db[_0x44fa('0x51')][_0x44fa('0x52')](_0x44c3dc,{'raw':!![],'transaction':_0x787de3})[_0x44fa('0x29')](function(_0x45ffeb){var _0x35b0b7={'sender':_0x44c3dc[_0x44fa('0x47')],'description':_0x44c3dc['recipientsDescription'],'content':_0x44c3dc[_0x44fa('0x2f')],'beep':_0x44c3dc['beep']};_0x54d0e2[_0x44fa('0x53')](function(_0x3d0905){_0x35b0b7[_0x44fa('0x54')]=_0x3d0905;socket[_0x44fa('0x55')]('userNotification:send',_0x35b0b7);});return _0x45ffeb;});});})[_0x44fa('0x29')](respondWithResult(_0x30aff3,0xc9))['catch'](handleError(_0x30aff3,null));};function getContent(_0x3d2de8){return new BPromise(function(_0x5f117d,_0x1525fa){if(_0x3d2de8[_0x44fa('0x30')]){_0x5f117d(_0x3d2de8['text']);return;}return db[_0x44fa('0x56')]['findOne']({'attributes':['html'],'where':{'id':_0x3d2de8[_0x44fa('0x32')]},'raw':!![]})[_0x44fa('0x29')](function(_0x1c75a3){if(!_0x1c75a3)throw new db[(_0x44fa('0x33'))][(_0x44fa('0x34'))](_0x44fa('0x57'));var _0x51c0ba=Mustache[_0x44fa('0x58')](_0x1c75a3[_0x44fa('0x59')],_0x3d2de8[_0x44fa('0x36')]);_0x5f117d(_0x51c0ba);})[_0x44fa('0x5a')](function(_0xbe5e62){_0x1525fa(_0xbe5e62);});});}function getRecipients(_0x5c5f56){return new BPromise(function(_0x1e932d,_0x2b3bb8){var _0x23b980=[];var _0x8648aa=[];_0x5c5f56[_0x44fa('0x53')](function(_0xf70cbc){var _0xcb2fac=_['startCase'](_0xf70cbc[_0x44fa('0x45')][_0x44fa('0x5b')]());if(_0xcb2fac===_0x44fa('0x5c')){_0x23b980=_[_0x44fa('0x5d')](_0x23b980,_0xf70cbc[_0x44fa('0x5e')]);}else{if(_[_0x44fa('0x44')](_0xcb2fac,_0x44fa('0x5f')))_0xcb2fac=_0xcb2fac[_0x44fa('0x60')]('queue',_0x44fa('0x61'));_0xf70cbc[_0x44fa('0x5e')]['forEach'](function(_0x16ad36){_0x8648aa[_0x44fa('0x62')](getAgents(_0xcb2fac,_0x16ad36));});}});return BPromise[_0x44fa('0x63')](_0x8648aa)[_0x44fa('0x29')](function(_0x312fad){_0x23b980=_[_0x44fa('0x5d')](_0x23b980,_[_0x44fa('0x64')](_0x312fad));_0x1e932d(_0x23b980);})[_0x44fa('0x5a')](function(_0x52e60d){_0x2b3bb8(_0x52e60d);});});}function getAgents(_0x215692,_0x47020d){return new BPromise(function(_0x1403fb,_0x2ff589){return db[_0x215692]['findOne']({'where':{'id':_0x47020d}})[_0x44fa('0x29')](function(_0xf5251b){return _0xf5251b[_0x44fa('0x65')]({'attributes':['id'],'raw':!![]})[_0x44fa('0x29')](function(_0x385a7b){var _0x2d1a25=_[_0x44fa('0x66')](_0x385a7b,'id');_0x1403fb(_0x2d1a25);});})[_0x44fa('0x5a')](function(_0x796821){_0x2ff589(_0x796821);});});}