Add crsql changes metadata status
This commit is contained in:
parent
e039a4f81f
commit
677945073b
8 changed files with 182 additions and 15 deletions
|
|
@ -716,6 +716,7 @@ pub fn handle_request(
|
|||
}
|
||||
let path = std::fs::canonicalize(path)?;
|
||||
let schema_metadata = geth_db::schema_metadata(&path)?;
|
||||
let crsqlite_changes = geth_db::crsqlite_change_metadata(&path)?;
|
||||
let resource_id = format!("resource:db:{name}");
|
||||
let db_id = format!("db:{name}");
|
||||
let resource = StoredResource {
|
||||
|
|
@ -733,7 +734,7 @@ pub fn handle_request(
|
|||
};
|
||||
store.insert_db_resource(&stored)?;
|
||||
Ok(ControlResponse::DbAdded {
|
||||
db: db_resource_from_stored_with_schema(&stored, schema_metadata),
|
||||
db: db_resource_from_stored_with_schema(&stored, schema_metadata, crsqlite_changes),
|
||||
})
|
||||
}
|
||||
ControlRequest::DbStatus { name } => {
|
||||
|
|
@ -910,17 +911,32 @@ fn stored_resource_to_descriptor(stored: StoredResource) -> Result<ResourceDescr
|
|||
fn db_resource_from_stored(stored: &StoredDbResource) -> Result<DbResource, NodeError> {
|
||||
let path = Path::new(&stored.path);
|
||||
let metadata = path.metadata().ok();
|
||||
let schema_metadata = if metadata.as_ref().is_some_and(std::fs::Metadata::is_file) {
|
||||
geth_db::schema_metadata(path).unwrap_or_else(|error| format!("unavailable:{error}"))
|
||||
let (schema_metadata, crsqlite_changes) = if metadata
|
||||
.as_ref()
|
||||
.is_some_and(std::fs::Metadata::is_file)
|
||||
{
|
||||
(
|
||||
geth_db::schema_metadata(path).unwrap_or_else(|error| format!("unavailable:{error}")),
|
||||
geth_db::crsqlite_change_metadata(path)
|
||||
.unwrap_or_else(|error| geth_db::CrSqliteChangeMetadata::error(error.to_string())),
|
||||
)
|
||||
} else {
|
||||
"unavailable:path-missing".to_owned()
|
||||
(
|
||||
"unavailable:path-missing".to_owned(),
|
||||
geth_db::CrSqliteChangeMetadata::error("path-missing"),
|
||||
)
|
||||
};
|
||||
Ok(db_resource_from_stored_with_schema(stored, schema_metadata))
|
||||
Ok(db_resource_from_stored_with_schema(
|
||||
stored,
|
||||
schema_metadata,
|
||||
crsqlite_changes,
|
||||
))
|
||||
}
|
||||
|
||||
fn db_resource_from_stored_with_schema(
|
||||
stored: &StoredDbResource,
|
||||
schema_metadata: String,
|
||||
crsqlite_changes: geth_db::CrSqliteChangeMetadata,
|
||||
) -> DbResource {
|
||||
let path = Path::new(&stored.path);
|
||||
let metadata = path.metadata().ok();
|
||||
|
|
@ -932,6 +948,7 @@ fn db_resource_from_stored_with_schema(
|
|||
path_exists: metadata.as_ref().is_some_and(std::fs::Metadata::is_file),
|
||||
size_bytes: metadata.map(|metadata| metadata.len()),
|
||||
schema_metadata,
|
||||
crsqlite_changes,
|
||||
sync_status: "local-only".to_owned(),
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue