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)?;
|
let steam_id = session.data().steam_id.ok_or_else(|| axum::http::StatusCode::UNAUTHORIZED)?;
|
||||||
tracing::info!("SteamID: {:?}", steam_id);
|
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();
|
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 {
|
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 {
|
let query = diesel::dsl::insert_into(crate::schema::demos::dsl::demos).values(crate::models::Demo {
|
||||||
demo_id: timestamp_secs as i64,
|
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();
|
query.execute(&mut crate::db_connection().await).await.unwrap();
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ impl DieselStore {
|
|||||||
#[async_trait::async_trait]
|
#[async_trait::async_trait]
|
||||||
impl tower_sessions::SessionStore for DieselStore {
|
impl tower_sessions::SessionStore for DieselStore {
|
||||||
async fn save(&self,session_record: &tower_sessions::session::Record) -> tower_sessions::session_store::Result<()> {
|
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 data = serde_json::to_value(&session_record.data).unwrap();
|
||||||
let expiry_date = self.expiry_to_string(&session_record.expiry_date);
|
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>> {
|
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));
|
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 {
|
Ok(Some(tower_sessions::session::Record {
|
||||||
id: tower_sessions::session::Id(self.bytes_to_id(result.id)),
|
id: tower_sessions::session::Id(result.id.parse().unwrap()),
|
||||||
data: data,
|
data,
|
||||||
expiry_date: self.string_to_expiry(&result.expiry_date),
|
expiry_date: self.string_to_expiry(&result.expiry_date),
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn delete(&self,session_id: &tower_sessions::session::Id) -> tower_sessions::session_store::Result<()> {
|
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));
|
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(table_name = crate::schema::sessions)]
|
||||||
#[diesel(check_for_backend(diesel::pg::Pg))]
|
#[diesel(check_for_backend(diesel::pg::Pg))]
|
||||||
pub struct Session {
|
pub struct Session {
|
||||||
pub id: Vec<i64>,
|
pub id: String,
|
||||||
pub steamid: Option<String>,
|
pub steamid: Option<String>,
|
||||||
pub expiry_date: String,
|
pub expiry_date: String,
|
||||||
}
|
}
|
||||||
@@ -13,7 +13,7 @@ pub struct Session {
|
|||||||
#[diesel(table_name = crate::schema::demos)]
|
#[diesel(table_name = crate::schema::demos)]
|
||||||
#[diesel(check_for_backend(diesel::pg::Pg))]
|
#[diesel(check_for_backend(diesel::pg::Pg))]
|
||||||
pub struct Demo {
|
pub struct Demo {
|
||||||
pub steam_id: i64,
|
pub steam_id: String,
|
||||||
pub demo_id: i64,
|
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! {
|
diesel::table! {
|
||||||
sessions (id) {
|
sessions (id) {
|
||||||
id -> Array<BigInt>,
|
id -> Text,
|
||||||
steamid -> Nullable<Text>,
|
steamid -> Nullable<Text>,
|
||||||
expiry_date -> Text,
|
expiry_date -> Text,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
diesel::table! {
|
diesel::table! {
|
||||||
demos (steam_id, demo_id) {
|
users (steamid) {
|
||||||
steam_id -> BigInt,
|
steamid -> Text,
|
||||||
demo_id -> BigInt
|
name -> Text,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
diesel::table! {
|
diesel::allow_tables_to_appear_in_same_query!(
|
||||||
users (steamid) {
|
demos,
|
||||||
steamid -> Text,
|
sessions,
|
||||||
name -> Text
|
users,
|
||||||
}
|
);
|
||||||
}
|
|
||||||
|
|||||||
@@ -2,8 +2,5 @@
|
|||||||
# see https://diesel.rs/guides/configuring-diesel-cli
|
# see https://diesel.rs/guides/configuring-diesel-cli
|
||||||
|
|
||||||
[print_schema]
|
[print_schema]
|
||||||
file = "src/schema.rs"
|
file = "backend/src/schema.rs"
|
||||||
custom_type_derives = ["diesel::query_builder::QueryId", "Clone"]
|
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
|
-- Your SQL goes here
|
||||||
CREATE TABLE IF NOT EXISTS sessions (
|
CREATE TABLE IF NOT EXISTS sessions (
|
||||||
id bigint[2] PRIMARY KEY,
|
id TEXT NOT NULL PRIMARY KEY,
|
||||||
steamid TEXT,
|
steamid TEXT,
|
||||||
expiry_date TEXT
|
expiry_date TEXT NOT NULL
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
-- Your SQL goes here
|
-- Your SQL goes here
|
||||||
CREATE TABLE IF NOT EXISTS demos (
|
CREATE TABLE IF NOT EXISTS demos (
|
||||||
steam_id bigint,
|
steam_id TEXT NOT NULL,
|
||||||
demo_id bigint,
|
demo_id bigint NOT NULL,
|
||||||
PRIMARY KEY(steam_id, demo_id)
|
PRIMARY KEY(steam_id, demo_id)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
-- Your SQL goes here
|
-- Your SQL goes here
|
||||||
CREATE TABLE IF NOT EXISTS users (
|
CREATE TABLE IF NOT EXISTS users (
|
||||||
steamid TEXT PRIMARY KEY,
|
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