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