Class: JSS::MobileDeviceExtensionAttribute
- Inherits:
-
ExtensionAttribute
- Object
- APIObject
- ExtensionAttribute
- JSS::MobileDeviceExtensionAttribute
- Defined in:
- lib/jss/api_object/extension_attribute/mobile_device_extension_attribute.rb,
lib/jss.rb
Overview
An extension attribute as defined in the JSS
Constant Summary collapse
- RSRC_BASE =
The base for REST resources of this class
'mobiledeviceextensionattributes'.freeze
- RSRC_LIST_KEY =
the hash key used for the JSON list output of all objects in the JSS
:mobile_device_extension_attributes
- RSRC_OBJECT_KEY =
The hash key used for the JSON object output. It's also used in various error messages
:mobile_device_extension_attribute
- TARGET_CLASS =
these ext attribs are related to these kinds of objects
JSS::MobileDevice
- ALL_TARGETS_CRITERION =
A criterion that will return all members of the TARGET_CLASS
JSS::Criteriable::Criterion.new(and_or: 'and', name: 'Last Inventory Update', search_type: 'after (yyyy-mm-dd)', value: '2003-01-01')
- OBJECT_HISTORY_OBJECT_TYPE =
the object type for this object in the object history table. See APIObject#add_object_history_entry
86
Instance Attribute Summary collapse
-
#need_to_update ⇒ Boolean
included
from Updatable
readonly
Do we have unsaved changes?.
Instance Method Summary collapse
-
#history(mobiledevice) ⇒ Array<Hash{:timestamp=>Time,:value=>String,Integer,Time}>
Return an Array of Hashes showing the history of reported values for this EA on one MobileDevice.
- #input_type=(new_val) ⇒ Object
- #web_display=(new_val) ⇒ Object
Constructor Details
This class inherits a constructor from JSS::ExtensionAttribute
Instance Attribute Details
#need_to_update ⇒ Boolean (readonly) Originally defined in module Updatable
Returns do we have unsaved changes?.
Instance Method Details
#history(mobiledevice) ⇒ Array<Hash{:timestamp=>Time,:value=>String,Integer,Time}>
Return an Array of Hashes showing the history of reported values for this EA on one MobileDevice.
Each hash contains these 2 keys:
-
:value - String, Integer, or Time, depending on @data_type
-
:timestamp - Time
This method requires a MySQL database connection established via JSS::DB_CNX.connect
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
# File 'lib/jss/api_object/extension_attribute/mobile_device_extension_attribute.rb', line 94 def history(mobiledevice) raise JSS::NoSuchItemError, "EA Not In JSS! Use #create to create this #{RSRC_OBJECT_KEY}." unless @in_jss raise JSS::InvalidConnectionError, "Database connection required for 'history' query." unless JSS::DB_CNX.connected? mobile_device_id = JSS::MobileDevice.valid_id mobiledevice, api: @api raise JSS::NoSuchItemError, "No MobileDevice found matching '#{mobiledevice}'" unless mobile_device_id the_query = <<-END_Q SELECT eav.value_on_client AS value, r.date_entered_epoch AS timestamp_epoch FROM mobile_device_extension_attribute_values eav JOIN reports r ON eav.report_id = r.report_id WHERE r.mobile_device_id = #{mobile_device_id} AND eav.mobile_device_extension_attribute_id = #{@id} ORDER BY timestamp_epoch END_Q qrez = JSS::DB_CNX.db.query the_query history = [] qrez.each_hash do |entry| value = case @data_type when 'String' then entry['value'] when 'Integer' then entry['value'].to_i when 'Date' then JSS.parse_datetime(entry['value']) end # case newhash = { value: value, timestamp: JSS.epoch_to_time(entry['timestamp_epoch']) } history << newhash end # each hash history end |
#input_type=(new_val) ⇒ Object
74 75 76 77 78 |
# File 'lib/jss/api_object/extension_attribute/mobile_device_extension_attribute.rb', line 74 def input_type=(new_val) raise JSS::InvalidDataError, "Mobile Device Extension Attribute input_type cannot be '#{INPUT_TYPE_SCRIPT}'" if new_val == INPUT_TYPE_SCRIPT super end |
#web_display=(new_val) ⇒ Object
66 67 68 69 70 |
# File 'lib/jss/api_object/extension_attribute/mobile_device_extension_attribute.rb', line 66 def web_display=(new_val) raise JSS::InvalidDataError, "Mobile Device Extension Attributes web_display cannot be '#{WEB_DISPLAY_CHOICE_OS}'" if new_val == WEB_DISPLAY_CHOICE_OS super end |