Update some database types and fix other config related issues
This commit is contained in:
@@ -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();
|
||||
|
||||
|
||||
@@ -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));
|
||||
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
|
||||
|
||||
@@ -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,
|
||||
);
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
)
|
||||
|
||||
@@ -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)
|
||||
)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
-- Your SQL goes here
|
||||
CREATE TABLE IF NOT EXISTS users (
|
||||
steamid TEXT PRIMARY KEY,
|
||||
name TEXT
|
||||
name TEXT NOT NULL
|
||||
)
|
||||
|
||||
@@ -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,
|
||||
);
|
||||
Reference in New Issue
Block a user