lib/ldclient-rb/impl/integrations/consul_impl.rb in launchdarkly-server-sdk-5.8.2 vs lib/ldclient-rb/impl/integrations/consul_impl.rb in launchdarkly-server-sdk-6.0.0
- old
+ new
@@ -37,11 +37,11 @@
num_items = 0
# Insert or update every provided item
all_data.each do |kind, items|
items.values.each do |item|
- value = item.to_json
+ value = Model.serialize(kind, item)
key = item_key(kind, item[:key])
ops.push({ 'KV' => { 'Verb' => 'set', 'Key' => key, 'Value' => value } })
unused_old_keys.delete(key)
num_items = num_items + 1
end
@@ -60,36 +60,36 @@
@logger.info { "Initialized database with #{num_items} items" }
end
def get_internal(kind, key)
value = Diplomat::Kv.get(item_key(kind, key), {}, :return) # :return means "don't throw an error if not found"
- (value.nil? || value == "") ? nil : JSON.parse(value, symbolize_names: true)
+ (value.nil? || value == "") ? nil : Model.deserialize(kind, value)
end
def get_all_internal(kind)
items_out = {}
results = Diplomat::Kv.get(kind_key(kind), { recurse: true }, :return)
(results == "" ? [] : results).each do |result|
value = result[:value]
if !value.nil?
- item = JSON.parse(value, symbolize_names: true)
+ item = Model.deserialize(kind, value)
items_out[item[:key].to_sym] = item
end
end
items_out
end
def upsert_internal(kind, new_item)
key = item_key(kind, new_item[:key])
- json = new_item.to_json
+ json = Model.serialize(kind, new_item)
# We will potentially keep retrying indefinitely until someone's write succeeds
while true
old_value = Diplomat::Kv.get(key, { decode_values: true }, :return)
if old_value.nil? || old_value == ""
mod_index = 0
else
- old_item = JSON.parse(old_value[0]["Value"], symbolize_names: true)
+ old_item = Model.deserialize(kind, old_value[0]["Value"])
# Check whether the item is stale. If so, don't do the update (and return the existing item to
# FeatureStoreWrapper so it can be cached)
if old_item[:version] >= new_item[:version]
return old_item
end