class BigSister::SpringcmMonitor

Public Class Methods

new(config, i) click to toggle source
Calls superclass method BigSister::Monitor::new
# File lib/bigsister/monitors/springcm.rb, line 8
def initialize(config, i)
  @client_id = config.fetch("client_id", nil)
  @client_secret = config.fetch("client_secret", nil)
  @data_center = config.fetch("data_center", nil)
  @path = config.fetch("path", nil)
  validate_config!
  @client = Springcm::Client.new(@data_center, @client_id, @client_secret)
  @client.connect!
  @folder = @client.folder(path: @path)
  super(config, i)
end

Public Instance Methods

directories() click to toggle source
# File lib/bigsister/monitors/springcm.rb, line 36
def directories
  dirs = []
  list = @folder.folders(offset: 0, limit: 20)
  while !list.nil?
    dirs = dirs + list.items
    list = list.next
  end
  res = dirs.map { |dir|
    DirectoryInfo.new(
      name: dir.name,
      file_count: dir.documents.total,
      directory_count: dir.folders.total
    )
  }
  res
end
files() click to toggle source
# File lib/bigsister/monitors/springcm.rb, line 20
def files
  docs = []
  list = @folder.documents(offset: 0, limit: 20)
  while !list.nil?
    docs = docs + list.items
    list = list.next
  end
  res = docs.map { |document|
    FileInfo.new(
      name: document.name,
      file_size: document.native_file_size
    )
  }
  res
end

Private Instance Methods

validate_config!() click to toggle source
# File lib/bigsister/monitors/springcm.rb, line 55
def validate_config!
  if @client_id.nil?
    raise BigSister::InvalidConfiguration.new("SpringCM client_id required.")
  end
  if @client_secret.nil?
    raise BigSister::InvalidConfiguration.new("SpringCM client_secret is required.")
  end
  if @client_secret.nil?
    raise BigSister::InvalidConfiguration.new("SpringCM data_center is required.")
  end
  if @path.nil?
    raise BigSister::InvalidConfiguration.new("SpringCM path is required.")
  end
end