class GLPI::SDK::Resource

Public Class Methods

all(session, **params) click to toggle source
# File lib/glpi/sdk/resource.rb, line 35
def self.all(session, **params)
  item_type = params.key?(:item_type) ? params.delete(:item_type) : type_name
  endpoint = "/#{item_type}"
  endpoint += "?#{HashConverter.to_query(params)}" if params
  response = session.request :get, endpoint
  response.map { |item| new(item) }
end
Also aliased as: where
create(session, attributes = {}) click to toggle source
# File lib/glpi/sdk/resource.rb, line 8
def self.create(session, attributes = {})
  item_type = attributes.key?(:item_type) ? attributes.delete(:item_type) : type_name
  payload = { input: attributes }.to_json
  response = session.request :post, "/#{item_type}", body: payload
  find(session, response['id'], item_type)
end
destroy(session, id, item_type = nil) click to toggle source
# File lib/glpi/sdk/resource.rb, line 22
def self.destroy(session, id, item_type = nil)
  item_type ||= type_name
  payload = { force_purge: true }.to_json
  response = session.request :delete, "/#{item_type}/#{id}", body: payload
  response[0][id.to_s]
end
find(session, id, item_type = nil) click to toggle source
# File lib/glpi/sdk/resource.rb, line 29
def self.find(session, id, item_type = nil)
  item_type ||= type_name
  response = session.request :get, "/#{item_type}/#{id}"
  new(response)
end
new(attributes = {}) click to toggle source
# File lib/glpi/sdk/resource.rb, line 4
def initialize(attributes = {})
  @attributes = attributes
end
type_name() click to toggle source
# File lib/glpi/sdk/resource.rb, line 47
def self.type_name
  name.split('::').last
end
update(session, id, attributes = {}) click to toggle source
# File lib/glpi/sdk/resource.rb, line 15
def self.update(session, id, attributes = {})
  item_type = attributes.key?(:item_type) ? attributes.delete(:item_type) : type_name
  payload = { input: attributes }.to_json
  session.request :put, "/#{item_type}/#{id}", body: payload
  find(session, id, item_type)
end
where(session, **params)
Alias for: all

Private Instance Methods

method_missing(name, *args, &block) click to toggle source
Calls superclass method
# File lib/glpi/sdk/resource.rb, line 53
def method_missing(name, *args, &block)
  @attributes.key?(name.to_s) ? @attributes[name.to_s] : super
end
respond_to_missing?(name, include_private = false) click to toggle source
# File lib/glpi/sdk/resource.rb, line 57
def respond_to_missing?(name, include_private = false)
  @attributes.key?(name.to_s)
end