Method: Webhookdb::Subscription.status_for_org

Defined in:
lib/webhookdb/subscription.rb

.status_for_org(org) ⇒ Object



151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
# File 'lib/webhookdb/subscription.rb', line 151

def self.status_for_org(org)
  service_integrations = org.service_integrations
  used = service_integrations.count
  data = {
    organization_name: org.name,
    organization_key: org.key,
    organization_formatted: org.display_string,
    billing_email: org.billing_email,
    integrations_used: used,
    integrations_used_formatted: used.to_s,
  }
  subscription = Webhookdb::Subscription[stripe_customer_id: org.stripe_customer_id]
  # TODO: Modify the Stripe JSON to store the values of the fields for paid plans,
  # rather than hard-coding them.
  if subscription.nil?
    data[:plan_name] = "Free"
    data[:integrations_remaining] = [0, Webhookdb::Subscription.max_free_integrations - used].max
    data[:integrations_remaining_formatted] = data[:integrations_remaining].to_s
    data[:sub_status] = ""
  else
    data[:plan_name] = subscription.plan_name
    data[:integrations_remaining] = 2_000_000_000
    data[:integrations_remaining_formatted] = "unlimited"
    data[:sub_status] = subscription.status
  end
  return Status.new(**data)
end