code: def handle_request(request, validator_map, **kwargs):
      
      request_data = {}
      validation_pairs = []
  
      for validator, values in [
          (validator_map.query, request.query),
          (validator_map.path, request.path),
          (validator_map.form, request.form),
          (validator_map.headers, request.headers),
      ]:
          values = cast_params(validator.schema, values)
          validation_pairs.append((validator, values))
          request_data.update(values)
  
      # Body is a special case because the key for the request_data comes
      # from the name in the schema, instead of keys in the values
      if validator_map.body.schema:
          param_name = validator_map.body.schema['name']
          validation_pairs.append((validator_map.body, request.body))
          request_data[param_name] = request.body
  
      validate_request(validation_pairs)
  
      return request_data
docs: Validate the request against the swagger spec and return a dict with
      all parameter values available in the request, casted to the expected
      python type.
  
      :param request: a :class:`PyramidSwaggerRequest` to validate
      :param validator_map: a :class:`pyramid_swagger.load_schema.ValidatorMap`
          used to validate the request
      :returns: a :class:`dict` of request data for each parameter in the swagger
          spec
      :raises: RequestValidationError when the request is not valid for the
          swagger spec