summaryrefslogtreecommitdiff
path: root/src/db.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/db.rs')
-rw-r--r--src/db.rs24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/db.rs b/src/db.rs
index 5135b91..24cf98d 100644
--- a/src/db.rs
+++ b/src/db.rs
@@ -110,7 +110,7 @@ pub fn insert_task(conn: &PgConnection, task: &models::NewTask) -> Result<i64, E
Ok(id)
}
-fn update_task_inner(conn: &PgConnection, task: &models::Task) -> Result<models::Task, Error> {
+fn update_task_inner(conn: &PgConnection, task: models::Task) -> Result<models::Task, Error> {
use crate::schema::tasks;
diesel::delete(tasks::table.filter(tasks::columns::id.eq(task.id))).execute(conn)?;
@@ -130,7 +130,7 @@ fn update_task_inner(conn: &PgConnection, task: &models::Task) -> Result<models:
Ok(new_task)
}
-pub fn update_task(conn: &PgConnection, task: &models::Task) -> Result<models::Task, Error> {
+pub fn update_task(conn: &PgConnection, task: models::Task) -> Result<models::Task, Error> {
conn.transaction(|| update_task_inner(conn, task))
}
@@ -150,7 +150,7 @@ pub fn take_task(
.first::<models::Task>(conn)?;
task.start_at = eta;
- let task = update_task_inner(conn, &task)?;
+ let task = update_task_inner(conn, task)?;
Ok(task)
})
@@ -163,3 +163,21 @@ pub fn insert_data(conn: &PgConnection, data: &models::RawData) -> Result<usize,
.execute(conn)?;
Ok(rows)
}
+
+pub fn get_raw_data(conn: &PgConnection, key: &models::RawDataKey) -> Result<models::RawData, Error> {
+ use crate::schema::raw_data;
+ let data = raw_data::table
+ .find((key.data_type, key.id))
+ .get_result::<models::RawData>(conn)?;
+ Ok(data)
+}
+
+pub fn get_raw_data_keys(conn: &PgConnection) -> Result<Vec<models::RawDataKey>, Error> {
+ use crate::schema::raw_data;
+ let rows = raw_data::table
+ .select((raw_data::data_type,
+ raw_data::id,
+ raw_data::username))
+ .get_results::<models::RawDataKey>(conn)?;
+ Ok(rows)
+}