* tweaking effect details * wrap work on this feature * adds correct color to drop cursor * simplify logic for early return * much better comment so Tom doesn't fire me * feat: Allow changing sort order of collections * refactor: Move validation to model feat: Make custom order the default (in prep for dnd) * feat: Add sort choice to edit collection modal fix: Improved styling of generic InputSelect * fix: Vertical space left after removing previous collection description * chore: Tweak language, menu contents, add auto-disclosure on sub menus * only show drop-to-reorder cursor when sort is set to manual Co-authored-by: Tom Moor <tom.moor@gmail.com>
54 lines
1.4 KiB
JavaScript
54 lines
1.4 KiB
JavaScript
// @flow
|
|
import { type Context } from "koa";
|
|
import validator from "validator";
|
|
import { validateColorHex } from "../../shared/utils/color";
|
|
import { ParamRequiredError, ValidationError } from "../errors";
|
|
|
|
export default function validation() {
|
|
return function validationMiddleware(ctx: Context, next: () => Promise<*>) {
|
|
ctx.assertPresent = (value, message) => {
|
|
if (value === undefined || value === null || value === "") {
|
|
throw new ParamRequiredError(message);
|
|
}
|
|
};
|
|
|
|
ctx.assertIn = (value, options, message) => {
|
|
if (!options.includes(value)) {
|
|
throw new ValidationError(message);
|
|
}
|
|
};
|
|
|
|
ctx.assertNotEmpty = (value, message) => {
|
|
if (value === "") {
|
|
throw new ValidationError(message);
|
|
}
|
|
};
|
|
|
|
ctx.assertEmail = (value = "", message) => {
|
|
if (!validator.isEmail(value)) {
|
|
throw new ValidationError(message);
|
|
}
|
|
};
|
|
|
|
ctx.assertUuid = (value = "", message) => {
|
|
if (!validator.isUUID(value)) {
|
|
throw new ValidationError(message);
|
|
}
|
|
};
|
|
|
|
ctx.assertPositiveInteger = (value, message) => {
|
|
if (!validator.isInt(String(value), { min: 0 })) {
|
|
throw new ValidationError(message);
|
|
}
|
|
};
|
|
|
|
ctx.assertHexColor = (value, message) => {
|
|
if (!validateColorHex(value)) {
|
|
throw new ValidationError(message);
|
|
}
|
|
};
|
|
|
|
return next();
|
|
};
|
|
}
|