From 9b565f21ecb5e824b531a41f1b9b5766d8c9a174 Mon Sep 17 00:00:00 2001 From: Matt Huntington Date: Sat, 5 Jul 2025 23:02:08 -0400 Subject: [PATCH] use id of session just created for session id of song_practiced --- server.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/server.cpp b/server.cpp index 812f0d3..ff4f6f0 100644 --- a/server.cpp +++ b/server.cpp @@ -34,10 +34,10 @@ int main() connect(); crow::json::wvalue status; auto request_body = crow::json::load(req.body); - + int new_session_id; if(request_body.has("comments")){ - prep_stmt = con->prepareStatement("INSERT INTO practice_sessions (description, seconds, comments, practice_category_id) VALUES (?, ?, ?, ?)"); + prep_stmt = con->prepareStatement("INSERT INTO practice_sessions (description, seconds, comments, practice_category_id) VALUES (?, ?, ?, ?) RETURNING id"); string description = request_body["description"].s(); int seconds = request_body["seconds"].i(); @@ -48,11 +48,13 @@ int main() prep_stmt->setInt(2, seconds); prep_stmt->setString(3, comments); prep_stmt->setInt(4, practice_category_id); - prep_stmt->execute(); + ResultSet *res = prep_stmt->executeQuery(); + res->next(); + new_session_id = res->getInt("id"); } else { - prep_stmt = con->prepareStatement("INSERT INTO practice_sessions (description, seconds, practice_category_id) VALUES (?, ?, ?)"); + prep_stmt = con->prepareStatement("INSERT INTO practice_sessions (description, seconds, practice_category_id) VALUES (?, ?, ?) RETURNING id"); string description = request_body["description"].s(); int seconds = request_body["seconds"].i(); @@ -61,14 +63,16 @@ int main() prep_stmt->setString(1, description); prep_stmt->setInt(2, seconds); prep_stmt->setInt(3, practice_category_id); - prep_stmt->execute(); + ResultSet *res = prep_stmt->executeQuery(); + res->next(); + new_session_id = res->getInt("id"); } if(request_body.has("songs")){ for(const auto& song : request_body["songs"]){ prep_stmt = con->prepareStatement("INSERT INTO songs_practiced (practice_session_id, song_id) VALUES (?, ?)"); - prep_stmt->setInt(1, 5377); + prep_stmt->setInt(1, new_session_id); prep_stmt->setInt(2, int(song["id"])); prep_stmt->execute(); }