Update dependencies (actix-web 2)

This commit is contained in:
Greg Burri 2019-12-26 21:08:18 +01:00
parent 240996a313
commit eab43f8995
5 changed files with 528 additions and 694 deletions

View file

@ -6,12 +6,12 @@ use std::fs;
const CURRENT_DB_VERSION: u32 = 1;
struct Connection {
pub sqlite_con : rusqlite::Connection
pub struct Connection {
con: rusqlite::Connection
}
impl Connection {
fn new() -> Connection {
pub fn new() -> Connection {
// TODO: use a constant in consts module.
let data_dir = Path::new("data");
@ -20,20 +20,29 @@ impl Connection {
fs::DirBuilder::new().create(data_dir).unwrap();
}
Connection { sqlite_con : rusqlite::Connection::open(data_dir.join("recipes.sqlite")).unwrap() }
Connection { con: rusqlite::Connection::open(data_dir.join("recipes.sqlite")).unwrap() }
}
}
pub fn create_or_update() {
let connection = Connection::new();
pub fn create_or_update(self: &Self) -> rusqlite::Result<&str> {
//let connection = Connection::new();
// let mut stmt = connection.sqlite_con.prepare("SELECT * FROM versions ORDER BY date").unwrap();
// let mut stmt = connection.sqlite_con..prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='versions'").unwrap();
// let mut stmt = connection.sqlite_con.prepare("SELECT * FROM versions ORDER BY date").unwrap();
// Check the Database version.
let version = {
let stmt_version_table = self.con.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='versions'")?;
/*if stmt_version_table.query(rusqlite::NO_PARAMS)?.count() == 0 {
0
} else {
1 // let stmt_versions = self.con.prepare("SELECT number FROM [")
}*/
0
};
//let mut stmt = connection.sqlite_con..prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='versions'").unwrap();
connection.sqlite_con.query_row(
"SELECT name FROM sqlite_master WHERE type='table' AND name='versions'",
rusqlite::NO_PARAMS,
|row| Ok(dbg!("test"))
)
.unwrap();
self.con.query_row(
"SELECT name FROM sqlite_master WHERE type='table' AND name='versions'",
rusqlite::NO_PARAMS,
|row| Ok(dbg!("test"))
)
}
}

View file

@ -2,7 +2,7 @@ use std::io::prelude::*;
use std::{fs::File, env::args};
use actix_files as fs;
use actix_web::{web, middleware, App, HttpServer, HttpResponse, Result, web::Query, middleware::Logger};
use actix_web::{get, web, Responder, middleware, App, HttpServer, HttpResponse, web::Query, middleware::Logger};
use askama::Template;
use listenfd::ListenFd;
@ -26,12 +26,12 @@ pub struct Request {
m: Option<String>
}
fn main_page(query: Query<Request>) -> Result<HttpResponse> {
fn main_page(query: Query<Request>) -> HttpResponse {
let main_template = MainTemplate { test: &"*** test ***" };
let s = main_template.render().unwrap();
Ok(HttpResponse::Ok().content_type("text/html").body(s))
HttpResponse::Ok().content_type("text/html").body(s)
}
#[derive(Debug, Deserialize)]
@ -45,7 +45,8 @@ fn get_exe_name() -> String {
first_arg[first_arg.rfind(sep).unwrap()+1..].to_string()
}
fn main() -> std::io::Result<()> {
#[actix_rt::main]
async fn main() -> std::io::Result<()> {
if process_args() { return Ok(()) }
println!("Starting RUP as web server...");
@ -85,7 +86,7 @@ fn main() -> std::io::Result<()> {
server.bind(&format!("0.0.0.0:{}", config.port)).unwrap()
};
server.run()
server.run().await
}
fn process_args() -> bool {
@ -100,7 +101,8 @@ fn process_args() -> bool {
print_usage();
return true
} else if args.iter().any(|arg| arg == "--test") {
let database_connection = db::create_or_update();
let db_connection = db::Connection::new();
db_connection.create_or_update();
return true
}