class StatelyDB::CoreClient

def process_sync_response(resp)

Other tags:
    Api: - private

Returns:
  • (StatelyDB::SyncResult) - the result of the sync operation

Parameters:
  • resp (::Stately::Db::SyncResponse) -- the response to process
def process_sync_response(resp)
  changed_items = []
  deleted_item_paths = []
  updated_outside_list_window_paths = []
  token = nil
  is_reset = false
  safe_yield_stream(resp) do |r|
    case r.response
    when :result
      r.result.changed_items.each do |item|
        changed_items << @schema.unmarshal_item(stately_item: item)
      end
      r.result.deleted_items.each do |item|
        deleted_item_paths << item.key_path
      end
      r.result.updated_item_keys_outside_list_window.each do |item|
        updated_outside_list_window_paths << item.key_path
      end
    when :reset
      is_reset = true
    when :finished
      raw_token = r.finished.token
      token = StatelyDB::Token.new(token_data: raw_token.token_data,
                                   can_continue: raw_token.can_continue,
                                   can_sync: raw_token.can_sync,
                                   schema_version_id: raw_token.schema_version_id)
    end
  end
  SyncResult.new(changed_items:, deleted_item_paths:, updated_outside_list_window_paths:, is_reset:, token:)
end