simple/
simple.rs

1use skytable::{query, Config};
2
3/// a dummy function to fetch username and password from a request
4fn dummy_web_fetch_username_password() -> (String, String) {
5    ("rickastley".into(), "rick123".into())
6}
7
8fn dummy_respond_to_request(_followers: u64) {}
9
10fn main() {
11    let mut db = Config::new_default("username", "password")
12        .connect()
13        .unwrap();
14
15    // set up schema
16    // create space
17    db.query_parse::<()>(&query!("create space myspace"))
18        .unwrap();
19    // create model
20    db.query_parse::<()>(&query!(
21        "create model myspace.mymodel(username: string, password: string, followers: uint64)"
22    ))
23    .unwrap();
24
25    // manipulate data
26
27    let (form_username, form_pass) = dummy_web_fetch_username_password();
28    // insert some data
29    db.query_parse::<()>(&query!(
30        "insert into myspace.mymodel(?, ?, ?)",
31        &form_username,
32        form_pass,
33        100_000_000u64
34    ))
35    .unwrap();
36
37    // get it back
38    let (password, followers): (String, u64) = db
39        .query_parse(&query!(
40            "select password, followers FROM myspace.mymodel WHERE username = ?",
41            &form_username
42        ))
43        .unwrap();
44    assert_eq!(password, "rick123", "password changed!");
45    // send to our client
46    dummy_respond_to_request(followers);
47
48    // update followers to account for huge numbers who were angry after being rickrolled
49    db.query_parse::<()>(&query!(
50        "update myspace.mymodel SET followers -= ? WHERE username = ?",
51        50_000_000u64,
52        &form_username
53    ))
54    .unwrap();
55
56    // alright, everyone is tired from being rickrolled so we'll have to ban rick's account
57    db.query_parse::<()>(&query!(
58        "delete from myspace.mymodel where username = ?",
59        &form_username
60    ))
61    .unwrap();
62}