diff options
author | Ilion Beyst <ilion.beyst@gmail.com> | 2021-12-19 00:16:46 +0100 |
---|---|---|
committer | Ilion Beyst <ilion.beyst@gmail.com> | 2021-12-19 00:16:46 +0100 |
commit | 52242b03f1af7f73e73592c2e5ee2bc54813a64d (patch) | |
tree | 1ecafcbebad7b6f8ae71670afbe2921c975196fa /backend/src/db/bots.rs | |
parent | 2dbb085008f68ed56675cf23ea6e1c89af632ea9 (diff) | |
download | planetwars.dev-52242b03f1af7f73e73592c2e5ee2bc54813a64d.tar.xz planetwars.dev-52242b03f1af7f73e73592c2e5ee2bc54813a64d.zip |
simple bot uploads
Diffstat (limited to 'backend/src/db/bots.rs')
-rw-r--r-- | backend/src/db/bots.rs | 54 |
1 files changed, 54 insertions, 0 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) +} |