aboutsummaryrefslogtreecommitdiff
path: root/backend/src/db/bots.rs
diff options
context:
space:
mode:
authorIlion Beyst <ilion.beyst@gmail.com>2021-12-29 19:56:31 +0100
committerIlion Beyst <ilion.beyst@gmail.com>2021-12-29 19:56:31 +0100
commit3eeaab6cec70e7a06a99a1ac2662974f71064bee (patch)
tree9d5a2665ed32df41b2be131d5e27e8b321ce78a8 /backend/src/db/bots.rs
parentee5af8d07625bfc7ad11b842b3941bb095aa6a6e (diff)
parent1fb4a5151bd8cfe6de4d8c19e2066a9281a0b61a (diff)
downloadplanetwars.dev-3eeaab6cec70e7a06a99a1ac2662974f71064bee.tar.xz
planetwars.dev-3eeaab6cec70e7a06a99a1ac2662974f71064bee.zip
Merge branch 'backend-server'
Diffstat (limited to 'backend/src/db/bots.rs')
-rw-r--r--backend/src/db/bots.rs53
1 files changed, 53 insertions, 0 deletions
diff --git a/backend/src/db/bots.rs b/backend/src/db/bots.rs
new file mode 100644
index 0000000..bc9cb11
--- /dev/null
+++ b/backend/src/db/bots.rs
@@ -0,0 +1,53 @@
+use diesel::prelude::*;
+use serde::{Deserialize, Serialize};
+
+use crate::schema::{bots, code_bundles};
+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)
+}