diff --git a/api/activity.py b/api/activity.py index d21b9d6..036fbc1 100644 --- a/api/activity.py +++ b/api/activity.py @@ -8,7 +8,6 @@ @activity_bp.route('', methods=['POST']) def create_activity(): data = request.get_json() - try: activity = Activity( user_id=data['user_id'], @@ -31,7 +30,7 @@ def create_activity(): min_elevation=data['min_elevation'] ) - # Handle optional time series data + # Optional time series time_series_list = data.get('time_series', []) for point in time_series_list: ts = ActivityTimeSeries( @@ -46,11 +45,88 @@ def create_activity(): db.session.add(activity) db.session.commit() - return jsonify({"message": "Activity and time series created", "activity_id": activity.id}), 201 except Exception as e: db.session.rollback() return jsonify({"error": str(e)}), 500 - \ No newline at end of file +# GET all activities +@activity_bp.route('', methods=['GET']) +def get_all_activities(): + activities = Activity.query.all() + result = [] + for activity in activities: + result.append({ + "id": activity.id, + "user_id": activity.user_id, + "begin_time": activity.begin_time.isoformat(), + "end_time": activity.end_time.isoformat(), + "activity_type": activity.activity_type, + "coach": activity.coach, + "average_speed": activity.average_speed, + "max_speed": activity.max_speed, + "average_heart_rate": activity.average_heart_rate, + "max_heart_rate": activity.max_heart_rate, + "calories": activity.calories, + "duration": activity.duration, + "moving_duration": activity.moving_duration, + "average_moving_speed": activity.average_moving_speed, + "distance": activity.distance, + "elevation_gain": activity.elevation_gain, + "elevation_loss": activity.elevation_loss, + "max_elevation": activity.max_elevation, + "min_elevation": activity.min_elevation, + "time_series": [ + { + "timestamp": ts.timestamp.isoformat(), + "longitude": ts.longitude, + "latitude": ts.latitude, + "elevation": ts.elevation, + "heart_rate": ts.heart_rate, + "cadence": ts.cadence + } for ts in activity.time_series + ] + }) + return jsonify(result) + +# GET single activity by ID +@activity_bp.route('/', methods=['GET']) +def get_activity(activity_id): + activity = Activity.query.get(activity_id) + if not activity: + return jsonify({"error": "Activity not found"}), 404 + + return jsonify({ + "id": activity.id, + "user_id": activity.user_id, + "begin_time": activity.begin_time.isoformat(), + "end_time": activity.end_time.isoformat(), + "activity_type": activity.activity_type, + "coach": activity.coach, + "average_speed": activity.average_speed, + "max_speed": activity.max_speed, + "average_heart_rate": activity.average_heart_rate, + "max_heart_rate": activity.max_heart_rate, + "calories": activity.calories, + "duration": activity.duration, + "moving_duration": activity.moving_duration, + "average_moving_speed": activity.average_moving_speed, + "distance": activity.distance, + "elevation_gain": activity.elevation_gain, + "elevation_loss": activity.elevation_loss, + "max_elevation": activity.max_elevation, + "min_elevation": activity.min_elevation, + "time_series": [ + { + "timestamp": ts.timestamp.isoformat(), + "longitude": ts.longitude, + "latitude": ts.latitude, + "elevation": ts.elevation, + "heart_rate": ts.heart_rate, + "cadence": ts.cadence + } for ts in activity.time_series + ] + }) + + diff --git a/fixing.env b/fixing.env new file mode 100644 index 0000000..e69de29 diff --git a/instance/reflexionpro_backend.db b/instance/reflexionpro_backend.db new file mode 100644 index 0000000..da2ae6e Binary files /dev/null and b/instance/reflexionpro_backend.db differ diff --git a/report.json b/report.json new file mode 100644 index 0000000..e4d9e3d --- /dev/null +++ b/report.json @@ -0,0 +1,44 @@ +[ + { + "RuleID": "gcp-api-key", + "Description": "Uncovered a GCP API key, which could lead to unauthorized access to Google Cloud services and data breaches.", + "StartLine": 7, + "EndLine": 7, + "StartColumn": 17, + "EndColumn": 56, + "Match": "AIzaSyC7iwP0768QD5WWBdBVcAtwfSE1F7BSifw\"", + "Secret": "AIzaSyC7iwP0768QD5WWBdBVcAtwfSE1F7BSifw", + "File": "authentication.py", + "SymlinkFile": "", + "Commit": "c51b9a4b421b35cad211543d9c51cf26cdf706ef", + "Link": "https://github.com/Redback-Operations/redback-fit-backend/blob/c51b9a4b421b35cad211543d9c51cf26cdf706ef/authentication.py#L7", + "Entropy": 4.592593, + "Author": "Skyithamster", + "Email": "ttlau830@gmail.com", + "Date": "2025-05-12T16:48:27Z", + "Message": "Adding sign up feature", + "Tags": [], + "Fingerprint": "c51b9a4b421b35cad211543d9c51cf26cdf706ef:authentication.py:gcp-api-key:7" + }, + { + "RuleID": "gcp-api-key", + "Description": "Uncovered a GCP API key, which could lead to unauthorized access to Google Cloud services and data breaches.", + "StartLine": 7, + "EndLine": 7, + "StartColumn": 17, + "EndColumn": 56, + "Match": "AIzaSyC7iwP0768QD5WWBdBVcAtwfSE1F7BSifw\"", + "Secret": "AIzaSyC7iwP0768QD5WWBdBVcAtwfSE1F7BSifw", + "File": ".ipynb_checkpoints/authentication-checkpoint.py", + "SymlinkFile": "", + "Commit": "f6df9adf2415dbef1f19a5957f80e9df47d247b9", + "Link": "https://github.com/Redback-Operations/redback-fit-backend/blob/f6df9adf2415dbef1f19a5957f80e9df47d247b9/.ipynb_checkpoints/authentication-checkpoint.py#L7", + "Entropy": 4.592593, + "Author": "Skyithamster", + "Email": "ttlau830@gmail.com", + "Date": "2025-05-06T06:08:17Z", + "Message": "Made requested changes", + "Tags": [], + "Fingerprint": "f6df9adf2415dbef1f19a5957f80e9df47d247b9:.ipynb_checkpoints/authentication-checkpoint.py:gcp-api-key:7" + } +]