Class: ForestAdminDatasourceZendesk::Schema::CustomFieldsIntrospector

Inherits:
Object
  • Object
show all
Defined in:
lib/forest_admin_datasource_zendesk/schema/custom_fields_introspector.rb

Overview

Returns entries shaped { column_name:, zendesk_id:, zendesk_key:, schema: }. ‘zendesk_key` is set for user/org fields (Zendesk addresses those by key); ticket fields use `zendesk_id` only.

Constant Summary collapse

ColumnSchema =
ForestAdminDatasourceToolkit::Schema::ColumnSchema
Operators =
ForestAdminDatasourceToolkit::Components::Query::ConditionTree::Operators
STRING_OPS =
[Operators::EQUAL, Operators::NOT_EQUAL, Operators::IN, Operators::NOT_IN,
Operators::PRESENT, Operators::BLANK].freeze
NUMBER_OPS =
(STRING_OPS + [Operators::GREATER_THAN, Operators::LESS_THAN]).freeze
DATE_OPS =
[Operators::EQUAL, Operators::BEFORE, Operators::AFTER,
Operators::PRESENT, Operators::BLANK].freeze
ZENDESK_TO_COLUMN_TYPE =
{
  'text' => 'String',
  'textarea' => 'String',
  'regexp' => 'String',
  'partialcreditcard' => 'String',
  'integer' => 'Number',
  'decimal' => 'Number',
  'date' => 'Dateonly',
  'checkbox' => 'Boolean',
  'dropdown' => 'Enum',
  'tagger' => 'Enum',
  'multiselect' => 'Json',
  'lookup' => 'Number'
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ CustomFieldsIntrospector

Returns a new instance of CustomFieldsIntrospector.



31
32
33
# File 'lib/forest_admin_datasource_zendesk/schema/custom_fields_introspector.rb', line 31

def initialize(client)
  @client = client
end

Instance Method Details

#organization_custom_fieldsObject



43
44
45
# File 'lib/forest_admin_datasource_zendesk/schema/custom_fields_introspector.rb', line 43

def organization_custom_fields
  introspect(@client.fetch_organization_fields, key_strategy: :user_or_org)
end

#ticket_custom_fieldsObject



35
36
37
# File 'lib/forest_admin_datasource_zendesk/schema/custom_fields_introspector.rb', line 35

def ticket_custom_fields
  introspect(@client.fetch_ticket_fields, key_strategy: :ticket)
end

#user_custom_fieldsObject



39
40
41
# File 'lib/forest_admin_datasource_zendesk/schema/custom_fields_introspector.rb', line 39

def user_custom_fields
  introspect(@client.fetch_user_fields, key_strategy: :user_or_org)
end