require 'open-uri' require 'helix_web_services_client/open_model' class HelixWebServicesClient # Array of Group objects stored in the system. Not all fields will be # filled out (e.g., view). def groups arr = execute_method_no_body(:get, hve_path('groups')) arr.map { |x| OpenModel.new(x) } end # Returns the group instance indicated by the group name (or group object) def group(group) group = group.group if group.is_a?(OpenModel) obj = execute_method_no_body(:get, hve_path("groups/#{URI.encode(group)}")) OpenModel.new(obj) end # Creates a new group in the system. def create_group(group) group = OpenModel.new(group) unless group.is_a?(OpenModel) execute_method_with_body(:post, hve_path('groups'), group.marshal_dump) end # Updates the group specification. def update_group(group) group = OpenModel.new(group) unless group.is_a?(OpenModel) execute_method_with_body(:patch, hve_path("groups/#{URI.encode(group.group)}"), group.marshal_dump) end # Deletes the group specification in the system. def delete_group(group) group = group.group if group.is_a?(OpenModel) execute_method_no_body(:delete, hve_path("groups/#{URI.encode(group)}")) end end