Class: Tiler::DataSource

Inherits:
ApplicationRecord show all
Defined in:
app/models/tiler/data_source.rb

Constant Summary collapse

INGESTION_METHODS =
%w[webhook manual csv].freeze
COLUMN_TYPES =
%w[string integer float boolean datetime enum].freeze

Instance Method Summary collapse

Instance Method Details

#parsed_ingestion_methodsObject



30
31
32
33
34
# File 'app/models/tiler/data_source.rb', line 30

def parsed_ingestion_methods
  JSON.parse(ingestion_methods.presence || "[]")
rescue JSON::ParserError
  []
end

#parsed_schemaObject



24
25
26
27
28
# File 'app/models/tiler/data_source.rb', line 24

def parsed_schema
  JSON.parse(schema_definition.presence || "[]")
rescue JSON::ParserError
  []
end

#regenerate_webhook_token!Object



44
45
46
# File 'app/models/tiler/data_source.rb', line 44

def regenerate_webhook_token!
  update!(webhook_token: SecureRandom.urlsafe_base64(32))
end

#schema_column_keysObject



36
37
38
# File 'app/models/tiler/data_source.rb', line 36

def schema_column_keys
  parsed_schema.map { |c| c["key"] }
end

#to_paramObject



48
49
50
# File 'app/models/tiler/data_source.rb', line 48

def to_param
  slug
end

#webhook_enabled?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'app/models/tiler/data_source.rb', line 40

def webhook_enabled?
  parsed_ingestion_methods.include?("webhook")
end