From d0d45fb8b0de4848bc53a6975169159d4a163ffb Mon Sep 17 00:00:00 2001 From: Dylan De Faoite Date: Sat, 31 Jan 2026 15:12:31 +0000 Subject: [PATCH] feat: add search query endpoint --- server/app.py | 13 +++++++++++++ server/stat_gen.py | 5 ++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/server/app.py b/server/app.py index a5cb482..812e72b 100644 --- a/server/app.py +++ b/server/app.py @@ -75,6 +75,19 @@ def word_frequencies(): return jsonify({"error": f"Malformed or missing data: {str(e)}"}), 400 except Exception as e: return jsonify({"error": f"An unexpected error occurred: {str(e)}"}), 500 + +@app.route('/stats/search', methods=["POST"]) +def search_dataset(): + if stat_obj is None: + return jsonify({"error": "No data uploaded"}), 400 + + data = request.get_json(silent=True) or {} + + if "query" not in data: + return stat_obj.df + + query = data["query"] + return jsonify(stat_obj.get_events_containing(query).to_dict(orient='records')), 200 if __name__ == "__main__": app.run(debug=True) \ No newline at end of file diff --git a/server/stat_gen.py b/server/stat_gen.py index 851942b..e2afdd2 100644 --- a/server/stat_gen.py +++ b/server/stat_gen.py @@ -102,4 +102,7 @@ class StatGen: return self.word_frequencies def get_events_per_day(self) -> pd.DataFrame: - return self.events_per_day \ No newline at end of file + return self.events_per_day + + def get_events_containing(self, search_query: str) -> pd.DataFrame: + return self.df[self.df["content"].str.contains(search_query)] \ No newline at end of file