makes one database query work :)
This commit is contained in:
@@ -1,14 +1,13 @@
|
||||
#[macro_use]
|
||||
extern crate diesel;
|
||||
extern crate dotenv;
|
||||
extern crate dotenv;
|
||||
#[macro_use] extern crate diesel;
|
||||
#[macro_use] extern crate serde_derive;
|
||||
|
||||
use diesel::prelude::*;
|
||||
use dotenv::dotenv;
|
||||
use std::env;
|
||||
use diesel::r2d2::{self, ConnectionManager };
|
||||
|
||||
pub fn establish_connection() -> Result<SqliteConnection, String> {
|
||||
dotenv().ok();
|
||||
let database_url = env::var("DATABASE_URL").expect("DATABASE_URL must be set !");
|
||||
dotenv::dotenv().ok();
|
||||
let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set !");
|
||||
SqliteConnection::establish(&database_url)
|
||||
.map_err(|e| format!("Error connecting to {} : {:?}", database_url, e))
|
||||
}
|
||||
@@ -16,14 +15,28 @@ pub fn establish_connection() -> Result<SqliteConnection, String> {
|
||||
pub mod models;
|
||||
pub mod schema;
|
||||
|
||||
pub fn list_players() -> Vec<models::Player> {
|
||||
pub fn list_players(conn: &SqliteConnection)
|
||||
-> Result<Vec<models::Player>, diesel::result::Error> {
|
||||
use schema::players::dsl::*;
|
||||
let conn = establish_connection().unwrap();
|
||||
players
|
||||
.load::<models::Player>(&conn)
|
||||
.expect("Error loading players")
|
||||
Ok(players
|
||||
.load::<models::Player>(conn)?)
|
||||
}
|
||||
|
||||
pub type Pool = r2d2::Pool<ConnectionManager<SqliteConnection>>;
|
||||
|
||||
pub fn create_pool() -> Pool {
|
||||
dotenv::dotenv().ok();
|
||||
let connspec = std::env::var("DATABASE_URL").expect("DATABASE_URL");
|
||||
let manager = ConnectionManager::<SqliteConnection>::new(connspec);
|
||||
r2d2::Pool::builder()
|
||||
.build(manager)
|
||||
.expect("Failed to create pool.")
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
Reference in New Issue
Block a user