Changing bot commands to be used by endpoints
This commit is contained in:
3
service/src/db/guilds/mod.rs
Normal file
3
service/src/db/guilds/mod.rs
Normal file
@@ -0,0 +1,3 @@
|
||||
mod model;
|
||||
|
||||
pub use model::*;
|
||||
43
service/src/db/guilds/model.rs
Normal file
43
service/src/db/guilds/model.rs
Normal 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)
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -29,4 +29,12 @@ diesel::table! {
|
||||
attack_type -> Nullable<Text>,
|
||||
data -> Jsonb
|
||||
}
|
||||
}
|
||||
|
||||
diesel::table! {
|
||||
guilds (id) {
|
||||
id -> BigInt,
|
||||
name -> Text,
|
||||
volume -> Float,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user