Spaces:
Runtime error
Runtime error
var mongoose = require('mongoose'); | |
var Schema = mongoose.Schema; | |
var LanguageSchema = new Schema( | |
{ | |
language: { type: String, unique: true }, | |
locale: { type: String, unique: true }, | |
}, | |
{ timestamps: true }, | |
); | |
/* | |
*** Statics *** | |
*/ | |
// Get all languages | |
LanguageSchema.statics.getAll = () => { | |
return new Promise((resolve, reject) => { | |
var query = Language.find(); | |
query.select('-_id language locale'); | |
query | |
.exec() | |
.then(rows => { | |
resolve(rows); | |
}) | |
.catch(err => { | |
reject(err); | |
}); | |
}); | |
}; | |
// Create language | |
LanguageSchema.statics.create = language => { | |
return new Promise((resolve, reject) => { | |
var query = new Language(language); | |
query | |
.save() | |
.then(row => { | |
resolve(row); | |
}) | |
.catch(err => { | |
if (err.code === 11000) | |
reject({ fn: 'BadParameters', message: 'Language already exists' }); | |
else reject(err); | |
}); | |
}); | |
}; | |
// Update languages | |
LanguageSchema.statics.updateAll = languages => { | |
return new Promise((resolve, reject) => { | |
Language.deleteMany() | |
.then(row => { | |
Language.insertMany(languages); | |
}) | |
.then(row => { | |
resolve('Languages updated successfully'); | |
}) | |
.catch(err => { | |
reject(err); | |
}); | |
}); | |
}; | |
// Delete language | |
LanguageSchema.statics.delete = locale => { | |
return new Promise((resolve, reject) => { | |
Language.deleteOne({ locale: locale }) | |
.then(res => { | |
if (res.deletedCount === 1) resolve('Language deleted'); | |
else reject({ fn: 'NotFound', message: 'Language not found' }); | |
}) | |
.catch(err => { | |
reject(err); | |
}); | |
}); | |
}; | |
/* | |
*** Methods *** | |
*/ | |
var Language = mongoose.model('Language', LanguageSchema); | |
module.exports = Language; | |