Built motion from commit (unavailable).|2.5.21
[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 _0xd62e=['request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','register','sendStatus','status','end','json','count','offset','limit','apply','reject','save','update','then','destroy','name','sendUserNotification','text','body','TemplateId','Sequelize','ValidationError','hasOwnProperty','Missing\x20\x27view\x27\x20parameter','parse','error','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','smsqueue','whatsappqueue','team','user','includes','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','isEmpty','beep','SenderId','recipientsId','sequelize','transaction','UserNotification','create','forEach','recipient','emit','userNotification:send','catch','Template','findOne','html','render','startCase','model','toLowerCase','User','union','ids','queue','replace','push','all','flatten','getAgents','map','html-pdf','eml-format','rimraf','fast-json-patch'];(function(_0x3d25d3,_0x3a24e8){var _0x71bd41=function(_0x341d1e){while(--_0x341d1e){_0x3d25d3['push'](_0x3d25d3['shift']());}};_0x71bd41(++_0x3a24e8);}(_0xd62e,0xc0));var _0xed62=function(_0x52e989,_0x456a92){_0x52e989=_0x52e989-0x0;var _0x3ab794=_0xd62e[_0x52e989];return _0x3ab794;};'use strict';var pdf=require(_0xed62('0x0'));var emlformat=require(_0xed62('0x1'));var rimraf=require(_0xed62('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0xed62('0x3'));var rp=require(_0xed62('0x4'));var moment=require(_0xed62('0x5'));var BPromise=require(_0xed62('0x6'));var Mustache=require(_0xed62('0x7'));var util=require(_0xed62('0x8'));var path=require(_0xed62('0x9'));var sox=require(_0xed62('0xa'));var csv=require(_0xed62('0xb'));var ejs=require(_0xed62('0xc'));var fs=require('fs');var _=require(_0xed62('0xd'));var squel=require(_0xed62('0xe'));var crypto=require(_0xed62('0xf'));var jsforce=require('jsforce');var deskjs=require(_0xed62('0x10'));var toCsv=require(_0xed62('0xb'));var querystring=require(_0xed62('0x11'));var Papa=require('papaparse');var Redis=require(_0xed62('0x12'));var authService=require(_0xed62('0x13'));var qs=require(_0xed62('0x14'));var as=require(_0xed62('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xed62('0x16'))(_0xed62('0x17'));var utils=require(_0xed62('0x18'));var config=require(_0xed62('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xed62('0x1a'))['db'];config[_0xed62('0x1b')]=_[_0xed62('0x1c')](config[_0xed62('0x1b')],{'host':_0xed62('0x1d'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xed62('0x1b')]));require('./userNotification.socket')[_0xed62('0x1e')](socket);function respondWithStatusCode(_0x1f75b5,_0x127462){_0x127462=_0x127462||0xcc;return function(_0x29d517){if(_0x29d517){return _0x1f75b5[_0xed62('0x1f')](_0x127462);}return _0x1f75b5[_0xed62('0x20')](_0x127462)[_0xed62('0x21')]();};}function respondWithResult(_0x2ed13e,_0x372c8d){_0x372c8d=_0x372c8d||0xc8;return function(_0xdf60d4){if(_0xdf60d4){return _0x2ed13e[_0xed62('0x20')](_0x372c8d)[_0xed62('0x22')](_0xdf60d4);}};}function respondWithFilteredResult(_0x1158e4,_0x8a5eb5){return function(_0x4d8e68){if(_0x4d8e68){var _0x356bdc=_0x4d8e68[_0xed62('0x23')],_0x3d0678=_0x8a5eb5[_0xed62('0x24')],_0x442f07=_0x8a5eb5[_0xed62('0x24')]+_0x8a5eb5[_0xed62('0x25')],_0x159c56;if(_0x442f07>=_0x356bdc){_0x442f07=_0x356bdc;_0x159c56=0xc8;}else{_0x159c56=0xce;}_0x1158e4[_0xed62('0x20')](_0x159c56);return _0x1158e4['set']('Content-Range',_0x3d0678+'-'+_0x442f07+'/'+_0x356bdc)[_0xed62('0x22')](_0x4d8e68);}return null;};}function patchUpdates(_0x41c6e4){return function(_0x296da5){try{jsonpatch[_0xed62('0x26')](_0x296da5,_0x41c6e4,!![]);}catch(_0xb25cca){return BPromise[_0xed62('0x27')](_0xb25cca);}return _0x296da5[_0xed62('0x28')]();};}function saveUpdates(_0x218063,_0x3bf279){return function(_0x1a4b54){if(_0x1a4b54){return _0x1a4b54[_0xed62('0x29')](_0x218063)[_0xed62('0x2a')](function(_0x448ca5){return _0x448ca5;});}return null;};}function removeEntity(_0x921c14,_0x241247){return function(_0xe9b8d5){if(_0xe9b8d5){return _0xe9b8d5[_0xed62('0x2b')]()[_0xed62('0x2a')](function(){_0x921c14[_0xed62('0x20')](0xcc)[_0xed62('0x21')]();});}};}function handleEntityNotFound(_0x5889fe,_0x12e227){return function(_0xa1a905){if(!_0xa1a905){_0x5889fe[_0xed62('0x1f')](0x194);}return _0xa1a905;};}function handleError(_0x3d31b2,_0x317165){_0x317165=_0x317165||0x1f4;return function(_0x21f7eb){logger['error'](_0x21f7eb['stack']);if(_0x21f7eb['name']){delete _0x21f7eb[_0xed62('0x2c')];}_0x3d31b2[_0xed62('0x20')](_0x317165)['send'](_0x21f7eb);};}exports[_0xed62('0x2d')]=function(_0x1a645b,_0x566f1d,_0x1bbb5a){if(!_0x1a645b['body']['hasOwnProperty'](_0xed62('0x2e'))&&!_0x1a645b[_0xed62('0x2f')]['hasOwnProperty'](_0xed62('0x30'))){throw new db[(_0xed62('0x31'))][(_0xed62('0x32'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x1a645b[_0xed62('0x2f')]['hasOwnProperty'](_0xed62('0x30'))&&!_0x1a645b['body'][_0xed62('0x33')]('view')){throw new db[(_0xed62('0x31'))][(_0xed62('0x32'))](_0xed62('0x34'));}if(!_0x1a645b[_0xed62('0x2f')][_0xed62('0x33')]('recipients')){throw new db[(_0xed62('0x31'))]['ValidationError']('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x297a38=JSON[_0xed62('0x35')](_0x1a645b[_0xed62('0x2f')]['recipients']);}catch(_0x2f04f8){logger[_0xed62('0x36')](_0x2f04f8);throw new db[(_0xed62('0x31'))][(_0xed62('0x32'))](_0xed62('0x37'));}var _0x215a47=[_0xed62('0x38'),_0xed62('0x39'),_0xed62('0x3a'),'openchannelqueue',_0xed62('0x3b'),'voicequeue',_0xed62('0x3c'),_0xed62('0x3d'),_0xed62('0x3e')];if(_['some'](_0x297a38,function(_0x371e1f){return!_[_0xed62('0x3f')](_0x215a47,_0x371e1f['model']['toLowerCase']());})){throw new db['Sequelize'][(_0xed62('0x32'))](_0xed62('0x40'));}}}var _0x4f281d={};_0x4f281d['senderName']=_0x1a645b[_0xed62('0x2f')]['hasOwnProperty'](_0xed62('0x41'))?_0x1a645b[_0xed62('0x2f')][_0xed62('0x41')]:_0x1a645b['user'][_0xed62('0x42')];_0x4f281d[_0xed62('0x43')]=_[_0xed62('0x44')](_0x1a645b[_0xed62('0x2f')]['recipientsDescription'])?null:_0x1a645b[_0xed62('0x2f')][_0xed62('0x43')];_0x4f281d[_0xed62('0x45')]=_0x1a645b['body'][_0xed62('0x45')]||![];_0x4f281d[_0xed62('0x46')]=_0x1a645b[_0xed62('0x3e')]['id'];return getContent(_0x1a645b[_0xed62('0x2f')])[_0xed62('0x2a')](function(_0x4d3484){_0x4f281d['body']=_0x4d3484;return getRecipients(_0x297a38);})['then'](function(_0x3a2c1a){_0x4f281d[_0xed62('0x47')]=_['sortBy'](_0x3a2c1a)['join'](',');return db[_0xed62('0x48')][_0xed62('0x49')](function(_0x19d1ed){return db[_0xed62('0x4a')][_0xed62('0x4b')](_0x4f281d,{'raw':!![],'transaction':_0x19d1ed})['then'](function(_0xc05360){var _0x43ed60={'sender':_0x4f281d[_0xed62('0x41')],'description':_0x4f281d[_0xed62('0x43')],'content':_0x4f281d['body'],'beep':_0x4f281d['beep']};_0x3a2c1a[_0xed62('0x4c')](function(_0x4f58cc){_0x43ed60[_0xed62('0x4d')]=_0x4f58cc;socket[_0xed62('0x4e')](_0xed62('0x4f'),_0x43ed60);});return _0xc05360;});});})[_0xed62('0x2a')](respondWithResult(_0x566f1d,0xc9))[_0xed62('0x50')](handleError(_0x566f1d,null));};function getContent(_0x51ad97){return new BPromise(function(_0x4c74b9,_0x3a7e9b){if(_0x51ad97['text']){_0x4c74b9(_0x51ad97[_0xed62('0x2e')]);return;}return db[_0xed62('0x51')][_0xed62('0x52')]({'attributes':[_0xed62('0x53')],'where':{'id':_0x51ad97[_0xed62('0x30')]},'raw':!![]})[_0xed62('0x2a')](function(_0x5a4144){if(!_0x5a4144)throw new db[(_0xed62('0x31'))]['ValidationError']('Invalid\x20\x27TemplateId\x27\x20parameter');var _0x31545e=Mustache[_0xed62('0x54')](_0x5a4144['html'],_0x51ad97['view']);_0x4c74b9(_0x31545e);})[_0xed62('0x50')](function(_0x5b88ee){_0x3a7e9b(_0x5b88ee);});});}function getRecipients(_0x19cfb1){return new BPromise(function(_0x3cee7f,_0x20e175){var _0x3e922e=[];var _0x411f60=[];_0x19cfb1['forEach'](function(_0x586a80){var _0x38a358=_[_0xed62('0x55')](_0x586a80[_0xed62('0x56')][_0xed62('0x57')]());if(_0x38a358===_0xed62('0x58')){_0x3e922e=_[_0xed62('0x59')](_0x3e922e,_0x586a80[_0xed62('0x5a')]);}else{if(_['includes'](_0x38a358,_0xed62('0x5b')))_0x38a358=_0x38a358[_0xed62('0x5c')](_0xed62('0x5b'),'Queue');_0x586a80['ids'][_0xed62('0x4c')](function(_0x414c6c){_0x411f60[_0xed62('0x5d')](getAgents(_0x38a358,_0x414c6c));});}});return BPromise[_0xed62('0x5e')](_0x411f60)[_0xed62('0x2a')](function(_0x46d029){_0x3e922e=_['union'](_0x3e922e,_[_0xed62('0x5f')](_0x46d029));_0x3cee7f(_0x3e922e);})[_0xed62('0x50')](function(_0x365da4){_0x20e175(_0x365da4);});});}function getAgents(_0x11a791,_0x516fb9){return new BPromise(function(_0x57b72d,_0x147569){return db[_0x11a791][_0xed62('0x52')]({'where':{'id':_0x516fb9}})['then'](function(_0x3f4138){return _0x3f4138[_0xed62('0x60')]({'attributes':['id'],'raw':!![]})[_0xed62('0x2a')](function(_0x570b28){var _0x4c5f59=_[_0xed62('0x61')](_0x570b28,'id');_0x57b72d(_0x4c5f59);});})[_0xed62('0x50')](function(_0x163a7b){_0x147569(_0x163a7b);});});}