aboutsummaryrefslogtreecommitdiff
path: root/backend/src/db
diff options
context:
space:
mode:
Diffstat (limited to 'backend/src/db')
-rw-r--r--backend/src/db/bots.rs54
-rw-r--r--backend/src/db/mod.rs1
-rw-r--r--backend/src/db/sessions.rs2
-rw-r--r--backend/src/db/users.rs2
4 files changed, 57 insertions, 2 deletions
diff --git a/backend/src/db/bots.rs b/backend/src/db/bots.rs
new file mode 100644
index 0000000..d359e28
--- /dev/null
+++ b/backend/src/db/bots.rs
@@ -0,0 +1,54 @@
+use diesel::prelude::*;
+use serde::{Deserialize, Serialize};
+
+use crate::schema::{bots, code_bundles};
+use crate::DbConn;
+use chrono;
+
+#[derive(Insertable)]
+#[table_name = "bots"]
+pub struct NewBot<'a> {
+ pub owner_id: i32,
+ pub name: &'a str,
+}
+
+#[derive(Queryable, Debug, PartialEq, Serialize, Deserialize)]
+pub struct Bot {
+ pub id: i32,
+ pub owner_id: i32,
+ pub name: String,
+}
+
+pub fn create_bot(new_bot: &NewBot, conn: &PgConnection) -> QueryResult<Bot> {
+ diesel::insert_into(bots::table)
+ .values(new_bot)
+ .get_result(conn)
+}
+
+pub fn find_bot(id: i32, conn: &PgConnection) -> QueryResult<Bot> {
+ bots::table.find(id).first(conn)
+}
+
+#[derive(Insertable)]
+#[table_name = "code_bundles"]
+pub struct NewCodeBundle<'a> {
+ pub bot_id: i32,
+ pub path: &'a str,
+}
+
+#[derive(Queryable, Serialize, Deserialize, Debug)]
+pub struct CodeBundle {
+ pub id: i32,
+ pub bot_id: i32,
+ pub path: String,
+ pub created_at: chrono::NaiveDateTime,
+}
+
+pub fn create_code_bundle(
+ new_code_bundle: &NewCodeBundle,
+ conn: &PgConnection,
+) -> QueryResult<CodeBundle> {
+ diesel::insert_into(code_bundles::table)
+ .values(new_code_bundle)
+ .get_result(conn)
+}
diff --git a/backend/src/db/mod.rs b/backend/src/db/mod.rs
index b6e3efc..947b789 100644
--- a/backend/src/db/mod.rs
+++ b/backend/src/db/mod.rs
@@ -1,2 +1,3 @@
+pub mod bots;
pub mod sessions;
pub mod users;
diff --git a/backend/src/db/sessions.rs b/backend/src/db/sessions.rs
index 0cc3f1a..96f3926 100644
--- a/backend/src/db/sessions.rs
+++ b/backend/src/db/sessions.rs
@@ -22,7 +22,7 @@ pub struct Session {
pub fn create_session(user: &User, conn: &PgConnection) -> Session {
let new_session = NewSession {
token: gen_session_token(),
- user_id: user.user_id,
+ user_id: user.id,
};
let session = insert_into(sessions::table)
.values(&new_session)
diff --git a/backend/src/db/users.rs b/backend/src/db/users.rs
index 29cee88..0817766 100644
--- a/backend/src/db/users.rs
+++ b/backend/src/db/users.rs
@@ -20,7 +20,7 @@ pub struct NewUser<'a> {
#[derive(Queryable, Debug)]
pub struct User {
- pub user_id: i32,
+ pub id: i32,
pub username: String,
pub password_salt: Vec<u8>,
pub password_hash: Vec<u8>,