Class: Kong::Upstream

Inherits:
Object
  • Object
show all
Defined in:
ext/kong/upstream.rb

Instance Method Summary collapse

Instance Method Details

#targetsObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'ext/kong/upstream.rb', line 9

def targets
  targets   = []
  json_data = Client.instance.get("#{API_END_POINT}#{self.id}/targets")

  if json_data['data']
    json_data['data'].each do |target_data|
      targets << Target.new(target_data)
    end
  end

  by_target = targets.reduce({}) do |map, target|
    map[target.target] ||= []
    map[target.target] << target
    map
  end

  by_target.keys.reduce([]) do |list, key|
    target = by_target[key].sort_by { |x| x.attributes[:created_at].to_i }.last

    if target.active?
      list.push(target)
    else
      list
    end
  end
end