Module: Xively::Templates::JSON::KeyDefaults

Included in:
Key
Defined in:
lib/xively-rb/templates/json/key_defaults.rb

Instance Method Summary collapse

Instance Method Details

#generate_json(options = {}) ⇒ Object



5
6
7
8
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 'lib/xively-rb/templates/json/key_defaults.rb', line 5

def generate_json(options={})
  if self.permissions
    s = self.permissions.collect { |s|
      if s.resources
        res = s.resources.collect { |r| { :feed_id => r.feed_id, :datastream_id => r.datastream_id, :datastream_trigger_id => r.datastream_trigger_id }.delete_if_nil_value
        }
      end
      {
        :referer => s.referer,
        :source_ip => s.source_ip,
        :label => s.label,
        :minimum_interval => s.minimum_interval,
        :access_methods => s.access_methods.collect { |a| a.to_s.downcase },
        :resources => res
      }
    }
  end
  output = {
    :key => {
      :id => id,
      :expires_at => expires_at.respond_to?(:iso8601) ? expires_at.iso8601(6) : expires_at,
      :api_key => key,
      :user => user,
      :label => label,
      :private_access => private_access,
      :permissions => s
    }
  }
  !options[:include_blank] ? output.delete_if_nil_value : output
end