Built motion from commit 3c2ce842.|2.6.31
[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 _0x6b50=['error','stack','status','send','sendUserNotification','body','hasOwnProperty','text','TemplateId','Sequelize','ValidationError','view','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','smsqueue','voicequeue','whatsappqueue','team','senderName','user','recipientsDescription','beep','SenderId','sortBy','join','sequelize','transaction','UserNotification','create','forEach','recipient','catch','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','startCase','model','User','union','ids','includes','queue','replace','Queue','all','flatten','map','rimraf','fast-json-patch','request-promise','bluebird','mustache','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','redis','localhost','socket.io-emitter','./userNotification.socket','register','sendStatus','undefined','limit','count','offset','Content-Range','json','apply','reject','update','then'];(function(_0x5f309e,_0x66e31){var _0x487b5e=function(_0x44f203){while(--_0x44f203){_0x5f309e['push'](_0x5f309e['shift']());}};_0x487b5e(++_0x66e31);}(_0x6b50,0x195));var _0x06b5=function(_0x423aeb,_0x4a57a6){_0x423aeb=_0x423aeb-0x0;var _0xf4da60=_0x6b50[_0x423aeb];return _0xf4da60;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x06b5('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x06b5('0x1'));var rp=require(_0x06b5('0x2'));var moment=require('moment');var BPromise=require(_0x06b5('0x3'));var Mustache=require(_0x06b5('0x4'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x06b5('0x5'));var ejs=require(_0x06b5('0x6'));var fs=require('fs');var fs_extra=require(_0x06b5('0x7'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x06b5('0x8'));var jsforce=require(_0x06b5('0x9'));var deskjs=require(_0x06b5('0xa'));var toCsv=require(_0x06b5('0x5'));var querystring=require(_0x06b5('0xb'));var Papa=require('papaparse');var Redis=require(_0x06b5('0xc'));var authService=require('../../components/auth/service');var qs=require(_0x06b5('0xd'));var as=require(_0x06b5('0xe'));var hardwareService=require(_0x06b5('0xf'));var logger=require(_0x06b5('0x10'))(_0x06b5('0x11'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x06b5('0x12'));var db=require('../../mysqldb')['db'];config[_0x06b5('0x13')]=_['defaults'](config[_0x06b5('0x13')],{'host':_0x06b5('0x14'),'port':0x18eb});var socket=require(_0x06b5('0x15'))(new Redis(config['redis']));require(_0x06b5('0x16'))[_0x06b5('0x17')](socket);function respondWithStatusCode(_0x17ef10,_0x280d83){_0x280d83=_0x280d83||0xcc;return function(_0xf7235a){if(_0xf7235a){return _0x17ef10[_0x06b5('0x18')](_0x280d83);}return _0x17ef10['status'](_0x280d83)['end']();};}function respondWithResult(_0x3ef208,_0x51c33d){_0x51c33d=_0x51c33d||0xc8;return function(_0x295c84){if(_0x295c84){return _0x3ef208['status'](_0x51c33d)['json'](_0x295c84);}};}function respondWithFilteredResult(_0x1e7868,_0x206f69){return function(_0x2786e0){if(_0x2786e0){var _0x55f8ea=typeof _0x206f69['offset']===_0x06b5('0x19')&&typeof _0x206f69[_0x06b5('0x1a')]==='undefined';var _0x4422fa=_0x2786e0[_0x06b5('0x1b')];var _0x180b04=_0x55f8ea?0x0:_0x206f69[_0x06b5('0x1c')];var _0x2c698a=_0x55f8ea?_0x2786e0['count']:_0x206f69['offset']+_0x206f69[_0x06b5('0x1a')];var _0x1ebb8a;if(_0x2c698a>=_0x4422fa){_0x2c698a=_0x4422fa;_0x1ebb8a=0xc8;}else{_0x1ebb8a=0xce;}_0x1e7868['status'](_0x1ebb8a);return _0x1e7868['set'](_0x06b5('0x1d'),_0x180b04+'-'+_0x2c698a+'/'+_0x4422fa)[_0x06b5('0x1e')](_0x2786e0);}return null;};}function patchUpdates(_0x158f3b){return function(_0xde09da){try{jsonpatch[_0x06b5('0x1f')](_0xde09da,_0x158f3b,!![]);}catch(_0x3a4cfa){return BPromise[_0x06b5('0x20')](_0x3a4cfa);}return _0xde09da['save']();};}function saveUpdates(_0x8e8d77,_0x5dcdcf){return function(_0xe33370){if(_0xe33370){return _0xe33370[_0x06b5('0x21')](_0x8e8d77)[_0x06b5('0x22')](function(_0x52d50a){return _0x52d50a;});}return null;};}function removeEntity(_0x7d12d3,_0x58f4b4){return function(_0x3f0f47){if(_0x3f0f47){return _0x3f0f47['destroy']()[_0x06b5('0x22')](function(){_0x7d12d3['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x48d247,_0x56e9d9){return function(_0x38f3be){if(!_0x38f3be){_0x48d247['sendStatus'](0x194);}return _0x38f3be;};}function handleError(_0x1c72de,_0x4fa26d){_0x4fa26d=_0x4fa26d||0x1f4;return function(_0x297363){logger[_0x06b5('0x23')](_0x297363[_0x06b5('0x24')]);if(_0x297363['name']){delete _0x297363['name'];}_0x1c72de[_0x06b5('0x25')](_0x4fa26d)[_0x06b5('0x26')](_0x297363);};}exports[_0x06b5('0x27')]=function(_0x4fbe91,_0x4ac379,_0x13c267){if(!_0x4fbe91[_0x06b5('0x28')][_0x06b5('0x29')](_0x06b5('0x2a'))&&!_0x4fbe91[_0x06b5('0x28')][_0x06b5('0x29')](_0x06b5('0x2b'))){throw new db[(_0x06b5('0x2c'))][(_0x06b5('0x2d'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x4fbe91[_0x06b5('0x28')][_0x06b5('0x29')](_0x06b5('0x2b'))&&!_0x4fbe91[_0x06b5('0x28')]['hasOwnProperty'](_0x06b5('0x2e'))){throw new db['Sequelize'][(_0x06b5('0x2d'))]('Missing\x20\x27view\x27\x20parameter');}if(!_0x4fbe91[_0x06b5('0x28')][_0x06b5('0x29')](_0x06b5('0x2f'))){throw new db[(_0x06b5('0x2c'))]['ValidationError'](_0x06b5('0x30'));}else{try{var _0xec3ed3=JSON[_0x06b5('0x31')](_0x4fbe91[_0x06b5('0x28')][_0x06b5('0x2f')]);}catch(_0x16ba0f){logger[_0x06b5('0x23')](_0x16ba0f);throw new db['Sequelize'][(_0x06b5('0x2d'))](_0x06b5('0x32'));}var _0x41e224=[_0x06b5('0x33'),_0x06b5('0x34'),_0x06b5('0x35'),'openchannelqueue',_0x06b5('0x36'),_0x06b5('0x37'),_0x06b5('0x38'),_0x06b5('0x39'),'user'];if(_['some'](_0xec3ed3,function(_0x2fcd44){return!_['includes'](_0x41e224,_0x2fcd44['model']['toLowerCase']());})){throw new db['Sequelize']['ValidationError']('Invalid\x20model\x20in\x20\x27recipients\x27\x20object');}}}var _0x41483c={};_0x41483c[_0x06b5('0x3a')]=_0x4fbe91[_0x06b5('0x28')]['hasOwnProperty'](_0x06b5('0x3a'))?_0x4fbe91[_0x06b5('0x28')][_0x06b5('0x3a')]:_0x4fbe91[_0x06b5('0x3b')]['fullname'];_0x41483c['recipientsDescription']=_['isEmpty'](_0x4fbe91['body'][_0x06b5('0x3c')])?null:_0x4fbe91[_0x06b5('0x28')][_0x06b5('0x3c')];_0x41483c[_0x06b5('0x3d')]=_0x4fbe91[_0x06b5('0x28')][_0x06b5('0x3d')]||![];_0x41483c[_0x06b5('0x3e')]=_0x4fbe91[_0x06b5('0x3b')]['id'];return getContent(_0x4fbe91[_0x06b5('0x28')])['then'](function(_0x3f5570){_0x41483c[_0x06b5('0x28')]=_0x3f5570;return getRecipients(_0xec3ed3);})[_0x06b5('0x22')](function(_0x43bb6e){_0x41483c['recipientsId']=_[_0x06b5('0x3f')](_0x43bb6e)[_0x06b5('0x40')](',');return db[_0x06b5('0x41')][_0x06b5('0x42')](function(_0x3bf954){return db[_0x06b5('0x43')][_0x06b5('0x44')](_0x41483c,{'raw':!![],'transaction':_0x3bf954})['then'](function(_0x509d86){var _0x5755e7={'sender':_0x41483c[_0x06b5('0x3a')],'description':_0x41483c[_0x06b5('0x3c')],'content':_0x41483c[_0x06b5('0x28')],'beep':_0x41483c[_0x06b5('0x3d')]};_0x43bb6e[_0x06b5('0x45')](function(_0x2b6e49){_0x5755e7[_0x06b5('0x46')]=_0x2b6e49;socket['emit']('userNotification:send',_0x5755e7);});return _0x509d86;});});})[_0x06b5('0x22')](respondWithResult(_0x4ac379,0xc9))[_0x06b5('0x47')](handleError(_0x4ac379,null));};function getContent(_0x51cee9){return new BPromise(function(_0x11e98a,_0x32ef2d){if(_0x51cee9[_0x06b5('0x2a')]){_0x11e98a(_0x51cee9[_0x06b5('0x2a')]);return;}return db[_0x06b5('0x48')][_0x06b5('0x49')]({'attributes':[_0x06b5('0x4a')],'where':{'id':_0x51cee9[_0x06b5('0x2b')]},'raw':!![]})[_0x06b5('0x22')](function(_0x24b97c){if(!_0x24b97c)throw new db[(_0x06b5('0x2c'))][(_0x06b5('0x2d'))](_0x06b5('0x4b'));var _0x527c41=Mustache['render'](_0x24b97c[_0x06b5('0x4a')],_0x51cee9[_0x06b5('0x2e')]);_0x11e98a(_0x527c41);})['catch'](function(_0x248957){_0x32ef2d(_0x248957);});});}function getRecipients(_0x102b9e){return new BPromise(function(_0x2f8652,_0x1c1c31){var _0x36d652=[];var _0xecbbc8=[];_0x102b9e[_0x06b5('0x45')](function(_0x19dae3){var _0x4f09e7=_[_0x06b5('0x4c')](_0x19dae3[_0x06b5('0x4d')]['toLowerCase']());if(_0x4f09e7===_0x06b5('0x4e')){_0x36d652=_[_0x06b5('0x4f')](_0x36d652,_0x19dae3[_0x06b5('0x50')]);}else{if(_[_0x06b5('0x51')](_0x4f09e7,_0x06b5('0x52')))_0x4f09e7=_0x4f09e7[_0x06b5('0x53')](_0x06b5('0x52'),_0x06b5('0x54'));_0x19dae3[_0x06b5('0x50')][_0x06b5('0x45')](function(_0x5a06c1){_0xecbbc8['push'](getAgents(_0x4f09e7,_0x5a06c1));});}});return BPromise[_0x06b5('0x55')](_0xecbbc8)[_0x06b5('0x22')](function(_0x39d318){_0x36d652=_[_0x06b5('0x4f')](_0x36d652,_[_0x06b5('0x56')](_0x39d318));_0x2f8652(_0x36d652);})[_0x06b5('0x47')](function(_0x5da4bc){_0x1c1c31(_0x5da4bc);});});}function getAgents(_0x2694c8,_0x3a9387){return new BPromise(function(_0x59bc39,_0x2f5beb){return db[_0x2694c8][_0x06b5('0x49')]({'where':{'id':_0x3a9387}})[_0x06b5('0x22')](function(_0x20acc3){return _0x20acc3['getAgents']({'attributes':['id'],'raw':!![]})[_0x06b5('0x22')](function(_0x42e180){var _0x5eb85a=_[_0x06b5('0x57')](_0x42e180,'id');_0x59bc39(_0x5eb85a);});})[_0x06b5('0x47')](function(_0x8b2407){_0x2f5beb(_0x8b2407);});});}