mirror of
https://github.com/haexhub/haex-hub.git
synced 2025-12-16 22:20:51 +01:00
Refactor code formatting and imports
- Reformat Rust code in extension database module - Improve line breaks and indentation - Remove commented-out test code - Clean up debug print statements formatting - Update import path in CRDT schema (use @ alias) - Fix UButton closing tag formatting in default layout
This commit is contained in:
@ -156,26 +156,40 @@ pub async fn extension_sql_execute(
|
|||||||
})?;
|
})?;
|
||||||
|
|
||||||
// Generate HLC timestamp
|
// Generate HLC timestamp
|
||||||
let hlc_timestamp = hlc_service
|
let hlc_timestamp =
|
||||||
.new_timestamp_and_persist(&tx)
|
hlc_service
|
||||||
.map_err(|e| DatabaseError::HlcError {
|
.new_timestamp_and_persist(&tx)
|
||||||
reason: e.to_string(),
|
.map_err(|e| DatabaseError::HlcError {
|
||||||
})?;
|
reason: e.to_string(),
|
||||||
|
})?;
|
||||||
|
|
||||||
// Transform statement
|
// Transform statement
|
||||||
transformer.transform_execute_statement(&mut statement, &hlc_timestamp)?;
|
transformer.transform_execute_statement(&mut statement, &hlc_timestamp)?;
|
||||||
|
|
||||||
// Convert parameters to references
|
// Convert parameters to references
|
||||||
let sql_values = ValueConverter::convert_params(¶ms)?;
|
let sql_values = ValueConverter::convert_params(¶ms)?;
|
||||||
let param_refs: Vec<&dyn rusqlite::ToSql> = sql_values.iter().map(|v| v as &dyn rusqlite::ToSql).collect();
|
let param_refs: Vec<&dyn rusqlite::ToSql> = sql_values
|
||||||
|
.iter()
|
||||||
|
.map(|v| v as &dyn rusqlite::ToSql)
|
||||||
|
.collect();
|
||||||
|
|
||||||
let result = if has_returning {
|
let result = if has_returning {
|
||||||
// Use query_internal for statements with RETURNING
|
// Use query_internal for statements with RETURNING
|
||||||
let (_, rows) = SqlExecutor::query_internal_typed(&tx, &hlc_service, &statement.to_string(), ¶m_refs)?;
|
let (_, rows) = SqlExecutor::query_internal_typed(
|
||||||
|
&tx,
|
||||||
|
&hlc_service,
|
||||||
|
&statement.to_string(),
|
||||||
|
¶m_refs,
|
||||||
|
)?;
|
||||||
rows
|
rows
|
||||||
} else {
|
} else {
|
||||||
// Use execute_internal for statements without RETURNING
|
// Use execute_internal for statements without RETURNING
|
||||||
SqlExecutor::execute_internal_typed(&tx, &hlc_service, &statement.to_string(), ¶m_refs)?;
|
SqlExecutor::execute_internal_typed(
|
||||||
|
&tx,
|
||||||
|
&hlc_service,
|
||||||
|
&statement.to_string(),
|
||||||
|
¶m_refs,
|
||||||
|
)?;
|
||||||
vec![]
|
vec![]
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -184,23 +198,22 @@ pub async fn extension_sql_execute(
|
|||||||
// Extract table name and remove quotes (both " and `)
|
// Extract table name and remove quotes (both " and `)
|
||||||
let raw_name = create_table_details.name.to_string();
|
let raw_name = create_table_details.name.to_string();
|
||||||
println!("DEBUG: Raw table name from AST: {raw_name:?}");
|
println!("DEBUG: Raw table name from AST: {raw_name:?}");
|
||||||
println!("DEBUG: Raw table name chars: {:?}", raw_name.chars().collect::<Vec<_>>());
|
println!(
|
||||||
|
"DEBUG: Raw table name chars: {:?}",
|
||||||
|
raw_name.chars().collect::<Vec<_>>()
|
||||||
|
);
|
||||||
|
|
||||||
let table_name_str = raw_name
|
let table_name_str = raw_name.trim_matches('"').trim_matches('`').to_string();
|
||||||
.trim_matches('"')
|
|
||||||
.trim_matches('`')
|
|
||||||
.to_string();
|
|
||||||
|
|
||||||
println!("DEBUG: Cleaned table name: {table_name_str:?}");
|
println!("DEBUG: Cleaned table name: {table_name_str:?}");
|
||||||
println!("DEBUG: Cleaned table name chars: {:?}", table_name_str.chars().collect::<Vec<_>>());
|
println!(
|
||||||
|
"DEBUG: Cleaned table name chars: {:?}",
|
||||||
|
table_name_str.chars().collect::<Vec<_>>()
|
||||||
|
);
|
||||||
|
|
||||||
println!(
|
println!("Table '{table_name_str}' created by extension, setting up CRDT triggers...");
|
||||||
"Table '{table_name_str}' created by extension, setting up CRDT triggers..."
|
|
||||||
);
|
|
||||||
trigger::setup_triggers_for_table(&tx, &table_name_str, false)?;
|
trigger::setup_triggers_for_table(&tx, &table_name_str, false)?;
|
||||||
println!(
|
println!("Triggers for table '{table_name_str}' successfully created.");
|
||||||
"Triggers for table '{table_name_str}' successfully created."
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Commit transaction
|
// Commit transaction
|
||||||
@ -298,7 +311,6 @@ pub async fn extension_sql_select(
|
|||||||
.map_err(ExtensionError::from)
|
.map_err(ExtensionError::from)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// Validiert Parameter gegen SQL-Platzhalter
|
/// Validiert Parameter gegen SQL-Platzhalter
|
||||||
fn validate_params(sql: &str, params: &[JsonValue]) -> Result<(), DatabaseError> {
|
fn validate_params(sql: &str, params: &[JsonValue]) -> Result<(), DatabaseError> {
|
||||||
let total_placeholders = count_sql_placeholders(sql);
|
let total_placeholders = count_sql_placeholders(sql);
|
||||||
@ -335,20 +347,4 @@ mod tests {
|
|||||||
);
|
);
|
||||||
assert_eq!(count_sql_placeholders("SELECT * FROM users"), 0);
|
assert_eq!(count_sql_placeholders("SELECT * FROM users"), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* #[test]
|
|
||||||
fn test_truncate_sql() {
|
|
||||||
let sql = "SELECT * FROM very_long_table_name";
|
|
||||||
assert_eq!(truncate_sql(sql, 10), "SELECT * F...");
|
|
||||||
assert_eq!(truncate_sql(sql, 50), sql);
|
|
||||||
} */
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_validate_params() {
|
|
||||||
let params = vec![json!(1), json!("test")];
|
|
||||||
|
|
||||||
assert!(validate_params("SELECT * FROM users WHERE id = ? AND name = ?", ¶ms).is_ok());
|
|
||||||
assert!(validate_params("SELECT * FROM users WHERE id = ?", ¶ms).is_err());
|
|
||||||
assert!(validate_params("SELECT * FROM users", ¶ms).is_err());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { integer, sqliteTable, text, index } from 'drizzle-orm/sqlite-core'
|
import { integer, sqliteTable, text, index } from 'drizzle-orm/sqlite-core'
|
||||||
import tableNames from '~/database/tableNames.json'
|
import tableNames from '@/database/tableNames.json'
|
||||||
|
|
||||||
export const haexCrdtLogs = sqliteTable(
|
export const haexCrdtLogs = sqliteTable(
|
||||||
tableNames.haex.crdt.logs.name,
|
tableNames.haex.crdt.logs.name,
|
||||||
|
|||||||
@ -96,8 +96,7 @@
|
|||||||
@click="handleAddWorkspace"
|
@click="handleAddWorkspace"
|
||||||
icon="i-heroicons-plus"
|
icon="i-heroicons-plus"
|
||||||
:label="t('workspaces.add')"
|
:label="t('workspaces.add')"
|
||||||
>
|
/>
|
||||||
</UButton>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</UDrawer>
|
</UDrawer>
|
||||||
|
|||||||
Reference in New Issue
Block a user