meta db unit tests and fixes
This commit is contained in:
		@@ -357,12 +357,6 @@ auto rdb_meta_db::update_item_meta(const std::string &api_path, json json_data)
 | 
				
			|||||||
  REPERTORY_USES_FUNCTION_NAME();
 | 
					  REPERTORY_USES_FUNCTION_NAME();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  try {
 | 
					  try {
 | 
				
			||||||
    std::string orig_source_path;
 | 
					 | 
				
			||||||
    auto ret = get_item_meta(api_path, META_SOURCE, orig_source_path);
 | 
					 | 
				
			||||||
    if (ret != api_error::success && ret != api_error::item_not_found) {
 | 
					 | 
				
			||||||
      return ret;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (not json_data.contains(META_PINNED)) {
 | 
					    if (not json_data.contains(META_PINNED)) {
 | 
				
			||||||
      json_data[META_PINNED] = utils::string::from_bool(false);
 | 
					      json_data[META_PINNED] = utils::string::from_bool(false);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -375,6 +369,7 @@ auto rdb_meta_db::update_item_meta(const std::string &api_path, json json_data)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    auto directory =
 | 
					    auto directory =
 | 
				
			||||||
        utils::string::to_bool(json_data.at(META_DIRECTORY).get<std::string>());
 | 
					        utils::string::to_bool(json_data.at(META_DIRECTORY).get<std::string>());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    auto pinned = directory ? false
 | 
					    auto pinned = directory ? false
 | 
				
			||||||
                            : utils::string::to_bool(
 | 
					                            : utils::string::to_bool(
 | 
				
			||||||
                                  json_data.at(META_PINNED).get<std::string>());
 | 
					                                  json_data.at(META_PINNED).get<std::string>());
 | 
				
			||||||
@@ -383,13 +378,22 @@ auto rdb_meta_db::update_item_meta(const std::string &api_path, json json_data)
 | 
				
			|||||||
                                json_data.at(META_SIZE).get<std::string>());
 | 
					                                json_data.at(META_SIZE).get<std::string>());
 | 
				
			||||||
    auto source_path =
 | 
					    auto source_path =
 | 
				
			||||||
        directory ? "" : json_data.at(META_SOURCE).get<std::string>();
 | 
					        directory ? "" : json_data.at(META_SOURCE).get<std::string>();
 | 
				
			||||||
    if (orig_source_path != source_path && not orig_source_path.empty()) {
 | 
					
 | 
				
			||||||
      ret = perform_action(function_name, [&]() -> rocksdb::Status {
 | 
					    if (not directory) {
 | 
				
			||||||
        return db_->Delete(rocksdb::WriteOptions(), source_family_,
 | 
					      std::string orig_source_path;
 | 
				
			||||||
                           orig_source_path);
 | 
					      auto res = get_item_meta(api_path, META_SOURCE, orig_source_path);
 | 
				
			||||||
      });
 | 
					      if (res != api_error::success && res != api_error::item_not_found) {
 | 
				
			||||||
      if (ret != api_error::success && ret != api_error::item_not_found) {
 | 
					        return res;
 | 
				
			||||||
        return ret;
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      if (not orig_source_path.empty() && orig_source_path != source_path) {
 | 
				
			||||||
 | 
					        res = perform_action(function_name, [&]() -> rocksdb::Status {
 | 
				
			||||||
 | 
					          return db_->Delete(rocksdb::WriteOptions(), source_family_,
 | 
				
			||||||
 | 
					                             orig_source_path);
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					        if (res != api_error::success && res != api_error::item_not_found) {
 | 
				
			||||||
 | 
					          return res;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user