add history for room update
This commit is contained in:
BIN
db/1.sqlite
BIN
db/1.sqlite
Binary file not shown.
@@ -9,5 +9,5 @@ pub fn inventory_routes() -> Router<AppState> {
|
||||
|
||||
Router::new()
|
||||
.route("/update_item/{item_id}/{item_amount}", put(update_inventory_item))
|
||||
.route("/add_item/{item_name/{items_amount}", post(create_inventory_item))
|
||||
.route("/add_item/{item_name}/{item_amount}", post(create_inventory_item))
|
||||
}
|
||||
@@ -22,17 +22,7 @@ pub async fn hello_rooms() -> String {
|
||||
"hello from rooms".to_string()
|
||||
}
|
||||
|
||||
//fake handler
|
||||
pub async fn fake_room_update(
|
||||
Path(room_id): Path<i32>,
|
||||
UpdateRoomPayload(payload): UpdateRoomPayload
|
||||
) -> impl IntoResponse {
|
||||
|
||||
format!(
|
||||
"Got: status={}, room_id={}",
|
||||
payload.status, room_id
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
pub async fn fake_db_update(
|
||||
State(state): State<AppState>,
|
||||
@@ -52,16 +42,11 @@ pub async fn fake_db_update(
|
||||
params![&payload.status, &room_id],
|
||||
);
|
||||
|
||||
|
||||
|
||||
match result {
|
||||
Ok(rows) if rows > 0 => (StatusCode::OK, format!("Updated room {room_id} in hotel {}", hotel_id)),
|
||||
Ok(_) => (StatusCode::NOT_FOUND, "No room found".to_string()),
|
||||
Err(err) => (StatusCode::INTERNAL_SERVER_ERROR, format!("DB error: {err}")),
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
pub async fn clean_db_update(
|
||||
@@ -82,14 +67,23 @@ pub async fn clean_db_update(
|
||||
Err(err) => return (StatusCode::INTERNAL_SERVER_ERROR, format!("Pool error: {err}")),
|
||||
};
|
||||
|
||||
let result = conn.execute(
|
||||
"UPDATE rooms SET status = ?1 WHERE number = ?2",
|
||||
let result: Result<String, rusqlite::Error> = conn.query_row(
|
||||
"UPDATE rooms SET status = ?1 WHERE id = ?2 RETURNING number",
|
||||
params![&payload.status, &room_id],
|
||||
|row| row.get(0),
|
||||
);
|
||||
|
||||
|
||||
match result {
|
||||
Ok(rows) if rows > 0 => {
|
||||
Ok(room_number) => {
|
||||
// --- broadcast to all WS clients in the hotel ---
|
||||
|
||||
if let Err(err) = conn.execute(
|
||||
"INSERT INTO room_history (room_id, room_number, status) VALUES (?1, ?2, ?3)",
|
||||
params![&room_id, &room_number, &payload.status],
|
||||
) {
|
||||
return (StatusCode::INTERNAL_SERVER_ERROR, format!("Failed to insert history: {err}"));
|
||||
}
|
||||
if let Some(hotel_users) = state.ws_map.get(&hotel_id) {
|
||||
let update_msg = json!({
|
||||
"room_id": room_id,
|
||||
|
||||
@@ -16,7 +16,6 @@ pub fn rooms_routes() -> Router<AppState> {
|
||||
|
||||
Router::new()
|
||||
.route("/", get(hello_rooms) )
|
||||
.route("/fakeUpdate/{room_id}", put(fake_room_update))
|
||||
.route("/clean_db_update/{room_id}", put(clean_db_update))
|
||||
.route("/rooms", get(get_all_rooms))
|
||||
}
|
||||
Reference in New Issue
Block a user