Module: Jamf::ChangeLog::ClassMethods

Defined in:
lib/jamf/api/jamf_pro/mixins/change_log.rb

Overview

Class Methods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(extender) ⇒ Object



102
103
104
# File 'lib/jamf/api/jamf_pro/mixins/change_log.rb', line 102

def self.extended(extender)
  Jamf.load_msg "--> #{extender} is extending Jamf::ChangeLog::ClassMethods"
end

Instance Method Details

#add_change_log_note(note, id: nil, cnx: Jamf.cnx) ⇒ Jamf::ChangeLogEntry

Add an entry with a note to this object’s change log.

If the change history has been cached already, the cache is flushed after adding the note.



115
116
117
118
119
120
121
122
123
# File 'lib/jamf/api/jamf_pro/mixins/change_log.rb', line 115

def add_change_log_note(note, id: nil, cnx: Jamf.cnx)
  note_to_send = POST_NOTE_OBJECT.new note: Jamf::Validate.non_empty_string(note)

  result = cnx.jp_post history_path(id), note_to_send.to_jamf

  # flush the cached data, forces reload when next accessed, to get new note
  @cached_change_log = nil
  HISTORY_ENTRY_OBJECT.new result
end

#change_log(id: nil, sort: nil, filter: nil, cnx: Jamf.cnx) ⇒ Array<Jamf::ChangeLogEntry>

The entire change and note history for this resource



145
146
147
148
149
150
151
152
153
154
155
156
# File 'lib/jamf/api/jamf_pro/mixins/change_log.rb', line 145

def change_log(id: nil, sort: nil, filter: nil, cnx: Jamf.cnx)
  sort &&= Jamf::Sortable.parse_url_sort_param(sort)
  filter &&= Jamf::Filterable.parse_url_filter_param(filter)

  Jamf::Pager.all_pages(
    list_path: history_path(id),
    sort: sort,
    filter: filter,
    instantiate: Jamf::ChangeLogEntry,
    cnx: cnx
  )
end

#change_log_pager(page_size: Jamf::Pager::DEFAULT_PAGE_SIZE, id: nil, sort: nil, filter: nil, cnx: Jamf.cnx) ⇒ Jamf::Pager

Return a Jamf::Pager object for retrieving all change log entries in smaller groups.

For most parameters, see .change_log



170
171
172
173
174
175
176
177
178
179
180
181
182
# File 'lib/jamf/api/jamf_pro/mixins/change_log.rb', line 170

def change_log_pager(page_size: Jamf::Pager::DEFAULT_PAGE_SIZE, id: nil, sort: nil, filter: nil, cnx: Jamf.cnx)
  sort &&= Jamf::Sortable.parse_url_sort_param(sort)
  filter &&= Jamf::Filterable.parse_url_filter_param(filter)

  Jamf::Pager.new(
    page_size: page_size,
    list_path: history_path(id),
    sort: sort,
    filter: filter,
    instantiate: Jamf::ChangeLogEntry,
    cnx: cnx
  )
end

#change_log_size(id: nil, cnx: Jamf.cnx) ⇒ Integer

how many change log entries are there? needed when using paged #change_log calls



193
194
195
196
197
# File 'lib/jamf/api/jamf_pro/mixins/change_log.rb', line 193

def change_log_size(id: nil, cnx: Jamf.cnx)
  search_path = "#{history_path(id)}?page=0&page-size=1"
  search_result = SEARCH_RESULTS_OBJECT.new cnx.jp_get(search_path)
  search_result.totalCount
end

#history_path(id = nil) ⇒ String



201
202
203
204
205
206
207
# File 'lib/jamf/api/jamf_pro/mixins/change_log.rb', line 201

def history_path(id = nil)
  if id
    "#{get_path}/#{id}/#{DFT_HISTORY_PATH}"
  else
    "#{get_path}/#{DFT_HISTORY_PATH}"
  end
end