oclock_sqlite 0.1.5

Time tracking utility (sqlite component)
Documentation
use diesel;
use diesel::prelude::*;
use diesel::result::Error;
use diesel::sqlite::SqliteConnection;

use crate::models::{NewTask, Task};

pub fn create_task(conn: &mut SqliteConnection, task: &NewTask) -> Result<usize, Error> {
    use crate::schema::tasks;

    diesel::insert_into(tasks::table)
        .values(task)
        .execute(conn)
}

pub fn list_tasks(conn: &mut SqliteConnection) -> Result<Vec<Task>, Error> {
    use crate::schema::tasks::dsl::*;

    tasks
    .order(id)
    .load(conn)
}

pub fn change_enabled(conn: &mut SqliteConnection, task_id: i32, new_enabled: bool) -> Result<usize, Error> {
    use crate::schema::tasks::dsl::*;

    diesel::update(tasks.filter(id.eq(&task_id)))
        .set(enabled.eq(if new_enabled {1} else {0}))
        .execute(conn)
}