Spaces:
Runtime error
Runtime error
var mongoose = require('mongoose'); | |
var Schema = mongoose.Schema; | |
var ImageSchema = new Schema( | |
{ | |
auditId: { type: Schema.Types.ObjectId, ref: 'Audit' }, | |
value: { type: String, required: true, unique: true }, | |
name: String, | |
}, | |
{ timestamps: true }, | |
); | |
/* | |
*** Statics *** | |
*/ | |
// Get one image | |
ImageSchema.statics.getOne = imageId => { | |
return new Promise((resolve, reject) => { | |
var query = Image.findById(imageId); | |
query.select('auditId value name'); | |
query | |
.exec() | |
.then(row => { | |
if (row) resolve(row); | |
else throw { fn: 'NotFound', message: 'Image not found' }; | |
}) | |
.catch(err => { | |
reject(err); | |
}); | |
}); | |
}; | |
// Create image | |
ImageSchema.statics.create = image => { | |
return new Promise((resolve, reject) => { | |
var query = Image.findOne({ value: image.value }); | |
query | |
.exec() | |
.then(row => { | |
if (row) return row; | |
query = new Image(image); | |
return query.save(); | |
}) | |
.then(row => { | |
resolve({ _id: row._id }); | |
}) | |
.catch(err => { | |
console.log(err); | |
reject(err); | |
}); | |
}); | |
}; | |
// Delete image | |
ImageSchema.statics.delete = imageId => { | |
return new Promise((resolve, reject) => { | |
var query = Image.findByIdAndDelete(imageId); | |
query | |
.exec() | |
.then(rows => { | |
if (rows) resolve(rows); | |
else reject({ fn: 'NotFound', message: 'Image not found' }); | |
}) | |
.catch(err => { | |
reject(err); | |
}); | |
}); | |
}; | |
/* | |
*** Methods *** | |
*/ | |
var Image = mongoose.model('Image', ImageSchema); | |
Image.syncIndexes(); | |
module.exports = Image; | |