Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 80 additions & 4 deletions api/activity.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
@activity_bp.route('', methods=['POST'])
def create_activity():
data = request.get_json()

try:
activity = Activity(
user_id=data['user_id'],
Expand All @@ -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(
Expand All @@ -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


# 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('/<int:activity_id>', 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
]
})


Empty file added fixing.env
Empty file.
Binary file added instance/reflexionpro_backend.db
Binary file not shown.
44 changes: 44 additions & 0 deletions report.json
Original file line number Diff line number Diff line change
@@ -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"
}
]