Fix UpdateSource for sync upserts

This commit is contained in:
Gregory Schier
2025-01-08 15:25:03 -08:00
parent cbc443075a
commit 328e3db56e
8 changed files with 53 additions and 34 deletions

View File

@@ -921,10 +921,17 @@ async fn cmd_import_data<R: Runtime>(
})
.collect();
let upserted =
batch_upsert(&window, workspaces, environments, folders, http_requests, grpc_requests)
.await
.map_err(|e| e.to_string())?;
let upserted = batch_upsert(
&window,
workspaces,
environments,
folders,
http_requests,
grpc_requests,
&UpdateSource::Import,
)
.await
.map_err(|e| e.to_string())?;
analytics::track_event(
&window,

View File

@@ -2013,6 +2013,7 @@ pub enum UpdateSource {
Window,
Plugin,
Background,
Import,
}
fn emit_upserted_model<R: Runtime>(
@@ -2100,11 +2101,12 @@ pub async fn batch_upsert<R: Runtime>(
folders: Vec<Folder>,
http_requests: Vec<HttpRequest>,
grpc_requests: Vec<GrpcRequest>,
update_source: &UpdateSource,
) -> Result<BatchUpsertResult> {
let mut imported_resources = BatchUpsertResult::default();
for v in workspaces {
let x = upsert_workspace(&window, v, &UpdateSource::Window).await?;
let x = upsert_workspace(&window, v, update_source).await?;
imported_resources.workspaces.push(x.clone());
}
info!("Imported {} workspaces", imported_resources.workspaces.len());
@@ -2120,7 +2122,7 @@ pub async fn batch_upsert<R: Runtime>(
if let Some(_) = imported_resources.environments.iter().find(|f| f.id == v.id) {
continue;
}
let x = upsert_environment(&window, v, &UpdateSource::Window).await?;
let x = upsert_environment(&window, v, update_source).await?;
imported_resources.environments.push(x.clone());
}
}
@@ -2137,20 +2139,20 @@ pub async fn batch_upsert<R: Runtime>(
if let Some(_) = imported_resources.folders.iter().find(|f| f.id == v.id) {
continue;
}
let x = upsert_folder(&window, v, &UpdateSource::Window).await?;
let x = upsert_folder(&window, v, update_source).await?;
imported_resources.folders.push(x.clone());
}
}
info!("Imported {} folders", imported_resources.folders.len());
for v in http_requests {
let x = upsert_http_request(&window, v, &UpdateSource::Window).await?;
let x = upsert_http_request(&window, v, update_source).await?;
imported_resources.http_requests.push(x.clone());
}
info!("Imported {} http_requests", imported_resources.http_requests.len());
for v in grpc_requests {
let x = upsert_grpc_request(&window, v, &UpdateSource::Window).await?;
let x = upsert_grpc_request(&window, v, update_source).await?;
imported_resources.grpc_requests.push(x.clone());
}
info!("Imported {} grpc_requests", imported_resources.grpc_requests.len());

View File

@@ -416,6 +416,7 @@ pub(crate) async fn apply_sync_ops<R: Runtime>(
folders_to_upsert,
http_requests_to_upsert,
grpc_requests_to_upsert,
&UpdateSource::Sync,
)
.await?;