forked from Ruderverein-Donau-Linz/rowt
		
	Merge pull request 'trim-ergo' (#796) from trim-ergo into main
Reviewed-on: Ruderverein-Donau-Linz/rowt#796
This commit is contained in:
		@@ -209,10 +209,12 @@ async fn new_thirty(
 | 
			
		||||
    if let Err(e) = data.proof.move_copy_to(file_path).await {
 | 
			
		||||
        eprintln!("Failed to persist file: {:?}", e);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    let result = data.result.trim_start_matches(|c| c == '0' || c == ' ');
 | 
			
		||||
 | 
			
		||||
    sqlx::query!(
 | 
			
		||||
        "UPDATE user SET dirty_thirty = ? where id = ?",
 | 
			
		||||
        data.result,
 | 
			
		||||
        result,
 | 
			
		||||
        data.user
 | 
			
		||||
    )
 | 
			
		||||
    .execute(db.inner())
 | 
			
		||||
@@ -231,6 +233,32 @@ async fn new_thirty(
 | 
			
		||||
    Flash::success(Redirect::to("/ergo"), "Erfolgreich eingetragen")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fn format_time(input: &str) -> String {
 | 
			
		||||
    let mut parts: Vec<&str> = input.split(':').collect();
 | 
			
		||||
 | 
			
		||||
    // If there's only seconds (e.g., "24.2"), treat it as "00:00:24.2"
 | 
			
		||||
    if parts.len() == 1 {
 | 
			
		||||
        parts.insert(0, "0"); // Add "0" for hours
 | 
			
		||||
        parts.insert(0, "0"); // Add "0" for minutes
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // If there are two parts (e.g., "4:24.2"), treat it as "00:04:24.2"
 | 
			
		||||
    if parts.len() == 2 {
 | 
			
		||||
        parts.insert(0, "0"); // Add "0" for hours
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Now parts should have [hours, minutes, seconds]
 | 
			
		||||
    let hours = if parts[0].len() == 1 { format!("0{}", parts[0]) } else { parts[0].to_string() };
 | 
			
		||||
    let minutes = if parts[1].len() == 1 { format!("0{}", parts[1]) } else { parts[1].to_string() };
 | 
			
		||||
    let seconds = parts[2];
 | 
			
		||||
 | 
			
		||||
    // Split seconds into whole and fractional parts
 | 
			
		||||
    let (sec_int, sec_frac) = seconds.split_once('.').unwrap_or((seconds, "0"));
 | 
			
		||||
 | 
			
		||||
    // Format the time as "hh:mm:ss.s"
 | 
			
		||||
    format!("{}:{}:{}.{:1}", hours, minutes, sec_int, sec_frac.chars().next().unwrap_or('0'))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[post("/dozen", data = "<data>", format = "multipart/form-data")]
 | 
			
		||||
async fn new_dozen(
 | 
			
		||||
    db: &State<SqlitePool>,
 | 
			
		||||
@@ -253,10 +281,12 @@ async fn new_dozen(
 | 
			
		||||
    if let Err(e) = data.proof.move_copy_to(file_path).await {
 | 
			
		||||
        eprintln!("Failed to persist file: {:?}", e);
 | 
			
		||||
    }
 | 
			
		||||
    let result = data.result.trim_start_matches(|c| c == '0' || c == ' ');
 | 
			
		||||
    let result = format_time(result);
 | 
			
		||||
 | 
			
		||||
    sqlx::query!(
 | 
			
		||||
        "UPDATE user SET dirty_dozen = ? where id = ?",
 | 
			
		||||
        data.result,
 | 
			
		||||
        result,
 | 
			
		||||
        data.user
 | 
			
		||||
    )
 | 
			
		||||
    .execute(db.inner())
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user