edit: function(req, res) { let co = new ControllerOut(res); const operator = TokenService.getToken(req); let params = req.allParams(); let getDataTypePrivilege = BluebirdPromise.promisify(DataTypeService.getDataTypePrivilege); return BluebirdPromise.props({ // group: Group.findOne({id: params.groupId}), groups: GroupService.getAsync(!operator.isWheel ? operator.adminGroups : null), // retrieve all dataTypes not yet authorized for this group dataTypes: DataTypeService.getDataTypesToCreateNewPrivileges(params.groupId), // dataType: DataTypeService.getDataTypeToEditPrivileges(params.id), dataTypePrivilege: getDataTypePrivilege(params.id) }) .then(function(result) { sails.log(result); return res.json(result); }) .catch(/* istanbul ignore next */ function(err) { sails.log.error(err); return co.error(err); }); }
update: function(req, res) { let co = new ControllerOut(res); let validationSchema = { id: Joi.number().integer().positive().required(), group: Joi.number().integer().positive().required(), dataType: Joi.number().integer().positive().required(), privilegeLevel: Joi.string().valid(_.values(DataTypePrivilegeLevels)), createdAt: Joi.date(), updatedAt: Joi.date() }; let payload = req.body; Joi.validateAsync(payload, validationSchema) .then(function(validatedBody) { return DataTypePrivileges.update({id: validatedBody.id}, validatedBody); }) .then(function(result) { return res.json(result); }) .catch(function(err) { sails.log("DataTypePrivilegesController.update - got some error while updating existing data type privileges"); return co.error(err); }); },
update: function(req, res) { const co = new ControllerOut(res); coroutines.update(req, res) .catch(err => { sails.log.error(err); return co.error(err); }); },
find: function(req, res) { const co = new ControllerOut(res); coroutines.find(req, res) .catch(/* istanbul ignore next */ function(err) { sails.log.error(err); return co.error(err); }); },
edit: function(req, res) { let co = new ControllerOut(res); coroutines.edit(req,res) .catch(/* istanbul ignore next */ function(err) { sails.log(err); return co.error(err); }); },
destroy: function(req, res) { let co = new ControllerOut(res); let id = req.param('id'); DataTypePrivileges.destroy(id) .then(function(results) { return res.json({deleted: results && results.length}); }) .catch(/* istanbul ignore next */ function(err) { sails.log.error(err); return co.error(err); }); },
find: function(req, res) { const co = new ControllerOut(res); let query = DataTypePrivileges.find() .where(actionUtil.parseCriteria(req)) .limit(actionUtil.parseLimit(req)) .skip(actionUtil.parseSkip(req)) .sort(actionUtil.parseSort(req)); query = actionUtil.populateRequest(query, req); query.then(function(data) { res.json(data); }) .catch(function(err) { return co.error(err); }); },
findOne: function(req, res) { let co = new ControllerOut(res); let id = req.param('id'); let query = DataTypePrivileges.findOne(id); query = actionUtil.populateRequest(query, req); query.then(function(result) { return res.json(result); }) .catch(/* istanbul ignore next */ function(err) { sails.log.error(err); return co.error(err); }); },
this.download = function downloadFileContent(req, res) { let dataFile, idDataType; let co = new ControllerOut(res); let fileId = _.parseInt(req.param('id')); let fileSystem = BluebirdPromise.promisifyAll(sails.hooks['persistence'].getFileSystem().manager); const operator = TokenService.getToken(req); DataFile.findOne(fileId).populate('data').populate('samples').then(result => { dataFile = result; dataFile.data[0] ? idDataType = dataFile.data[0].type : dataFile.samples[0] ? idDataType = dataFile.samples[0].type : undefined; return DataTypeService.getDataTypePrivilegeLevel(operator.groups, idDataType); }) .then(dataTypePrivilege => { if(!dataTypePrivilege || (dataTypePrivilege.privilegeLevel !== DOWNLOAD && dataTypePrivilege.privilegeLevel !== EDIT)){ throw new PrivilegesError(`Authenticated user has not download privileges on the data type ${dataFile.data.id}`); } sails.log.info("downloadFileContent - dataFile"); sails.log.info(dataFile); let pathFrags = dataFile.uri.split("/"); let fileName = pathFrags[pathFrags.length-1]; // set response headers for file download res.setHeader('Content-Disposition', `attachment;filename=${fileName}`); return fileSystem.downloadFileContentAsync(dataFile.uri, res); }) .then(result => { return res.ok(); // res.json() ?? }) .catch(/* istanbul ignore next */ function(err) { return co.error(err); }); };
create: function(req, res) { let co = new ControllerOut(res); let validationSchema = { group: Joi.number().integer().positive().required(), dataType: Joi.number().integer().positive().required(), privilegeLevel: Joi.string().valid(_.values(DataTypePrivilegeLevels)) }; Joi.validateAsync(req.body, validationSchema) .then(function(validatedBody) { return DataTypePrivileges.create(validatedBody); }) .then(function(result) { res.set('Location', req.baseUrl + req.url + '/' + result.id); return res.json(201, result); }) .catch(/* istanbul ignore next */ function(err) { sails.log.error("DataTypePrivilegesController.create - got some error while creating new data type privileges"); return co.error(err); }); },
.catch(/* istanbul ignore next */ function(err) { sails.log(err); return co.error(err); });
.catch(err => { sails.log.error(err); return co.error(err); });
.catch(function(err) { return co.error(err); });
.catch(/* istanbul ignore next */ function(err) { sails.log.error("DataTypePrivilegesController.create - got some error while creating new data type privileges"); return co.error(err); });
.catch(function(err) { sails.log("DataTypePrivilegesController.update - got some error while updating existing data type privileges"); return co.error(err); });
.catch(/* istanbul ignore next */ function(err) { return co.error(err); });