Class: Webhookdb::Replicator::StripeSubscriptionV1
- Includes:
- Appydays::Loggable, StripeV1Mixin
- Defined in:
- lib/webhookdb/replicator/stripe_subscription_v1.rb
Constant Summary
Constants inherited from Base
Constants included from DBAdapter::ColumnTypes
DBAdapter::ColumnTypes::BIGINT, DBAdapter::ColumnTypes::BIGINT_ARRAY, DBAdapter::ColumnTypes::BOOLEAN, DBAdapter::ColumnTypes::COLUMN_TYPES, DBAdapter::ColumnTypes::DATE, DBAdapter::ColumnTypes::DECIMAL, DBAdapter::ColumnTypes::DOUBLE, DBAdapter::ColumnTypes::FLOAT, DBAdapter::ColumnTypes::INTEGER, DBAdapter::ColumnTypes::INTEGER_ARRAY, DBAdapter::ColumnTypes::OBJECT, DBAdapter::ColumnTypes::TEXT, DBAdapter::ColumnTypes::TEXT_ARRAY, DBAdapter::ColumnTypes::TIMESTAMP, DBAdapter::ColumnTypes::UUID
Instance Attribute Summary
Attributes inherited from Base
Class Method Summary collapse
Instance Method Summary collapse
- #_denormalized_columns ⇒ Object
- #_mixin_backfill_url ⇒ Object
- #_mixin_event_type_names ⇒ Object
- #_remote_key_column ⇒ Object
- #_update_where_expr ⇒ Object
Methods included from StripeV1Mixin
#_fetch_backfill_page, #_resource_and_event, #_timestamp_column_name, #_verify_backfill_401_err_msg, #_verify_backfill_403_err_msg, #_verify_backfill_err_msg, #_webhook_response, #calculate_backfill_state_machine, #calculate_webhook_state_machine, #restricted_key_resource_name
Methods inherited from Base
#_any_subscriptions_to_notify?, #_backfill_state_change_fields, #_backfillers, #_clear_backfill_information, #_clear_webook_information, #_coalesce_excluded_on_update, #_enqueue_backfill_jobs, #_extra_index_specs, #_fetch_enrichment, #_find_dependency_candidate, #_notify_dependents, #_parallel_backfill, #_prepare_for_insert, #_publish_rowupsert, #_resource_and_event, #_resource_to_data, #_store_enrichment_body?, #_timestamp_column_name, #_to_json, #_upsert_update_expr, #_upsert_webhook, #_verify_backfill_err_msg, #_webhook_response, #_webhook_state_change_fields, #admin_dataset, #backfill, #backfill_not_supported_message, #calculate_and_backfill_state_machine, #calculate_backfill_state_machine, #calculate_dependency_state_machine_step, #calculate_preferred_create_state_machine, #calculate_webhook_state_machine, chunked_row_update_bounds, #clear_backfill_information, #clear_webhook_information, #create_table, #create_table_modification, #data_column, #dbadapter_table, #denormalized_columns, #descriptor, #dispatch_request_to, #documentation_url, #enqueue_sync_targets, #enrichment_column, #ensure_all_columns, #ensure_all_columns_modification, #find_dependent, #find_dependent!, #indices, #initialize, #on_dependency_webhook_upsert, #preferred_create_state_machine_method, #preprocess_headers_for_logging, #primary_key_column, #process_state_change, #process_webhooks_synchronously?, #qualified_table_sequel_identifier, #readonly_dataset, #remote_key_column, #requires_sequence?, #resource_name_plural, #resource_name_singular, #schema_and_table_symbols, #storable_columns, #synchronous_processing_response_body, #timestamp_column, #upsert_has_deps?, #upsert_webhook, #upsert_webhook_body, #verify_backfill_credentials, #webhook_endpoint, #webhook_response
Constructor Details
This class inherits a constructor from Webhookdb::Replicator::Base
Class Method Details
.descriptor ⇒ Webhookdb::Replicator::Descriptor
11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/webhookdb/replicator/stripe_subscription_v1.rb', line 11 def self.descriptor return Webhookdb::Replicator::Descriptor.new( name: "stripe_subscription_v1", ctor: ->(sint) { Webhookdb::Replicator::StripeSubscriptionV1.new(sint) }, feature_roles: [], resource_name_singular: "Stripe Subscription", supports_webhooks: true, supports_backfill: true, api_docs_url: "https://stripe.com/docs/api/subscriptions", ) end |
Instance Method Details
#_denormalized_columns ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/webhookdb/replicator/stripe_subscription_v1.rb', line 27 def _denormalized_columns return [ Webhookdb::Replicator::Column.new(:billing_cycle_anchor, TIMESTAMP, index: true, converter: :tsat), Webhookdb::Replicator::Column.new(:cancel_at, TIMESTAMP, index: true, optional: true, converter: :tsat), Webhookdb::Replicator::Column.new(:canceled_at, TIMESTAMP, index: true, optional: true, converter: :tsat), Webhookdb::Replicator::Column.new(:created, TIMESTAMP, index: true, converter: :tsat), Webhookdb::Replicator::Column.new(:current_period_end, TIMESTAMP, index: true, converter: :tsat), Webhookdb::Replicator::Column.new(:current_period_start, TIMESTAMP, index: true, converter: :tsat), Webhookdb::Replicator::Column.new(:customer, TEXT, index: true), Webhookdb::Replicator::Column.new(:default_payment_method, TEXT), Webhookdb::Replicator::Column.new(:default_source, TEXT), Webhookdb::Replicator::Column.new(:discount, TEXT, index: true), Webhookdb::Replicator::Column.new(:ended_at, TIMESTAMP, index: true, optional: true), Webhookdb::Replicator::Column.new(:latest_invoice, TEXT, index: true), Webhookdb::Replicator::Column.new(:schedule, TEXT, index: true), Webhookdb::Replicator::Column.new(:start_date, TIMESTAMP, index: true, converter: :tsat), Webhookdb::Replicator::Column.new(:status, TEXT), Webhookdb::Replicator::Column.new(:trial_end, TIMESTAMP, optional: true, converter: :tsat), Webhookdb::Replicator::Column.new(:trial_start, TIMESTAMP, optional: true, converter: :tsat), Webhookdb::Replicator::Column.new( :updated, TIMESTAMP, index: true, data_key: "created", event_key: "created", converter: :tsat, ), ] end |
#_mixin_backfill_url ⇒ Object
61 62 63 |
# File 'lib/webhookdb/replicator/stripe_subscription_v1.rb', line 61 def _mixin_backfill_url return "https://api.stripe.com/v1/subscriptions" end |
#_mixin_event_type_names ⇒ Object
65 66 67 68 69 70 71 72 73 74 |
# File 'lib/webhookdb/replicator/stripe_subscription_v1.rb', line 65 def _mixin_event_type_names return [ "customer.subscription.created", "customer.subscription.deleted", "customer.subscription.pending_update_applied", "customer.subscription.pending_update_expired", "customer.subscription.trial_will_end", "customer.subscription.updated", ] end |
#_remote_key_column ⇒ Object
23 24 25 |
# File 'lib/webhookdb/replicator/stripe_subscription_v1.rb', line 23 def _remote_key_column return Webhookdb::Replicator::Column.new(:stripe_id, TEXT, data_key: "id") end |
#_update_where_expr ⇒ Object
57 58 59 |
# File 'lib/webhookdb/replicator/stripe_subscription_v1.rb', line 57 def _update_where_expr return self.qualified_table_sequel_identifier[:updated] < Sequel[:excluded][:updated] end |