Skip to Content Skip to Search
Namespace
Methods
A
C
N
P
R
S
V

Attributes

[R] integration

Class Public methods

new(integration)

# File app/lib/integration_provider/castos.rb, line 5
def initialize(integration)
  @integration = integration
end

Instance Public methods

api_key()

# File app/lib/integration_provider/castos.rb, line 43
def api_key
  get_authentication(:api_key)
end

connected?()

# File app/lib/integration_provider/castos.rb, line 39
def connected?
  api_key.present?
end

numeric_podcast_ids()

# File app/lib/integration_provider/castos.rb, line 17
def numeric_podcast_ids
  podcast_ids.keys.map(&:to_i)
end

podcast_ids()

# File app/lib/integration_provider/castos.rb, line 13
def podcast_ids
  api_connector.get_podcasts.dig(:data, :podcast_list) || {}
end

revoke_member(email, plan = nil)

# File app/lib/integration_provider/castos.rb, line 21
def revoke_member(email, plan = nil)
  return unless revoke_subscription?(email, plan)

  CastosRevokerJob.perform_later({
    integration_id: integration.id,
    member_emails: [email]
  })
end

subscribe_member(member, plan)

# File app/lib/integration_provider/castos.rb, line 30
def subscribe_member(member, plan)
  return unless integration.plan_ids.include?(plan.id)

  CastosSubscriberJob.perform_later({
    integration_id: integration.id,
    member_ids: [member.id]
  })
end

valid?()

# File app/lib/integration_provider/castos.rb, line 9
def valid?
  IntegrationValidator.new(integration: integration).run!
end