mirror of
https://github.com/sstent/FitTrack_GarminSync.git
synced 2026-01-25 16:41:41 +00:00
102 lines
3.3 KiB
JSON
102 lines
3.3 KiB
JSON
{
|
|
"openapi": "3.0.0",
|
|
"info": {
|
|
"title": "GarminSync Service API - Workout Upload",
|
|
"version": "1.0.0",
|
|
"description": "API for uploading workouts to Garmin Connect."
|
|
},
|
|
"paths": {
|
|
"/api/sync/garmin/workouts": {
|
|
"post": {
|
|
"summary": "Upload Workout to Garmin Connect",
|
|
"operationId": "uploadGarminWorkout",
|
|
"requestBody": {
|
|
"description": "Workout definition to be uploaded.",
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"workout_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"description": "Unique identifier of the workout within the application."
|
|
},
|
|
"workout_name": {
|
|
"type": "string",
|
|
"description": "Name of the workout."
|
|
},
|
|
"workout_type": {
|
|
"type": "string",
|
|
"description": "Type of workout (e.g., 'running', 'cycling')."
|
|
},
|
|
"scheduled_date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"description": "Date the workout is scheduled for (YYYY-MM-DD)."
|
|
},
|
|
"workout_data": {
|
|
"type": "object",
|
|
"description": "Structured data defining the workout steps and targets. (Schema to be defined based on Garmin Connect workout API)."
|
|
}
|
|
},
|
|
"required": [
|
|
"workout_id",
|
|
"workout_name",
|
|
"workout_type",
|
|
"scheduled_date",
|
|
"workout_data"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"202": {
|
|
"description": "Workout upload initiated successfully. Returns a SyncJob ID.",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"job_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"description": "Unique identifier for the initiated workout upload job."
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"description": "Current status of the job (e.g., 'pending', 'in_progress')."
|
|
},
|
|
"message": {
|
|
"type": "string",
|
|
"description": "Confirmation message."
|
|
}
|
|
},
|
|
"required": [
|
|
"job_id",
|
|
"status",
|
|
"message"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Invalid workout data provided."
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized. User not authenticated with Garmin Connect."
|
|
},
|
|
"500": {
|
|
"description": "Internal server error."
|
|
}
|
|
},
|
|
"tags": [
|
|
"Synchronization"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
} |