Class: Strava::Models::Upload

Inherits:
Response show all
Defined in:
lib/strava/models/upload.rb

Overview

Represents an activity file upload status.

When uploading activity files (GPX, TCX, FIT) to Strava, the upload is processed asynchronously. This model tracks the upload status and provides helper methods to check if processing is complete.

Examples:

Upload and poll for completion

upload = client.create_upload(
  file: Faraday::UploadIO.new('activity.gpx', 'application/gpx+xml'),
  data_type: 'gpx'
)

while upload.processing?
  sleep 2
  upload = client.upload(upload.id)
end

if upload.error
  puts "Upload failed: #{upload.error}"
else
  puts "Activity created: #{upload.activity_id}"
end

See Also:

Instance Method Summary collapse

Instance Method Details

#activity_idInteger?

Returns Activity ID once processing is complete.

Returns:

  • (Integer, nil)

    Activity ID once processing is complete



50
# File 'lib/strava/models/upload.rb', line 50

property 'activity_id'

#errorString?

Returns Error message if upload failed.

Returns:

  • (String, nil)

    Error message if upload failed



44
# File 'lib/strava/models/upload.rb', line 44

property 'error'

#external_idString

Returns External identifier for the upload.

Returns:

  • (String)

    External identifier for the upload



41
# File 'lib/strava/models/upload.rb', line 41

property 'external_id'

#idInteger

Returns Upload ID.

Returns:

  • (Integer)

    Upload ID



35
# File 'lib/strava/models/upload.rb', line 35

property 'id'

#id_strString

Returns Upload ID as string.

Returns:

  • (String)

    Upload ID as string



38
# File 'lib/strava/models/upload.rb', line 38

property 'id_str'

#processed?Boolean

Checks if the upload has completed processing.

Returns:

  • (Boolean)

    true if upload processing is complete



68
69
70
# File 'lib/strava/models/upload.rb', line 68

def processed?
  !processing?
end

#processing?Boolean

Checks if the upload is still processing.

Returns:

  • (Boolean)

    true if upload is still being processed

Raises:



58
59
60
61
# File 'lib/strava/models/upload.rb', line 58

def processing?
  validate!
  activity_id.nil?
end

#statusString

Returns Status message (e.g., "Your activity is ready.", "Your activity is still being processed.").

Returns:

  • (String)

    Status message (e.g., "Your activity is ready.", "Your activity is still being processed.")



47
# File 'lib/strava/models/upload.rb', line 47

property 'status'