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(); }