Class: Smplkit::Logging::LogGroupsClient

Inherits:
Object
  • Object
show all
Defined in:
lib/smplkit/logging/client.rb

Overview

Surface for client.logging.log_groups.* (sync).

Instance Method Summary collapse

Constructor Details

#initialize(http_client) ⇒ LogGroupsClient

Returns a new instance of LogGroupsClient.



235
236
237
# File 'lib/smplkit/logging/client.rb', line 235

def initialize(http_client)
  @api = SmplkitGeneratedClient::Logging::LogGroupsApi.new(http_client)
end

Instance Method Details

#_create_log_group(group) ⇒ Object



269
270
271
272
# File 'lib/smplkit/logging/client.rb', line 269

def _create_log_group(group)
  response = ApiSupport::ErrorMapping.call { @api.create_log_group(log_group_body(group)) }
  Helpers.log_group_resource_to_model(self, ApiSupport::ResourceShim.from_model(response.data))
end

#_update_log_group(group) ⇒ Object



274
275
276
277
# File 'lib/smplkit/logging/client.rb', line 274

def _update_log_group(group)
  response = ApiSupport::ErrorMapping.call { @api.update_log_group(group.key, log_group_body(group)) }
  Helpers.log_group_resource_to_model(self, ApiSupport::ResourceShim.from_model(response.data))
end

#delete(id) ⇒ Object

Delete a log group by id.



264
265
266
267
# File 'lib/smplkit/logging/client.rb', line 264

def delete(id)
  ApiSupport::ErrorMapping.call { @api.delete_log_group(id) }
  nil
end

#get(id) ⇒ Object

Fetch the editable SmplLogGroup resource by id.



258
259
260
261
# File 'lib/smplkit/logging/client.rb', line 258

def get(id)
  response = ApiSupport::ErrorMapping.call { @api.get_log_group(id) }
  Helpers.log_group_resource_to_model(self, ApiSupport::ResourceShim.from_model(response.data))
end

#get_group_entry(key) ⇒ Object



288
289
290
291
# File 'lib/smplkit/logging/client.rb', line 288

def get_group_entry(key)
  response = ApiSupport::ErrorMapping.call { @api.get_log_group(key) }
  group_entry_from_resource(ApiSupport::ResourceShim.from_model(response.data))
end

#list(page_number: nil, page_size: nil) ⇒ Object

List log groups for the authenticated account.



247
248
249
250
251
252
253
254
255
# File 'lib/smplkit/logging/client.rb', line 247

def list(page_number: nil, page_size: nil)
  opts = {}
  opts[:page_number] = page_number unless page_number.nil?
  opts[:page_size] = page_size unless page_size.nil?
  response = ApiSupport::ErrorMapping.call { @api.list_log_groups(opts) }
  (response.data || []).map do |r|
    Helpers.log_group_resource_to_model(self, ApiSupport::ResourceShim.from_model(r))
  end
end

#list_group_entriesObject

Runtime entry — walks every page and returns an id-keyed Hash of resolution-cache entries (level, group, environments). The group key carries the *parent group id* so the resolution algorithm can walk the chain with the same key shape it uses for loggers.



283
284
285
286
# File 'lib/smplkit/logging/client.rb', line 283

def list_group_entries
  rows = ApiSupport::PaginatedFetch.collect { |opts| @api.list_log_groups(opts) }
  rows.to_h { |r| group_entry_from_resource(ApiSupport::ResourceShim.from_model(r)) }
end

#new(id, name: nil, group: nil) ⇒ Object

Return a new unsaved SmplLogGroup. Call SmplLogGroup#save to persist.



240
241
242
243
244
# File 'lib/smplkit/logging/client.rb', line 240

def new(id, name: nil, group: nil)
  SmplLogGroup.new(
    self, key: id, name: name.nil? ? Smplkit::Helpers.key_to_display_name(id) : name, parent_id: group
  )
end