Changing bot commands to be used by endpoints

This commit is contained in:
Benjamin Sherriff
2023-10-06 23:34:25 -04:00
parent cb1fd182f1
commit 3ca91c7765
11 changed files with 133 additions and 125 deletions

View File

@@ -0,0 +1,3 @@
mod model;
pub use model::*;

View File

@@ -0,0 +1,43 @@
use diesel::prelude::*;
use serde::{Serialize, Deserialize};
use siren::ServiceError;
use crate::db::{schema::guilds, connection};
#[derive(Queryable, QueryableByName, Serialize, Deserialize)]
#[diesel(table_name = guilds)]
pub struct QueryGuild {
pub id: i64,
pub name: String,
pub volume: f32
}
impl QueryGuild {
pub fn get(id: i64) -> Result<Self, ServiceError> {
let mut conn = connection()?;
let guild = guilds::table.filter(guilds::id.eq(id)).first(&mut conn)?;
Ok(guild)
}
}
#[derive(Insertable, AsChangeset, Serialize, Deserialize)]
#[diesel(table_name = guilds)]
pub struct InsertGuild {
pub id: i64,
pub name: String,
pub volume: f32
}
impl InsertGuild {
pub fn insert(guild: Self) -> Result<QueryGuild, ServiceError> {
let mut conn = connection()?;
let guild = diesel::insert_into(guilds::table).values(guild).get_result(&mut conn)?;
Ok(guild)
}
pub fn update_audio(id: i64, volume: f32) -> Result<QueryGuild, ServiceError> {
let mut conn = connection()?;
let guild = diesel::update(guilds::table.filter(guilds::id.eq(id))).set(guilds::volume.eq(volume)).get_result(&mut conn)?;
Ok(guild)
}
}

View File

@@ -11,6 +11,7 @@ pub mod bestiary;
pub mod classes;
pub mod conditions;
pub mod feats;
pub mod guilds;
pub mod items;
pub mod messages;
pub mod options;

View File

@@ -29,4 +29,12 @@ diesel::table! {
attack_type -> Nullable<Text>,
data -> Jsonb
}
}
diesel::table! {
guilds (id) {
id -> BigInt,
name -> Text,
volume -> Float,
}
}