44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
import re
|
|
import sys
|
|
|
|
main_rs_path = r"C:\Users\reazul.ashraf\workspace\rust\mcp-memory\server\src\main.rs"
|
|
|
|
with open(main_rs_path, "r", encoding="utf-8") as f:
|
|
content = f.read()
|
|
|
|
# Add the route
|
|
route_code = """
|
|
.route("/api/tasks/:id/complete", post({
|
|
let state_clone = app_state.handler.state.clone();
|
|
move |axum::extract::Path(id): axum::extract::Path<String>| async move {
|
|
if let Ok(mut tasks) = state_clone.tasks.write() {
|
|
let mut found = false;
|
|
for t in tasks.iter_mut() {
|
|
if t.id == id {
|
|
t.status = "completed".to_string();
|
|
found = true;
|
|
break;
|
|
}
|
|
}
|
|
if found {
|
|
let _ = state_clone.flush_store();
|
|
return axum::Json(serde_json::json!({"status": "success"}));
|
|
}
|
|
}
|
|
axum::Json(serde_json::json!({"status": "not_found"}))
|
|
}
|
|
}))
|
|
"""
|
|
|
|
# Find where to insert it (after /api/tasks)
|
|
if ".route(\"/api/tasks/:id/complete\"" not in content:
|
|
content = content.replace(
|
|
'.route("/api/tasks", get({',
|
|
route_code + '\n .route("/api/tasks", get({'
|
|
)
|
|
|
|
with open(main_rs_path, "w", encoding="utf-8") as f:
|
|
f.write(content)
|
|
|
|
print("Injected /api/tasks/:id/complete route successfully.")
|