1
0
Fork 0

Add CRUD Task

This commit is contained in:
Florian RICHER 2021-07-08 22:48:27 +02:00
parent ce7ef4807b
commit 4bee273216
3 changed files with 55 additions and 6 deletions

View file

@ -1,5 +1,5 @@
use rocket::serde::Serialize;
use diesel::{self, result::QueryResult, Queryable, Insertable, prelude::*};
use rocket::serde::{Serialize, Deserialize};
use diesel::{self, result::QueryResult, Queryable, Insertable, AsChangeset, prelude::*};
use super::DbConn;
table! {
@ -10,7 +10,7 @@ table! {
}
}
#[derive(Serialize, Queryable, Insertable, Debug, Clone)]
#[derive(Serialize, Deserialize, Queryable, Insertable, AsChangeset, Debug, Clone)]
#[serde(crate = "rocket::serde")]
#[table_name="tasks"]
pub struct Task {
@ -21,7 +21,7 @@ pub struct Task {
impl Task {
pub async fn all(conn: &DbConn) -> QueryResult<Vec<Task>> {
conn.run(move |c| {
conn.run(|c| {
tasks::table.load(c)
}).await
}
@ -33,4 +33,29 @@ impl Task {
.first(c)
}).await
}
pub async fn create(db: DbConn, task: Task) -> QueryResult<usize> {
db.run(move |conn| {
diesel::insert_into(tasks::table)
.values(&task)
.execute(conn)
}).await
}
pub async fn update(db: DbConn, id: i32, task: Task) -> QueryResult<usize> {
db.run(move |conn| {
diesel::update(tasks::table)
.set(&task)
.filter(tasks::id.eq(id))
.execute(conn)
}).await
}
pub async fn delete(db: DbConn, id: i32) -> QueryResult<usize> {
db.run(move |conn| {
diesel::delete(tasks::table)
.filter(tasks::id.eq(id))
.execute(conn)
}).await
}
}