Request.swift 735 B

123456789101112131415161718192021
  1. import Vapor
  2. import HTTP
  3. public let validQueriesRange: ClosedRange<Int> = 1...500
  4. /// Tests 3 and 5 are parameterized with `queries`.
  5. ///
  6. /// The queries parameter must be bounded to between 1 and 500.
  7. /// If the parameter is missing, is not an integer, or is an integer less than 1,
  8. /// the value should be interpreted as 1; if greater than 500, the value should be interpreted as 500.
  9. ///
  10. /// - Parameter request: HTTP request
  11. /// - Returns: queries
  12. public func queriesParam(for request: Request) -> Int {
  13. let queriesParam = request.query?["queries"]?.int ?? 1
  14. return clamp(queriesParam, to: validQueriesRange)
  15. }
  16. func clamp(_ value: Int, to: ClosedRange<Int>) -> Int {
  17. return max(to.lowerBound, min(to.upperBound, value))
  18. }