Update some database types and fix other config related issues

This commit is contained in:
Lol3rrr
2024-09-10 22:39:10 +02:00
parent 89a366ff52
commit 1bfcd64a3c
9 changed files with 33 additions and 49 deletions

View File

@@ -24,7 +24,7 @@ pub mod demos {
let steam_id = session.data().steam_id.ok_or_else(|| axum::http::StatusCode::UNAUTHORIZED)?;
tracing::info!("SteamID: {:?}", steam_id);
let query = crate::schema::demos::dsl::demos.filter(crate::schema::demos::dsl::steam_id.eq(steam_id as i64));
let query = crate::schema::demos::dsl::demos.filter(crate::schema::demos::dsl::steam_id.eq(steam_id.to_string()));
let results: Vec<crate::models::Demo> = query.load(&mut crate::db_connection().await).await.unwrap();
Ok(axum::response::Json(results.into_iter().map(|demo| common::BaseDemoInfo {
@@ -52,7 +52,7 @@ pub mod demos {
let query = diesel::dsl::insert_into(crate::schema::demos::dsl::demos).values(crate::models::Demo {
demo_id: timestamp_secs as i64,
steam_id: steam_id as i64,
steam_id: steam_id.to_string(),
});
query.execute(&mut crate::db_connection().await).await.unwrap();

View File

@@ -42,7 +42,7 @@ impl DieselStore {
#[async_trait::async_trait]
impl tower_sessions::SessionStore for DieselStore {
async fn save(&self,session_record: &tower_sessions::session::Record) -> tower_sessions::session_store::Result<()> {
let db_id = self.id_to_bytes(session_record.id.0);
let db_id = session_record.id.0.to_string();
let data = serde_json::to_value(&session_record.data).unwrap();
let expiry_date = self.expiry_to_string(&session_record.expiry_date);
@@ -69,7 +69,7 @@ impl tower_sessions::SessionStore for DieselStore {
}
async fn load(&self,session_id: &tower_sessions::session::Id) -> tower_sessions::session_store::Result<Option<tower_sessions::session::Record>> {
let db_id = self.id_to_bytes(session_id.0);
let db_id = session_id.0.to_string();
let query = crate::schema::sessions::dsl::sessions.filter(crate::schema::sessions::dsl::id.eq(db_id));
@@ -97,14 +97,14 @@ impl tower_sessions::SessionStore for DieselStore {
};
Ok(Some(tower_sessions::session::Record {
id: tower_sessions::session::Id(self.bytes_to_id(result.id)),
data: data,
id: tower_sessions::session::Id(result.id.parse().unwrap()),
data,
expiry_date: self.string_to_expiry(&result.expiry_date),
}))
}
async fn delete(&self,session_id: &tower_sessions::session::Id) -> tower_sessions::session_store::Result<()> {
let db_id = self.id_to_bytes(session_id.0);
let db_id = session_id.0.to_string();
let query = crate::schema::sessions::dsl::sessions.filter(crate::schema::sessions::dsl::id.eq(db_id));

View File

@@ -4,7 +4,7 @@ use diesel::prelude::*;
#[diesel(table_name = crate::schema::sessions)]
#[diesel(check_for_backend(diesel::pg::Pg))]
pub struct Session {
pub id: Vec<i64>,
pub id: String,
pub steamid: Option<String>,
pub expiry_date: String,
}
@@ -13,7 +13,7 @@ pub struct Session {
#[diesel(table_name = crate::schema::demos)]
#[diesel(check_for_backend(diesel::pg::Pg))]
pub struct Demo {
pub steam_id: i64,
pub steam_id: String,
pub demo_id: i64,
}

View File

@@ -1,21 +1,29 @@
// @generated automatically by Diesel CLI.
diesel::table! {
demos (steam_id, demo_id) {
steam_id -> Text,
demo_id -> Int8,
}
}
diesel::table! {
sessions (id) {
id -> Array<BigInt>,
id -> Text,
steamid -> Nullable<Text>,
expiry_date -> Text,
}
}
diesel::table! {
demos (steam_id, demo_id) {
steam_id -> BigInt,
demo_id -> BigInt
users (steamid) {
steamid -> Text,
name -> Text,
}
}
diesel::table! {
users (steamid) {
steamid -> Text,
name -> Text
}
}
diesel::allow_tables_to_appear_in_same_query!(
demos,
sessions,
users,
);

View File

@@ -2,8 +2,5 @@
# see https://diesel.rs/guides/configuring-diesel-cli
[print_schema]
file = "src/schema.rs"
file = "backend/src/schema.rs"
custom_type_derives = ["diesel::query_builder::QueryId", "Clone"]
[migrations_directory]
dir = "/Users/leon/Documents/coding/rust/knifer/migrations"

View File

@@ -1,6 +1,6 @@
-- Your SQL goes here
CREATE TABLE IF NOT EXISTS sessions (
id bigint[2] PRIMARY KEY,
id TEXT NOT NULL PRIMARY KEY,
steamid TEXT,
expiry_date TEXT
expiry_date TEXT NOT NULL
)

View File

@@ -1,6 +1,6 @@
-- Your SQL goes here
CREATE TABLE IF NOT EXISTS demos (
steam_id bigint,
demo_id bigint,
steam_id TEXT NOT NULL,
demo_id bigint NOT NULL,
PRIMARY KEY(steam_id, demo_id)
)

View File

@@ -1,5 +1,5 @@
-- Your SQL goes here
CREATE TABLE IF NOT EXISTS users (
steamid TEXT PRIMARY KEY,
name TEXT
name TEXT NOT NULL
)

View File

@@ -1,21 +0,0 @@
// @generated automatically by Diesel CLI.
diesel::table! {
demos (steam_id, demo_id) {
steam_id -> Int8,
demo_id -> Int8,
}
}
diesel::table! {
sessions (id) {
id -> Array<Nullable<Int8>>,
data -> Nullable<Jsonb>,
expiry_date -> Nullable<Text>,
}
}
diesel::allow_tables_to_appear_in_same_query!(
demos,
sessions,
);