Module: CPEE::Persistence

Defined in:
lib/cpee/persistence.rb

Class Method Summary collapse

Class Method Details

.exists_handler?(id, opts, key) ⇒ Boolean

}}}

Returns:

  • (Boolean)


102
103
104
# File 'lib/cpee/persistence.rb', line 102

def self::exists_handler?(id,opts,key) #{{{
  opts[:redis].exists?("instance:#{id}/handlers/#{key}")
end

.extract_handler(id, opts, key) ⇒ Object

}}}



99
100
101
# File 'lib/cpee/persistence.rb', line 99

def self::extract_handler(id,opts,key) #{{{
  opts[:redis].smembers("instance:#{id}/handlers/#{key}")
end

.extract_handlers(id, opts) ⇒ Object

}}}



105
106
107
108
109
# File 'lib/cpee/persistence.rb', line 105

def self::extract_handlers(id,opts) #{{{
  opts[:redis].smembers("instance:#{id}/handlers").map do |e|
    [e, opts[:redis].get("instance:#{id}/handlers/#{e}/url")]
  end
end

.extract_item(id, opts, item) ⇒ Object

}}}



62
63
64
# File 'lib/cpee/persistence.rb', line 62

def self::extract_item(id,opts,item) #{{{
  opts[:redis].get("instance:#{id}/#{item}")
end

.extract_list(id, opts, item) ⇒ Object

}}}



44
45
46
47
48
# File 'lib/cpee/persistence.rb', line 44

def self::extract_list(id,opts,item) #{{{
  opts[:redis].zrange("instance:#{id}/#{item}",0,-1).map do |e|
    [e,opts[:redis].get("instance:#{id}/#{item}/#{e}")]
  end
end

.extract_set(id, opts, item) ⇒ Object

}}}



39
40
41
42
43
# File 'lib/cpee/persistence.rb', line 39

def self::extract_set(id,opts,item) #{{{
  opts[:redis].smembers("instance:#{id}/#{item}").map do |e|
    [e,opts[:redis].get("instance:#{id}/#{item}/#{e}")]
  end
end

.set_handler(id, opts, key, url, values, update = false) ⇒ Object

}}}



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/cpee/persistence.rb', line 66

def self::set_handler(id,opts,key,url,values,update=false) #{{{
  exis = opts[:redis].smembers("instance:#{id}/handlers/#{key}")

  if update == false && exis.length > 0
    return 405
  end

  ah = AttributesHelper.new
  attributes = Persistence::extract_list(id,opts,'attributes').to_h
  dataelements = Persistence::extract_list(id,opts,'dataelements').to_h
  endpoints = Persistence::extract_list(id,opts,'endpoints').to_h

  deleted = exis - values

  CPEE::Message::send(
    :event,
    'handler/change',
    opts[:url],
    id,
    Persistence::extract_item(id,opts,'attributes/uuid'),
    Persistence::extract_item(id,opts,'attributes/info'),
    {
      :key => key,
      :url => url,
      :changed => values,
      :deleted => deleted,
      :attributes => ah.translate(attributes,dataelements,endpoints),
    },
    opts[:redis]
  )

  200
end

.set_item(id, opts, item, value) ⇒ Object

}}}



50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/cpee/persistence.rb', line 50

def self::set_item(id,opts,item,value) #{{{
  CPEE::Message::send(
    :event,
    File.join(item,'change'),
    opts[:url],
    id,
    Persistence::extract_item(id,opts,'attributes/uuid'),
    Persistence::extract_item(id,opts,'attributes/info'),
    value,
    opts[:redis]
  )
end

.set_list(id, opts, item, values, deleted = []) ⇒ Object

{{{



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/cpee/persistence.rb', line 18

def self::set_list(id,opts,item,values,deleted=[]) #{{{
  ah = AttributesHelper.new
  attributes = Persistence::extract_list(id,opts,'attributes').to_h
  dataelements = Persistence::extract_list(id,opts,'dataelements').to_h
  endpoints = Persistence::extract_list(id,opts,'endpoints').to_h
  CPEE::Message::send(
    :event,
    File.join(item,'change'),
    opts[:url],
    id,
    Persistence::extract_item(id,opts,'attributes/uuid'),
    Persistence::extract_item(id,opts,'attributes/info'),
    {
      :changed => values.keys,
      :deleted => deleted,
      :values => values,
      :attributes => ah.translate(attributes,dataelements,endpoints),
    },
    opts[:redis]
  )
end