26 lines
612 B
TypeScript
26 lines
612 B
TypeScript
import joi from '@hapi/joi';
|
|
|
|
export default class IdValidate {
|
|
private static id = joi.string().pattern(new RegExp('[0-9a-f]{24}')).length(24);
|
|
|
|
static get () {
|
|
return this.id;
|
|
}
|
|
|
|
static valid (id) {
|
|
return this.id.validate(id).error === undefined;
|
|
}
|
|
|
|
static parameter () { // :id url parameter
|
|
return ':id([0-9a-f]{24})';
|
|
}
|
|
|
|
static stringify (data) {
|
|
Object.keys(data).forEach(key => {
|
|
if (data[key] !== null && data[key].hasOwnProperty('_bsontype') && data[key]._bsontype === 'ObjectID') {
|
|
data[key] = data[key].toString();
|
|
}
|
|
});
|
|
return data;
|
|
}
|
|
} |