Method: GoodData::DataSource.create

Defined in:
lib/gooddata/models/data_source.rb

.create(opts) ⇒ Object

Create data source from json Expected keys:

  • :name (mandatory)
  • :alias (optional)
  • :prefix (optional)
  • :connectionInfo (mandatory)
  • :client (mandatory)


75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/gooddata/models/data_source.rb', line 75

def create(opts)
  ds_name = opts[:name]
  ds_alias = opts[:alias]
  ds_prefix = opts[:prefix]
  ds_connection_info = opts[:connectionInfo]

  GoodData.logger.info "Creating data source '#{ds_name}'"
  fail ArgumentError, 'Data source name has to be provided' if ds_name.nil? || ds_name.blank?
  fail ArgumentError, 'Data source connection info has to be provided' if ds_connection_info.nil?

  json = {
    'dataSource' => {
      'name' => ds_name,
      'connectionInfo' => ds_connection_info
    }
  }
  json['dataSource']['alias'] = ds_alias if ds_alias
  json['dataSource']['prefix'] = ds_prefix if ds_prefix

  # Create data source
  c = GoodData.get_client(opts)
  res = c.post(DATA_SOURCES_URL, json)

  # create the public facing object
  c.create(DataSource, res)
end