Sha256: 8f404ef996231b11f66731727e7b901178b31f5e73f31bf081d12917ee353e15

Contents?: true

Size: 996 Bytes

Versions: 3

Compression:

Stored size: 996 Bytes

Contents

# frozen_string_literal: true

module Strava
  module Models
    class Upload < Strava::Models::Response
      property 'id'
      property 'external_id'
      property 'error'
      property 'status'
      property 'activity_id'

      def processing?
        validate!
        activity_id.nil?
      end

      def processed?
        !processing?
      end

      private

      def validate!
        raise_when_background_job_failed!
      end

      def raise_when_background_job_failed!
        response = http_response.response
        return unless response_contains_error_message?(response)

        raise Strava::Errors::UploadError, response_values(response)
      end

      def response_contains_error_message?(response)
        response.status == 200 && response.body['error'].present?
      end

      def response_values(response)
        {
          status: response.status,
          headers: response.headers,
          body: response.body
        }
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
strava-ruby-client-2.2.0 lib/strava/models/upload.rb
strava-ruby-client-2.1.0 lib/strava/models/upload.rb
strava-ruby-client-2.0.0 lib/strava/models/upload.rb