diff --git a/src/batch_queue/mod.rs b/src/batch_queue/mod.rs index fa044bf..77f3b64 100644 --- a/src/batch_queue/mod.rs +++ b/src/batch_queue/mod.rs @@ -1096,6 +1096,7 @@ mod tests { count: 1, data_entry_id: Uuid::new_v4(), session_id: None, + build_id: None, created_at: Utc::now(), }, tracking: None, diff --git a/src/handler/mod.rs b/src/handler/mod.rs index bbee664..897d32d 100644 --- a/src/handler/mod.rs +++ b/src/handler/mod.rs @@ -504,6 +504,7 @@ pub async fn insert_error_entries( count: data.count.unwrap_or(1).max(0) as u32, data_entry_id, session_id: data.session_id, + build_id: data.build_id, created_at: chrono::Utc::now(), }; diff --git a/src/handler/web.rs b/src/handler/web.rs index e93e255..e23b2a5 100644 --- a/src/handler/web.rs +++ b/src/handler/web.rs @@ -27,6 +27,8 @@ pub(crate) struct WebRequest { pub(crate) errors: Option>, #[serde(default)] pub(crate) session_id: Option, + #[serde(default)] + pub(crate) build_id: Option, } pub async fn web( @@ -48,6 +50,7 @@ pub async fn web( mut data, errors, session_id: parsed_session_id, + build_id, } = match serde_json::from_slice(&body) { Ok(req) => req, Err(_) => return error_response(StatusCode::BAD_REQUEST, "Invalid JSON"), @@ -200,6 +203,9 @@ pub async fn web( if error.session_id.is_none() { error.session_id = session_id.clone(); } + if error.build_id.is_none() { + error.build_id = build_id.clone(); + } if let Err(e) = insert_error_entries( &state.batch_queue, ctx.project_id, diff --git a/src/models.rs b/src/models.rs index f54efb8..680670b 100644 --- a/src/models.rs +++ b/src/models.rs @@ -42,6 +42,8 @@ pub struct ErrorTracking { pub count: Option, #[serde(default, rename = "sessionId")] pub session_id: Option, + #[serde(default, rename = "buildId")] + pub build_id: Option, } #[derive(Debug, Serialize, Deserialize)] diff --git a/src/tinybird.rs b/src/tinybird.rs index 1f0172a..d401f3a 100644 --- a/src/tinybird.rs +++ b/src/tinybird.rs @@ -82,6 +82,7 @@ pub struct ErrorTrackingRow { pub count: u32, pub data_entry_id: Uuid, pub session_id: Option, + pub build_id: Option, #[serde(with = "chrono::serde::ts_milliseconds")] pub created_at: DateTime, }