Class: Ensconce::MydexAdapter

Inherits:
Adapter
  • Object
show all
Defined in:
lib/ensconce/adapters/mydex_adapter.rb

Instance Attribute Summary

Attributes inherited from Adapter

#settings

Instance Method Summary collapse

Methods inherited from Adapter

config, for, #initialize, options, #options, options=

Constructor Details

This class inherits a constructor from Ensconce::Adapter

Instance Method Details

#change_data_keys_to_data_store_namesObject



54
55
56
# File 'lib/ensconce/adapters/mydex_adapter.rb', line 54

def change_data_keys_to_data_store_names
  @data = Mangle.rekey(@data, key_map(@data_set))
end

#change_data_keys_to_mydex_namesObject



58
59
60
# File 'lib/ensconce/adapters/mydex_adapter.rb', line 58

def change_data_keys_to_mydex_names
  @data = Mangle.rekey(@data, key_map(@data_set).invert)
end

#connectionObject



33
34
35
36
37
38
39
# File 'lib/ensconce/adapters/mydex_adapter.rb', line 33

def connection
  Faraday.new(:url => options[:url]) do |faraday|
    faraday.request  :url_encoded             # form-encode POST params
#        faraday.response :logger                  # log requests to STDOUT
    faraday.adapter  Faraday.default_adapter  # make requests with Net::HTTP
  end      
end

#extact_valuesObject



62
63
64
65
66
67
68
# File 'lib/ensconce/adapters/mydex_adapter.rb', line 62

def extact_values
  HashBuilder.new(
    keys: @data.keys, 
    values: @data.values,
    values_mod: lambda {|value| value['value']}
  ).hash
end

#getObject



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/ensconce/adapters/mydex_adapter.rb', line 8

def get
  @data_set = params[:data_set]
  response = connection.get(
    path,
    params.merge({ dataset: @data_set })
  )
  @data = JSON.parse response.body
  @data = @data[@data_set]['instance_0']
  change_data_keys_to_data_store_names
  extact_values
end

#key_map(key) ⇒ Object



70
71
72
# File 'lib/ensconce/adapters/mydex_adapter.rb', line 70

def key_map(key)
  MydexKeyMap.for(key)
end

#paramsObject



41
42
43
44
45
46
47
48
# File 'lib/ensconce/adapters/mydex_adapter.rb', line 41

def params
  super.merge(
    key: settings.key,
    api_key: options[:api_key],
    con_id: settings.con_id,
    source_type: 'connection' 
  )
end

#pathObject



50
51
52
# File 'lib/ensconce/adapters/mydex_adapter.rb', line 50

def path
  "api/pds/pds/#{settings.id}.json"
end

#push(data) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/ensconce/adapters/mydex_adapter.rb', line 20

def push(data)
  @data_set = params[:data_set]
  @data = data
  change_data_keys_to_mydex_names
  response = connection.put do |req|
    req.url path
    req.headers['Content-Type'] = 'application/json'
    req.body = {@data_set => [@data]}.to_json
    req.params = params
  end
  response.body
end