https://github.com/khalyomede/request
Function to validate request data for V.
https://github.com/khalyomede/request
data function request validate vlang
Last synced: 4 months ago
JSON representation
Function to validate request data for V.
- Host: GitHub
- URL: https://github.com/khalyomede/request
- Owner: khalyomede
- License: mit
- Created: 2021-05-25T18:24:11.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-05-25T19:40:57.000Z (about 5 years ago)
- Last Synced: 2025-09-01T09:59:18.290Z (10 months ago)
- Topics: data, function, request, validate, vlang
- Language: V
- Homepage:
- Size: 5.86 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# request
Function to validate request data for V.
## Summary
- [About](#about)
- [Features](#features)
- [Installation](#installation)
- [Examples](#examples)
- [Available rules](#available-rules)
- [Test](#test)
## About
I created this library to validate request data from my end user form submission for my web apps.
## Features
- Provide a function to validate a `map[string]string` against some rules
## Installation
```v
v install khalyomede.request
```
## Examples
- [1. Process failures](#1-process-failures)
- [2. Use multiple rules for a key](#2-use-multiple-rules-for-a-key)
- [3. Validate a key is required](#3-validate-a-key-is-required)
- [4. Validate a key is filled](#4-validate-a-key-is-filled)
- [5. Validate a key is a boolean](#5-validate-a-key-is-a-boolean)
### 1. Process failures
In this example, we will see a basic usage, and see how to iterate on failures.
```v
import khalyomede.request { Rule, ValidationRule }
fn main() {
request_data := {
"name": "John",
}
failures := request.validate(request_data, {
"name": [
ValidationRule{ rule: Rule.required },
]
})
for request_key, failed_rules in failures {
for failed_rule in failed_rules {
message := match failed_rule.rule {
.required {
'The field $request_key is required.'
}
.filled {
'The field $request_key must be filled.'
}
.boolean {
'The field $request_key must be a boolean.'
}
}
println(message)
}
}
}
```
### 2. Use multiple rules for a key
In this example, we will see how to validate a key against multiple rules.
```v
import khalyomede.request { Rule, ValidationRule }
fn main() {
request_data := {
"name": "John",
}
failures := request.validate(request_data, {
"name": [
ValidationRule{ rule: Rule.required },
ValidationRule{ rule: Rule.filled },
]
})
assert failures.len == 0
}
```
### 3. Validate a key is required
In this example, we will validate that a key is present in the request data.
```v
import khalyomede.request { Rule, ValidationRule }
fn main() {
request_data := {
"name": "John",
}
failures := request.validate(request_data, {
"name": [
ValidationRule{ rule: Rule.required },
]
})
assert failures.len == 0
}
```
### 4. Validate a key is filled
In this example, we will validate that a key is not empty.
```v
import khalyomede.request
fn main() {
request_data := {
"name": "John",
}
failures := request.validate(request_data, {
"name": [
ValidationRule{ rule: Rule.filled },
]
})
assert failures.len == 0
}
```
### 5. Validate a key is a boolean
In this example, we will assert a key value is either "0", "1", or "" (suitable for `` values).
```v
import khalyomede.request
fn main() {
request_data := {
"remember_me": "1",
}
failures := request.validate(request_data, {
"name": [
ValidationRule{ rule: Rule.boolean },
]
})
assert failures.len == 0
}
```
## Available rules
Check "src/test/validate" folder for a list of available rule as well as code examples.
## Test
```v
v test test/
```