2 Commits
Author SHA1 Message Date
schn33fuchs 12c618f8dd Bux fix
Bug: when getting user by id, it would try to parse i16 to i32, type
changed
2026-05-01 18:12:24 +02:00
schn33fuchs 92fdb87cf0 Timezone now CET 2026-05-01 18:11:40 +02:00
7 changed files with 49 additions and 7 deletions
@@ -5,6 +5,6 @@ CREATE TABLE IF NOT EXISTS tickets (
description TEXT,
room SMALLINT,
status VARCHAR(15) NOT NULL DEFAULT 'ToDo',
date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
date TIMESTAMP WITH TIME ZONE DEFAULT now(),
user_id SMALLINT DEFAULT 1
);
@@ -2,7 +2,10 @@ CREATE TABLE users (
id SMALLINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
last_name VARCHAR(30),
first_name VARCHAR(30),
username VARCHAR(30),
username VARCHAR(30) UNIQUE,
pwd TEXT,
is_admin BOOLEAN NOT NULL DEFAULT false
);
INSERT INTO users(last_name, first_name, username, pwd, is_admin) VALUES ('Raffauf', 'Silas', 'raffaufsil',
'$argon2id$v=19$m=19456,t=2,p=1$urV91vY49mehWQoShkm6pw$1AGLuMDuFnY1CKuQU9ed89s1u9kvuszQjX+eIXmCBKI', true);
+1 -1
View File
@@ -220,7 +220,7 @@ pub async fn get_users(
}
pub async fn get_user_by_id(
Path(id): Path<i32>,
Path(id): Path<i16>,
State(data): State<Arc<AppState>>,
) -> Result<impl IntoResponse, (StatusCode, Json<serde_json::Value>)> {
let query = sqlx::query_as::<_, User>(r#"SELECT * FROM users WHERE id = $1"#)
+2 -2
View File
@@ -11,7 +11,7 @@ pub struct Ticket {
pub description: String,
pub room: i16,
pub status: String,
pub date: chrono::NaiveDateTime,
pub date: chrono::DateTime<chrono::Utc>,
pub user_id: i16,
}
@@ -23,7 +23,7 @@ pub struct TicketResponse {
pub description: String,
pub room: i16,
pub status: String,
pub date: chrono::NaiveDateTime,
pub date: chrono::DateTime<chrono::Utc>,
pub user_id: i16,
pub user_first_name: String,
pub user_last_name: String,
+35
View File
@@ -68,6 +68,16 @@ dependencies = [
"windows-link",
]
[[package]]
name = "chrono-tz"
version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a6139a8597ed92cf816dfb33f5dd6cf0bb93a6adc938f11039f371bc5bcd26c3"
dependencies = [
"chrono",
"phf",
]
[[package]]
name = "console_error_panic_hook"
version = "0.1.7"
@@ -116,6 +126,7 @@ name = "frontend"
version = "0.1.0"
dependencies = [
"chrono",
"chrono-tz",
"gloo 0.12.0",
"gloo-net 0.7.0",
"serde",
@@ -735,6 +746,24 @@ version = "2.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
[[package]]
name = "phf"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "913273894cec178f401a31ec4b656318d95473527be05c0752cc41cdc32be8b7"
dependencies = [
"phf_shared",
]
[[package]]
name = "phf_shared"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06005508882fb681fd97892ecff4b7fd0fee13ef1aa569f8695dae7ab9099981"
dependencies = [
"siphasher",
]
[[package]]
name = "pin-project"
version = "1.1.11"
@@ -933,6 +962,12 @@ version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
[[package]]
name = "siphasher"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e"
[[package]]
name = "slab"
version = "0.4.12"
+1
View File
@@ -24,3 +24,4 @@ yew-router = "0.20.0"
serde_json = "1.0.149"
gloo = "0.12.0"
chrono = { version = "0.4.44", features = ["serde"] }
chrono-tz = "0.10.4"
+5 -2
View File
@@ -1,3 +1,4 @@
use chrono_tz::Europe::Berlin;
use gloo_net::http::Request;
use serde::{Deserialize, Serialize};
use wasm_bindgen::JsCast;
@@ -26,7 +27,7 @@ pub struct Ticket {
pub description: String,
pub room: i16,
pub status: String,
pub date: chrono::NaiveDateTime,
pub date: chrono::DateTime<chrono::Utc>,
pub user_id: i16,
pub user_first_name: String,
pub user_last_name: String,
@@ -310,7 +311,9 @@ pub fn ticket_by_id_component(props: &TicketProps) -> Html {
<p><strong>{ "Betreff: " }</strong>{ &t.betreff }</p>
<p><strong>{ "Beschreibung: " }</strong>{ &t.description }</p>
<p><strong>{ "Raum: " }</strong>{ t.room }</p>
<p><strong>{ "Datum: " }</strong>{ &t.date }</p>
<p><strong>{ "Datum: " }</strong>{
t.date.with_timezone(&Berlin).format("%d.%m.%Y %H:%M:%S").to_string()
}</p>
<p><strong>{ "Status: "}</strong>{ match t.status.as_str() {
"ToDo" => "Zu tun",
"InProgress" => "In Bearbeitung",