toql_rocket 0.1.0

Library with rocket integration for toql
Documentation

Rocket integration of Toql. This contains

  • A high level function to query Toql structs.
  • Query parameters.
  • Support to add counting information to HTTP response headers

This allows to query Toql structs like this

#[macro_use]
extern crate rocket;
#[macro_use]
extern crate rocket_contrib;

use toql::sql_mapper::SqlMapperCache;
use toql::rocket::{ToqlQuery, Counted};
use rocket::request::Form;
use myql::Conn;
use rocket_contrib::json::Json;
use toql::rocket::mysql::load_many;

#[database("example_db")]
struct ExampleDbConnection(mysql::Conn);

struct User {id:u64, username: Option<String>};

#[get("/?<toql..>")]
fn query( mappers: State<SqlMapperCache>,
conn: ExampleDbConnection, 
toql: Form<ToqlQuery>)
-> Result<Counted<Json<Vec<User>>>> {
let ExampleDbConnection(mut c) = conn;

let r = load_many::<User>(&toql, &mappers, &mut c)?;
Ok(Counted(Json(r.0), r.1))
}