Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
import Config from '../../Config';
import catchErrors from '../../utils/catchErrors';
import { CREATED } from 'http-status-codes';
import getAuthUserAndPermissions from '../../../../utils/jwt/getAuthUserAndPermissions';
import hasPermission from '../../../../utils/jwt/hasPermission';
import { CAN_CREATE_COMMENT, TEXT_FIELD_LENGTH } from '../../../../utils/constants';
import { maxLength } from '../../../../utils/validate';
import { maybe, required, checkType, composeRules, restrictToSchema } from 'rulr';
const validateCreateComment = maybe(composeRules([
restrictToSchema({
user_id: required(checkType(Number)),
post_id: required(checkType(Number)),
body: required(maxLength(TEXT_FIELD_LENGTH)),
})
]));
export default (config: Config) => {
return catchErrors(config, async (req, res) => {
const { permissions } = await getAuthUserAndPermissions({req, service: config.service});
hasPermission({permissions, permissionName: CAN_CREATE_COMMENT});
validateCreateComment(req.body, ['comment']);
import Config from '../../Config';
import catchErrors from '../../utils/catchErrors';
import { OK } from 'http-status-codes';
import getAuthUserAndPermissions from '../../../../utils/jwt/getAuthUserAndPermissions';
import hasPermission from '../../../../utils/jwt/hasPermission';
import { CAN_GET_USERS } from '../../../../utils/constants';
import { maybe, optional, checkType, restrictToSchema } from 'rulr';
import { isValidSortObject } from '../../../../utils/validate';
const validateGetUsers = maybe(
restrictToSchema({
limit: optional(checkType(String)),
offset: optional(checkType(String)),
sort: optional(isValidSortObject())
}),
);
export default (config: Config) => {
return catchErrors(config, async (req, res) => {
const { permissions } = await getAuthUserAndPermissions({req, service: config.service});
hasPermission({ permissions, permissionName: CAN_GET_USERS});
validateGetUsers(req.query,['users']);
import Config from '../../Config';
import catchErrors from '../../utils/catchErrors';
import { OK } from 'http-status-codes';
import getAuthUserAndPermissions from '../../../../utils/jwt/getAuthUserAndPermissions';
import hasPermission from '../../../../utils/jwt/hasPermission';
import { CAN_UPDATE_USER } from '../../../../utils/constants';
import { minLength, isEmail, validateMatchingPasswords } from '../../../../utils/validate';
import { maybe, optional, checkType, composeRules, first, restrictToSchema }from 'rulr';
import * as R from 'ramda';
const validateUpdateUser = maybe(composeRules([
restrictToSchema({
firstname: optional(checkType(String)),
lastname: optional(checkType(String)),
bio: optional(checkType(String)),
email: optional(isEmail),
password: optional(minLength(6)),
password_confirmation: optional(checkType(String)),
}),
first(checkType(Object), optional(validateMatchingPasswords))
]));
export default (config: Config) => {
return catchErrors(config, async (req, res) => {
const { permissions } = await getAuthUserAndPermissions({req, service: config.service});
import Config from '../../Config';
import catchErrors from '../../utils/catchErrors';
import { Request, Response } from 'express';
import { OK } from 'http-status-codes';
import getAuthUserAndPermissions from '../../../../utils/jwt/getAuthUserAndPermissions';
import hasPermission from '../../../../utils/jwt/hasPermission';
import { CAN_GET_POSTS } from '../../../../utils/constants';
import { maybe, optional, checkType, restrictToSchema }from 'rulr';
import { isValidSortObject } from '../../../../utils/validate';
const validateGetPosts = maybe(
restrictToSchema({
limit: optional(checkType(String)),
offset: optional(checkType(String)),
sort: optional(isValidSortObject())
}),
);
export default (config: Config) => {
return catchErrors(config, async (req, res) => {
const { permissions } = await getAuthUserAndPermissions({req, service: config.service});
hasPermission({ permissions, permissionName: CAN_GET_POSTS});
validateGetPosts(req.query,['posts']);
if (ifi.key === 'mbox_sha1sum') {
return validateSha1(ifi.value, valuePath);
}
if (ifi.key === 'openid') {
return validateIri(ifi.value, valuePath);
}
if (ifi.key === 'account') {
return restrictToSchema({
homePage: required(validateIri),
name: required(checkType(String))
})(ifi.value, valuePath);
}
return ['invalid key'];
};
export default maybe(validateIfi);