0.4.1
This commit is contained in:
@@ -323,6 +323,38 @@ VALUES (?, ?, ?, ?, ?, ?, ?)
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) async fn insert_raw_ws_message(
|
||||
pool: &sqlx::SqlitePool,
|
||||
session_id: i64,
|
||||
direction: &str,
|
||||
message_text: &str,
|
||||
) -> core::result::Result<(), crate::KhbbError> {
|
||||
let now = chrono::Utc::now().to_rfc3339();
|
||||
let insert_result = sqlx::query(
|
||||
r#"
|
||||
INSERT INTO raw_ws_messages (
|
||||
listener_session_id,
|
||||
direction,
|
||||
message_text,
|
||||
created_at
|
||||
) VALUES (?1, ?2, ?3, ?4);
|
||||
"#,
|
||||
)
|
||||
.bind(session_id)
|
||||
.bind(direction)
|
||||
.bind(message_text)
|
||||
.bind(now)
|
||||
.execute(pool)
|
||||
.await;
|
||||
match insert_result {
|
||||
Ok(_) => Ok(()),
|
||||
Err(error) => Err(crate::KhbbError::Database {
|
||||
context: "insert raw websocket message",
|
||||
message: error.to_string(),
|
||||
}),
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
@@ -473,4 +505,26 @@ WHERE id = ?1;
|
||||
insert_raw_http_rpc_message(&pool, session.id, 1, "getSlot", "{}", "{}", "ok").await;
|
||||
assert!(result.is_ok());
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn insert_raw_ws_message_inserts_row() {
|
||||
let database_url = build_temp_sqlite_url();
|
||||
let pool_result = crate::create_sqlite_pool(&database_url).await;
|
||||
assert!(pool_result.is_ok());
|
||||
let pool = pool_result.expect("create sqlite pool");
|
||||
let schema_result = crate::ensure_sqlite_schema(&pool).await;
|
||||
assert!(schema_result.is_ok());
|
||||
let config = build_test_config(database_url);
|
||||
let insert_session_result = super::insert_listener_session(&pool, &config).await;
|
||||
assert!(insert_session_result.is_ok());
|
||||
let session = insert_session_result.expect("insert listener session");
|
||||
let insert_ws_result = super::insert_raw_ws_message(
|
||||
&pool,
|
||||
session.id,
|
||||
"incoming",
|
||||
r#"{"jsonrpc":"2.0","method":"slotNotification"}"#,
|
||||
)
|
||||
.await;
|
||||
assert!(insert_ws_result.is_ok());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user