Spaces:
Runtime error
Runtime error
var mongoose = require('mongoose'); | |
var Schema = mongoose.Schema; | |
var VulnerabilityCategorySchema = new Schema( | |
{ | |
name: { type: String, unique: true }, | |
sortValue: { type: String, default: 'cvssScore' }, | |
sortOrder: { type: String, enum: ['desc', 'asc'], default: 'desc' }, | |
sortAuto: { type: Boolean, default: true }, | |
}, | |
{ timestamps: true }, | |
); | |
/* | |
*** Statics *** | |
*/ | |
// Get all vulnerabilityCategorys | |
VulnerabilityCategorySchema.statics.getAll = () => { | |
return new Promise((resolve, reject) => { | |
var query = VulnerabilityCategory.find(); | |
query.select('name sortValue sortOrder sortAuto'); | |
query | |
.exec() | |
.then(rows => { | |
resolve(rows); | |
}) | |
.catch(err => { | |
reject(err); | |
}); | |
}); | |
}; | |
// Create vulnerabilityCategory | |
VulnerabilityCategorySchema.statics.create = vulnerabilityCategory => { | |
return new Promise((resolve, reject) => { | |
var query = new VulnerabilityCategory(vulnerabilityCategory); | |
query | |
.save() | |
.then(row => { | |
resolve(row); | |
}) | |
.catch(err => { | |
if (err.code === 11000) | |
reject({ | |
fn: 'BadParameters', | |
message: 'Vulnerability Category name already exists', | |
}); | |
else reject(err); | |
}); | |
}); | |
}; | |
// Update vulnerabilityCategory | |
VulnerabilityCategorySchema.statics.update = (name, vulnerabilityCategory) => { | |
return new Promise((resolve, reject) => { | |
var query = VulnerabilityCategory.findOneAndUpdate( | |
{ name: name }, | |
vulnerabilityCategory, | |
); | |
query | |
.exec() | |
.then(row => { | |
if (row) resolve(row); | |
else | |
reject({ | |
fn: 'NotFound', | |
message: 'Vulnerability category not found', | |
}); | |
}) | |
.catch(err => { | |
if (err.code === 11000) | |
reject({ | |
fn: 'BadParameters', | |
message: 'Vulnerability Category already exists', | |
}); | |
else reject(err); | |
}); | |
}); | |
}; | |
// Update vulnerability Categories | |
VulnerabilityCategorySchema.statics.updateAll = vulnCategories => { | |
return new Promise((resolve, reject) => { | |
VulnerabilityCategory.deleteMany() | |
.then(row => { | |
VulnerabilityCategory.insertMany(vulnCategories); | |
}) | |
.then(row => { | |
resolve('Vulnerability Categories updated successfully'); | |
}) | |
.catch(err => { | |
reject(err); | |
}); | |
}); | |
}; | |
// Delete vulnerabilityCategory | |
VulnerabilityCategorySchema.statics.delete = name => { | |
return new Promise((resolve, reject) => { | |
VulnerabilityCategory.deleteOne({ name: name }) | |
.then(res => { | |
if (res.deletedCount === 1) resolve('Vulnerability Category deleted'); | |
else | |
reject({ | |
fn: 'NotFound', | |
message: 'Vulnerability Category not found', | |
}); | |
}) | |
.catch(err => { | |
reject(err); | |
}); | |
}); | |
}; | |
/* | |
*** Methods *** | |
*/ | |
var VulnerabilityCategory = mongoose.model( | |
'VulnerabilityCategory', | |
VulnerabilityCategorySchema, | |
); | |
module.exports = VulnerabilityCategory; | |