Hammond-data: switch database module to use Failure.

This commit is contained in:
Jordan Petridis
2018-02-04 16:33:10 +02:00
parent 3874235074
commit f9f015a211
10 changed files with 46 additions and 11 deletions
+2
View File
@@ -26,6 +26,8 @@ hyper-tls = "0.1.2"
native-tls = "0.1.5"
futures-cpupool = "0.1.8"
num_cpus = "1.8.0"
failure = "0.1.1"
failure_derive = "0.1.1"
[dependencies.diesel]
features = ["sqlite", "r2d2"]
+3 -3
View File
@@ -7,7 +7,7 @@ use diesel::r2d2::ConnectionManager;
use std::io;
use std::path::PathBuf;
use errors::*;
use failure::Error;
#[cfg(not(test))]
use xdg_dirs;
@@ -57,7 +57,7 @@ fn init_pool(db_path: &str) -> Pool {
pool
}
fn run_migration_on(connection: &SqliteConnection) -> Result<()> {
fn run_migration_on(connection: &SqliteConnection) -> Result<(), Error> {
info!("Running DB Migrations...");
// embedded_migrations::run(connection)?;
embedded_migrations::run_with_output(connection, &mut io::stdout()).map_err(From::from)
@@ -66,7 +66,7 @@ fn run_migration_on(connection: &SqliteConnection) -> Result<()> {
/// Reset the database into a clean state.
// Test share a Temp file db.
#[allow(dead_code)]
pub fn truncate_db() -> Result<()> {
pub fn truncate_db() -> Result<(), Error> {
let db = connection();
let con = db.get()?;
con.execute("DELETE FROM episode")?;
+8
View File
@@ -23,3 +23,11 @@ error_chain! {
IoError(io::Error);
}
}
#[derive(Fail, Debug)]
pub enum DatabaseError {
#[fail(display = "SQL Query failed: {}", _0)] DieselResultError(diesel::result::Error),
#[fail(display = "Database Migration error: {}", _0)] DieselMigrationError(RunMigrationsError),
#[fail(display = "R2D2 error: {}", _0)] R2D2Error(r2d2::Error),
#[fail(display = "R2D2 Pool error: {}", _0)] R2D2PoolError(r2d2::PoolError),
}
+4 -1
View File
@@ -17,7 +17,7 @@
unconditional_recursion, unions_with_drop_fields, unused_allocation, unused_comparisons,
unused_parens, while_true)]
#![deny(missing_debug_implementations, missing_docs, trivial_casts, trivial_numeric_casts)]
#![deny(unused_extern_crates, unused)]
// #![deny(unused_extern_crates, unused)]
// #![feature(conservative_impl_trait)]
@@ -30,12 +30,15 @@ extern crate diesel_migrations;
#[macro_use]
extern crate error_chain;
#[macro_use]
extern crate failure_derive;
#[macro_use]
extern crate lazy_static;
#[macro_use]
extern crate log;
extern crate ammonia;
extern crate chrono;
extern crate failure;
extern crate futures;
extern crate futures_cpupool;
extern crate hyper;