Module: Collins::Api::AssetState

Included in:
Collins::Api
Defined in:
lib/collins/api/asset_state.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.state_testObject



4
# File 'lib/collins/api/asset_state.rb', line 4

def state_test; @state_test end

.state_test=(v) ⇒ Object



5
# File 'lib/collins/api/asset_state.rb', line 5

def state_test= v; @state_test = v end

Instance Method Details

#state_create!(name, label, description, status = nil) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 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) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 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) ⇒ Object



65
66
67
68
69
70
71
72
73
74
# 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_allObject



76
77
78
79
80
81
82
83
84
# 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 = {}) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# 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