Class: Strava::Webhooks::Models::Event

Inherits:
Hashie::Trash
  • Object
show all
Defined in:
lib/strava/webhooks/models/event.rb

Overview

Represents a webhook event from Strava.

After successfully creating a webhook subscription, Strava will send POST requests to your callback URL when activity events occur. Events include activity creation, updates, and deletions.

Examples:

Handle webhook event in Rails

def webhook
  if request.post?
    event = Strava::Webhooks::Models::Event.new(JSON.parse(request.body.read))

    case event.object_type
    when 'activity'
      case event.aspect_type
      when 'create'
        # Fetch and process the new activity
        activity = client.activity(event.id)
        process_new_activity(activity)
      when 'update'
        # Handle activity update
        puts "Activity #{event.id} updated: #{event.updates.inspect}"
      when 'delete'
        # Handle activity deletion
        delete_activity(event.id)
      end
    when 'athlete'
      # Handle athlete updates (authorization revoked, etc.)
    end

    head :ok
  end
end

See Also:

Instance Method Summary collapse

Instance Method Details

#aspect_typeString

Returns Type of event: "create", "update", or "delete".

Returns:

  • (String)

    Type of event: "create", "update", or "delete"



51
# File 'lib/strava/webhooks/models/event.rb', line 51

property 'aspect_type'

#event_timeTime

Returns Timestamp when the event occurred.

Returns:

  • (Time)

    Timestamp when the event occurred



63
# File 'lib/strava/webhooks/models/event.rb', line 63

property 'event_time', transform_with: ->(v) { Time.at(v) }

#idInteger

Returns ID of the object (activity ID, athlete ID, etc.).

Returns:

  • (Integer)

    ID of the object (activity ID, athlete ID, etc.)



48
# File 'lib/strava/webhooks/models/event.rb', line 48

property 'id', from: 'object_id'

#object_typeString

Returns Type of object (e.g., "activity", "athlete").

Returns:

  • (String)

    Type of object (e.g., "activity", "athlete")



45
# File 'lib/strava/webhooks/models/event.rb', line 45

property 'object_type'

#owner_idInteger

Returns Athlete ID who owns the object.

Returns:

  • (Integer)

    Athlete ID who owns the object



57
# File 'lib/strava/webhooks/models/event.rb', line 57

property 'owner_id'

#subscription_idInteger

Returns ID of the webhook subscription.

Returns:

  • (Integer)

    ID of the webhook subscription



60
# File 'lib/strava/webhooks/models/event.rb', line 60

property 'subscription_id'

#updatesHash

Returns Map of updated properties (only for update events).

Returns:

  • (Hash)

    Map of updated properties (only for update events)



54
# File 'lib/strava/webhooks/models/event.rb', line 54

property 'updates'