lib/cradlepoint/net_device.rb in cradlepoint-0.1.0 vs lib/cradlepoint/net_device.rb in cradlepoint-0.1.1
- old
+ new
@@ -1,9 +1,12 @@
module Cradlepoint
class NetDevice < CradlepointObject
+ include Cradlepoint::HashHelpers
- attr_accessor :id, :router, :data
+ attr_accessor :id, :router, :data, :bytes_in, :bytes_out, :carrier, :esn, :imei, :info,
+ :ip_address, :mac, :mode, :name, :type, :uptime, :netmask, :dns0, :dns1,
+ :connection_state, :ip_mode
def initialize(id = nil, router = nil)
self.id = id
self.router = router
end
@@ -32,11 +35,52 @@
Cradlepoint::NetDevice.rel_url_from_router(router.id)
end
def get_all_from_router
raise 'You must provide an ECM router' if router.nil?
- self.data = Cradlepoint.handle_response RestClient.get(build_url(rel_url_from_router),
- content_type: :json,
- accept: :json)
+ self.data = Cradlepoint.make_request(:get, build_url(rel_url_from_router))
+ assign_attributes_from_data(group: true)
end
+
+ def assign_attributes_from_data(options = {})
+ return unless self.data and self.data.any?
+ raw_data = self.data
+
+ if options[:group]
+ return unless raw_data.is_a?(Array)
+
+ net_devices = []
+ raw_data.each do |nd|
+ new_net_device = NetDevice.new(nd[:id], self.id)
+ new_net_device.assign_attributes_from_blob(nd)
+ net_devices << new_net_device
+ end
+
+ net_devices
+ else
+ assign_attributes_from_blob(raw_data)
+ end
+ end
+
+ def assign_attributes_from_blob(blob = {})
+ return unless blob and blob.any?
+
+ self.connection_state = blob[:connection_state]
+ self.bytes_in = blob[:bytes_in]
+ self.bytes_out = blob[:bytes_out]
+ self.carrier = blob[:carrier]
+ self.esn = blob[:esn]
+ self.imei = blob[:imei]
+ self.info = blob[:info]
+ self.ip_address = blob[:ip_address]
+ self.mac = blob[:mac]
+ self.mode = blob[:mode]
+ self.name = blob[:name]
+ self.type = blob[:type]
+ self.uptime = blob[:uptime]
+ self.netmask = blob[:netmask]
+ self.dns0 = blob[:dns0]
+ self.dns1 = blob[:dns1]
+ self.ip_mode = blob[:config][:ipmode] if blob[:config].is_a?(Hash)
+ end
end
-end
+end
\ No newline at end of file