module Collins::Api::AssetState
Public Class Methods
state_test()
click to toggle source
# File lib/collins/api/asset_state.rb, line 4 def state_test; @state_test end
state_test=(v;)
click to toggle source
# File lib/collins/api/asset_state.rb, line 5 def state_test= v; @state_test = v end
Public Instance Methods
state_create!(name, label, description, status = nil)
click to toggle source
# File lib/collins/api/asset_state.rb, line 8 def state_create! name, label, description, status = nil name = validate_state_name name parameters = { :label => label, :description => description, :status => status } if not ::Collins::Api::AssetState.state_test then parameters = select_non_empty_parameters parameters end logger.debug("Creating state with name #{name}") http_put("/api/state/#{name}", parameters) do |r| parse_response r, :expects => 201, :as => :status, :raise => strict?, :default => false end end
state_delete!(state)
click to toggle source
# File lib/collins/api/asset_state.rb, line 26 def state_delete! state name = validate_state_name case state.class when ::Collins::AssetState state.name else state end logger.debug("Deleting state with name #{name}") http_delete("/api/state/#{name}") do |r| parse_response r, :expects => 202, :as => :data, :raise => strict?, :default => 0 do |js| js["DELETED"].to_s.to_i end end end
state_get(name)
click to toggle source
# File lib/collins/api/asset_state.rb, line 65 def state_get name name = validate_state_name name logger.debug("Fetching state with name #{name}") http_get("/api/state/#{name}") do |r| empty = ::Collins::AssetState.new({}) parse_response r, :expects => 200, :as => :data, :default => empty, :raise => false do |js| ::Collins::AssetState.from_json(js) end end end
state_get_all()
click to toggle source
# File lib/collins/api/asset_state.rb, line 76 def state_get_all http_get("/api/states") do |r| parse_response r, :expects => 200, :as => :data, :default => [], :raise => false do |js| js.map do |state| ::Collins::AssetState.from_json(state) end end end end
state_update!(state, options = {})
click to toggle source
# File lib/collins/api/asset_state.rb, line 42 def state_update! state, options = {} name = validate_state_name case state.class when ::Collins::AssetState state.name else state end parameters = { :label => options[:label], :description => options[:description], :name => options[:name], :status => options[:status] } if not ::Collins::Api::AssetState.state_test then parameters = select_non_empty_parameters parameters end logger.debug("Updating state with name #{name} params #{parameters}") http_post("/api/state/#{name}", parameters) do |r| parse_response r, :expects => 200, :as => :status, :raise => strict?, :default => false end end
Private Instance Methods
state_test()
click to toggle source
# File lib/collins/api/asset_state.rb, line 4 def state_test; @state_test end
state_test=(v;)
click to toggle source
# File lib/collins/api/asset_state.rb, line 5 def state_test= v; @state_test = v end
validate_state_name(name)
click to toggle source
# File lib/collins/api/asset_state.rb, line 87 def validate_state_name name if ::Collins::Api::AssetState.state_test then return name end name_opt = ::Collins::Option(name).map {|x| x.to_s.strip}.filter_not {|x| x.empty?}.filter {|x| x.size > 1 && x.size <= 32 } if name_opt.empty? then raise ::Collins::ExpectationFailedError.new("name must be between 2 and 32 characters") else name_opt.get end end