Class: AirbyteRuby::Resources::Destination

Inherits:
Base
  • Object
show all
Defined in:
lib/airbyte_ruby/resources/destination.rb

Overview

Resource class for Airbyte Destinations

Constant Summary collapse

ENDPOINTS =
OpenStruct.new(
  list: "/destinations?includeDeleted=false&limit=20&offset=0",
  create: "/destinations",
  get: "/destinations/:destination_id",
  update: "/destinations/:destination_id",
  delete: "/destinations/:destination_id"
)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(adapter, args = {}) ⇒ Destination

TODO: Include Base module once ready rubocop:disable Lint/MissingSuper



19
20
21
22
23
24
25
# File 'lib/airbyte_ruby/resources/destination.rb', line 19

def initialize(adapter, args = {})
  @id = args[:id]
  @name = args[:name]
  @workspace_id = args[:workspace_id]
  @connection_configuration = adapter.configuration
  @type = adapter.type
end

Instance Attribute Details

#connection_configurationObject (readonly)

Returns the value of attribute connection_configuration.



15
16
17
# File 'lib/airbyte_ruby/resources/destination.rb', line 15

def connection_configuration
  @connection_configuration
end

#idObject (readonly)

Returns the value of attribute id.



15
16
17
# File 'lib/airbyte_ruby/resources/destination.rb', line 15

def id
  @id
end

#nameObject (readonly)

Returns the value of attribute name.



15
16
17
# File 'lib/airbyte_ruby/resources/destination.rb', line 15

def name
  @name
end

#typeObject (readonly)

Returns the value of attribute type.



15
16
17
# File 'lib/airbyte_ruby/resources/destination.rb', line 15

def type
  @type
end

#workspace_idObject (readonly)

Returns the value of attribute workspace_id.



15
16
17
# File 'lib/airbyte_ruby/resources/destination.rb', line 15

def workspace_id
  @workspace_id
end

Instance Method Details

#fetchObject



44
45
46
47
# File 'lib/airbyte_ruby/resources/destination.rb', line 44

def fetch
  url = replace_variable_in_url(ENDPOINTS.get, "destination_id")
  get(url)
end

#fetch_allObject



36
37
38
# File 'lib/airbyte_ruby/resources/destination.rb', line 36

def fetch_all
  list(ENDPOINTS.list)
end

#newObject



40
41
42
# File 'lib/airbyte_ruby/resources/destination.rb', line 40

def new
  create(ENDPOINTS.create)
end

#removeObject



54
55
56
57
# File 'lib/airbyte_ruby/resources/destination.rb', line 54

def remove
  url = replace_variable_in_url(ENDPOINTS.delete, "destination_id")
  delete(url)
end

#to_json(*_args) ⇒ Object

rubocop:enable Lint/MissingSuper



28
29
30
31
32
33
34
# File 'lib/airbyte_ruby/resources/destination.rb', line 28

def to_json(*_args)
  {
    name: @name,
    workspaceId: @workspace_id,
    configuration: @connection_configuration.merge(destinationType: @type)
  }.to_json
end

#updateObject



49
50
51
52
# File 'lib/airbyte_ruby/resources/destination.rb', line 49

def update
  url = replace_variable_in_url(ENDPOINTS.update, "destination_id")
  patch(url)
end