summaryrefslogtreecommitdiff
path: root/src/val.rs
blob: 6cc7dfe393c163d07e7b0c8919414961a31a0b49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
mod validator;

use serde::{Serialize, Deserialize};
use serde_json;

use validator::Validator;

#[derive(Deserialize, Serialize)]
struct Profile {
    tg_id: i32,
    fullname: String,
    username: String,
    is_admin: bool,
    is_hidden: bool
}


fn test_validation() -> Result<(), String> {
    let profile = Profile {
        tg_id: 123,
        fullname: String::from("Andrew Guschin"),
        username: String::from("guschin"),
        is_admin: true,
        is_hidden: false
    };

    let request_data = serde_json::to_string(&profile).unwrap();

    let validator = match Validator::from_file("src/schema.json") {
        Ok(val) => val,
        Err(msg) => return Err(msg)
    };
    let result = validator.check(&request_data);
    println!("Is valid: {}", result);

    return Ok(());
}