How to use the express-validator/check.query function in express-validator

To help you get started, we’ve selected a few express-validator examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github librewiki / liberty-engine / lib / routes / v1 / articles / index.js View on Github external
Revision,
  Wikitext,
} = require('../../../models');
const middlewares = require('../../../middlewares');
const Response = require('../../../responses');

const router = express.Router({ mergeParams: true });

router.get(
  '/',
  [
    query('limit')
      .optional()
      .trim()
      .isInt({ min: 1, max: 100 }),
    query('offset')
      .optional()
      .trim()
      .isInt({ min: 0 }),
    query('random')
      .optional(),
    query('order')
      .optional()
      .trim()
      .isIn(['updatedAt']),
  ],
  [
    sanitizeQuery('limit').trim().toInt(),
    sanitizeQuery('offset').trim().toInt(),
    sanitizeQuery('random').trim().toBoolean(), // Everything except for '0', 'false' and '' returns true
    sanitizeQuery('order').trim(),
  ],
github librewiki / liberty-engine / lib / routes / v1 / articles / index.js View on Github external
const Response = require('../../../responses');

const router = express.Router({ mergeParams: true });

router.get(
  '/',
  [
    query('limit')
      .optional()
      .trim()
      .isInt({ min: 1, max: 100 }),
    query('offset')
      .optional()
      .trim()
      .isInt({ min: 0 }),
    query('random')
      .optional(),
    query('order')
      .optional()
      .trim()
      .isIn(['updatedAt']),
  ],
  [
    sanitizeQuery('limit').trim().toInt(),
    sanitizeQuery('offset').trim().toInt(),
    sanitizeQuery('random').trim().toBoolean(), // Everything except for '0', 'false' and '' returns true
    sanitizeQuery('order').trim(),
  ],
  middlewares.validate(),
  async (req, res, next) => {
    const limit = req.query.limit || 10;
    const offset = req.query.offset || 0;
github byteball / ico-bot / server / routes / index.js View on Github external
});

router.get('/init', (req, res) => {
	res.status(200).json({
		tokenName: conf.tokenName
	});
});

const checkCurrencyData = checkQuery('filter_currency').optional().isIn(['all', 'GBYTE', 'BTC', 'ETH', 'USDT']);

router.get('/transactions', [
	checkQuery('page').optional().isInt({min:1}),
	checkQuery('limit').optional().isInt({min:1, max:100}),
	checkQuery('sort').optional().isIn(['currency_amount', 'creation_date']),
	checkQuery('filter_bb_address').optional().trim(),
	checkQuery('filter_receiving_address').optional().trim(),
	checkQuery('filter_txid').optional().trim(),
	checkQuery('filter_stable').optional().trim(),
	checkCurrencyData,
], (req, res) => {
	const objErrors = validationResult(req);
	if (!objErrors.isEmpty()) {
		return res.status(422).json({ errors: objErrors.mapped() });
	}

	const data = matchedData(req);
	// set default data values
	if (!data.page) data.page = 1;
	if (!data.limit) data.limit = 10;
	// prepare income data values
	data.page = Number(data.page);
	data.limit = Number(data.limit);
github librewiki / liberty-engine / lib / routes / v1 / revisions.js View on Github external
const express = require('express');

const router = express.Router({ mergeParams: true });

const {
  param, query, validationResult,
} = require('express-validator/check');
const { sanitizeParam, sanitizeQuery } = require('express-validator/filter');

const { Revision } = require('../../models');
const Response = require('../../responses');

router.get(
  '/',
  [
    query('limit')
      .optional()
      .trim()
      .isInt({ min: 1, max: 50 }),
    query('offset')
      .optional()
      .trim()
      .isInt({ min: 0 }),
    query('distinct')
      .optional(),
  ],
  [
    sanitizeQuery('limit').trim().toInt(),
    sanitizeQuery('offset').trim().toInt(),
    sanitizeQuery('distinct').trim().toBoolean(), // Everything except for '0', 'false' and '' returns true
  ],
  async (req, res, next) => {
github weseek / growi / src / server / routes / apiv3 / user-group.js View on Github external
try {
      const userGroupName = crowi.xss.process(name);
      const userGroup = await UserGroup.createGroupByName(userGroupName);

      return res.apiv3({ userGroup });
    }
    catch (err) {
      const msg = 'Error occurred in creating a user group';
      logger.error(msg, err);
      return res.apiv3Err(new ErrorV3(msg, 'user-group-create-failed'));
    }
  });

  validator.delete = [
    param('id').trim().exists({ checkFalsy: true }),
    query('actionName').trim().exists({ checkFalsy: true }),
    query('transferToUserGroupId').trim(),
  ];

  /**
   * @swagger
   *
   *  paths:
   *    /user-groups/{id}:
   *      delete:
   *        tags: [UserGroup]
   *        description: Deletes userGroup
   *        parameters:
   *          - name: id
   *            in: path
   *            required: true
   *            description: id of userGroup
github byteball / ico-bot / server / routes / index.js View on Github external
conf.database.bReadOnly = true;

router.get('/', (req, res) => {
	res.status(200).json({
		version: process.env.npm_package_version,
		current_time: new Date()
	});
});

router.get('/init', (req, res) => {
	res.status(200).json({
		tokenName: conf.tokenName
	});
});

const checkCurrencyData = checkQuery('filter_currency').optional().isIn(['all', 'GBYTE', 'BTC', 'ETH', 'USDT']);

router.get('/transactions', [
	checkQuery('page').optional().isInt({min:1}),
	checkQuery('limit').optional().isInt({min:1, max:100}),
	checkQuery('sort').optional().isIn(['currency_amount', 'creation_date']),
	checkQuery('filter_bb_address').optional().trim(),
	checkQuery('filter_receiving_address').optional().trim(),
	checkQuery('filter_txid').optional().trim(),
	checkQuery('filter_stable').optional().trim(),
	checkCurrencyData,
], (req, res) => {
	const objErrors = validationResult(req);
	if (!objErrors.isEmpty()) {
		return res.status(422).json({ errors: objErrors.mapped() });
	}
github librewiki / liberty-engine / lib / routes / v1 / discussion-topics.js View on Github external
const { query } = require('express-validator/check');
const { sanitizeQuery } = require('express-validator/filter');
const {
  DiscussionTopic,
  DiscussionComment,
} = require('../../models');
const Response = require('../../responses');
const middlewares = require('../../middlewares');

const router = express.Router({ mergeParams: true });


router.get(
  '/',
  [
    query('limit')
      .optional()
      .trim()
      .isInt({ min: 1, max: 30 }),
    query('order')
      .optional()
      .trim()
      .isIn(['updatedAt']),
  ],
  [
    sanitizeQuery('limit').toInt(),
    sanitizeQuery('order').trim(),
  ],
  middlewares.validate(),
  async (req, res, next) => {
    try {
      const limit = req.query.limit || 10;
github librewiki / liberty-engine / lib / routes / v1 / blocks.js View on Github external
ipEnd,
          reason,
          expiration,
        });
      }
      return new Response.Success().send(res);
    } catch (err) {
      return next(err);
    }
  },
);

router.get(
  '/',
  [
    query('containing')
      .optional()
      .trim()
      .isIP(),
    query('userId')
      .optional()
      .trim()
      .isInt(),
  ],
  [
    sanitizeQuery('containing').trim(),
    sanitizeQuery('userId').trim().toInt(),
  ],
  middlewares.validate(),
  async ({ query: { containing, userId } }, res, next) => {
    try {
      const scopes = ['valid'];
github librewiki / liberty-engine / lib / routes / v1 / users / index.js View on Github external
const express = require('express');
const { Op } = require('sequelize');
const { query, body, param } = require('express-validator/check');
const { sanitizeQuery, sanitizeBody, sanitizeParam } = require('express-validator/filter');
const { User, Namespace } = require('../../../models');
const Response = require('../../../responses');
const middlewares = require('../../../middlewares');
const { GET_USER_LIST } = require('../../../SpecialPermissions');

const router = express.Router({ mergeParams: true });

router.get(
  '/',
  [
    query('startingWith')
      .optional()
      .trim()
      .custom(v => User.validateUsername(v)),
    query('username')
      .optional()
      .trim()
      .custom(v => User.validateUsername(v)),
    query('limit')
      .optional()
      .trim()
      .isInt({ min: 1, max: 100 }),
  ],
  [
    sanitizeQuery('startingWith').trim(),
    sanitizeQuery('username').trim(),
    sanitizeQuery('limit').trim().toInt(),
github thedevs-network / tgdr / server / utils / validators.ts View on Github external
.withMessage('Category does not exist.'),
  query('limit')
    .optional()
    .custom(value => Number(value) < 50)
    .withMessage('Limit should be a number less than 20.'),
  query('sort')
    .optional()
    .custom(value => value === 'hot' || value === 'new' || value === 'top')
    .withMessage('Sort should be one of top, hot or new.'),
  query('status')
    .optional()
    .custom(
      value => value === 'active' || value === 'pending' || value === 'rejected'
    )
    .withMessage('Status should be one of active, pending or rejected.'),
  query('type')
    .optional()
    .custom(
      value => value === 'channel' || value === 'bot' || value === 'supergroup'
    )
    .withMessage('Type should be one of channel, bot or supergroup.'),
];

export const reviewValidator = [
  body('disliked')
    .optional()
    .custom(value => typeof value === 'boolean')
    .withMessage('Disliekd must be boolean.')
    .custom((_v, { req }) => (req.body.disliked ? !req.body.liked : true))
    .withMessage('Can not both like and dislike an entry.'),
  body('liked')
    .optional()