diff --git a/src/services/item_service.rs b/src/services/item_service.rs index cbf6973..f0b1288 100644 --- a/src/services/item_service.rs +++ b/src/services/item_service.rs @@ -222,20 +222,18 @@ impl ItemService { debug!("ITEM_SERVICE: Using compression type: {:?}", compression_type); let compression_engine = get_compression_engine(compression_type.clone())?; - let tx = conn.transaction()?; - let item_id; let mut item; { - item = db::create_item(&tx, compression_type.clone())?; + item = db::create_item(conn, compression_type.clone())?; item_id = item.id.unwrap(); debug!("ITEM_SERVICE: Created new item with id: {}", item_id); - db::set_item_tags(&tx, item.clone(), tags)?; + db::set_item_tags(conn, item.clone(), tags)?; debug!("ITEM_SERVICE: Set tags for item {}", item_id); let item_meta = self.meta_service.collect_initial_meta(); debug!("ITEM_SERVICE: Collected {} initial meta entries", item_meta.len()); for (k, v) in item_meta.iter() { - db::add_meta(&tx, item_id, k, v)?; + db::add_meta(conn, item_id, k, v)?; } } @@ -265,7 +263,7 @@ impl ItemService { let mut plugins = self.meta_service.get_plugins(cmd, settings); debug!("ITEM_SERVICE: Got {} meta plugins", plugins.len()); - self.meta_service.initialize_plugins(&mut plugins, &tx, item_id); + self.meta_service.initialize_plugins(&mut plugins, conn, item_id); let mut item_path = self.data_path.clone(); item_path.push(item_id.to_string()); @@ -283,7 +281,7 @@ impl ItemService { total_bytes += n as i64; item_out.write_all(&buffer[..n])?; - self.meta_service.process_chunk(&mut plugins, &buffer[..n], &tx, item_id); + self.meta_service.process_chunk(&mut plugins, &buffer[..n], conn, item_id); } debug!("ITEM_SERVICE: Processed {} bytes total", total_bytes); @@ -291,13 +289,12 @@ impl ItemService { drop(item_out); debug!("ITEM_SERVICE: Finalizing meta plugins"); - self.meta_service.finalize_plugins(&mut plugins, &tx, item_id); + self.meta_service.finalize_plugins(&mut plugins, conn, item_id); item.size = Some(total_bytes); - db::update_item(&tx, item.clone())?; + db::update_item(conn, item.clone())?; - tx.commit()?; - debug!("ITEM_SERVICE: Transaction committed successfully"); + debug!("ITEM_SERVICE: Save completed successfully"); Ok(item_id) }