Sha256: c2fbe9febe55a5cf6d0b5551117505525b6b9b9f60ab36ad18ee3e25c80b2a7a

Contents?: true

Size: 535 Bytes

Versions: 1

Compression:

Stored size: 535 Bytes

Contents

module WebhookSystem
  class Subscription < ActiveRecord::Base
    self.table_name = 'webhook_subscriptions'

    validates :url, presence: true
    validates :secret, presence: true

    has_many :topics, class_name: 'WebhookSystem::SubscriptionTopic', dependent: :destroy

    scope :active, -> { where(active: true) }
    scope :for_topic, -> (topic) {
      joins(:topics).where(WebhookSystem::SubscriptionTopic.table_name => { name: topic })
    }

    scope :interested_in_topic, -> (topic) { active.for_topic(topic) }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
webhook_system-0.0.1 lib/webhook_system/subscription.rb