chore: preparing for the move
This commit is contained in:
24
curriculum/mongoIds.js
Normal file
24
curriculum/mongoIds.js
Normal file
@ -0,0 +1,24 @@
|
||||
import _ from 'lodash';
|
||||
import { isMongoId } from 'validator';
|
||||
|
||||
class MongoIds {
|
||||
constructor() {
|
||||
this.knownIds = [];
|
||||
}
|
||||
check(id, title) {
|
||||
if (!isMongoId(id)) {
|
||||
throw new Error(`Expected a valid ObjectId for ${title}, but got ${id}`);
|
||||
}
|
||||
const idIndex = _.findIndex(this.knownIds, existing => id === existing);
|
||||
if (idIndex !== -1) {
|
||||
throw new Error(`
|
||||
All challenges must have a unique id.
|
||||
|
||||
The id for ${title} is already assigned
|
||||
`);
|
||||
}
|
||||
this.knownIds = [ ...this.knownIds, id ];
|
||||
}
|
||||
}
|
||||
|
||||
export default MongoIds;
|
Reference in New Issue
Block a user