diff --git a/src/databases/database.rs b/src/databases/database.rs index 93cb3204..66bf57e4 100644 --- a/src/databases/database.rs +++ b/src/databases/database.rs @@ -231,10 +231,10 @@ pub trait Database: Sync + Send { async fn update_torrent_description(&self, torrent_id: i64, description: &str) -> Result<(), Error>; /// Add a new tag. - async fn add_tag(&self, name: &str) -> Result; + async fn add_tag(&self, name: &str) -> Result<(), Error>; /// Delete a tag. - async fn delete_tag(&self, tag_id: TagId) -> Result; + async fn delete_tag(&self, tag_id: TagId) -> Result<(), Error>; /// Add a tag to torrent. async fn add_torrent_tag_link(&self, torrent_id: i64, tag_id: TagId) -> Result<(), Error>; diff --git a/src/databases/mysql.rs b/src/databases/mysql.rs index c9f45daa..f8b1386a 100644 --- a/src/databases/mysql.rs +++ b/src/databases/mysql.rs @@ -670,23 +670,21 @@ impl Database for Mysql { }) } - async fn add_tag(&self, name: &str) -> Result { - println!("inserting tag: {}", name); - - query_as("INSERT INTO torrust_torrent_tags (name) VALUES (?) RETURNING id, name") + async fn add_tag(&self, name: &str) -> Result<(), database::Error> { + query("INSERT INTO torrust_torrent_tags (name) VALUES (?)") .bind(name) - .fetch_one(&self.pool) + .execute(&self.pool) .await + .map(|_| ()) .map_err(|err| database::Error::ErrorWithText(err.to_string())) } - async fn delete_tag(&self, tag_id: TagId) -> Result { - println!("deleting tag: {}", tag_id); - - query_as("DELETE FROM torrust_torrent_tags WHERE tag_id = ? RETURNING id, name") + async fn delete_tag(&self, tag_id: TagId) -> Result<(), database::Error> { + query("DELETE FROM torrust_torrent_tags WHERE tag_id = ?") .bind(tag_id) - .fetch_one(&self.pool) + .execute(&self.pool) .await + .map(|_| ()) .map_err(|err| database::Error::ErrorWithText(err.to_string())) } diff --git a/src/databases/sqlite.rs b/src/databases/sqlite.rs index 042654b6..b63e61ee 100644 --- a/src/databases/sqlite.rs +++ b/src/databases/sqlite.rs @@ -660,19 +660,21 @@ impl Database for Sqlite { }) } - async fn add_tag(&self, name: &str) -> Result { - query_as("INSERT INTO torrust_torrent_tags (name) VALUES (?) RETURNING id, name") + async fn add_tag(&self, name: &str) -> Result<(), database::Error> { + query("INSERT INTO torrust_torrent_tags (name) VALUES (?)") .bind(name) - .fetch_one(&self.pool) + .execute(&self.pool) .await + .map(|_| ()) .map_err(|err| database::Error::ErrorWithText(err.to_string())) } - async fn delete_tag(&self, tag_id: TagId) -> Result { - query_as("DELETE FROM torrust_torrent_tags WHERE tag_id = ? RETURNING id, name") + async fn delete_tag(&self, tag_id: TagId) -> Result<(), database::Error> { + query("DELETE FROM torrust_torrent_tags WHERE tag_id = ?") .bind(tag_id) - .fetch_one(&self.pool) + .execute(&self.pool) .await + .map(|_| ()) .map_err(|err| database::Error::ErrorWithText(err.to_string())) } diff --git a/src/routes/tag.rs b/src/routes/tag.rs index b35fb622..7fc9a4f6 100644 --- a/src/routes/tag.rs +++ b/src/routes/tag.rs @@ -46,10 +46,10 @@ pub async fn add_tag(req: HttpRequest, payload: web::Json, app_data: Web return Err(ServiceError::Unauthorized); } - let tag = app_data.torrent_tag_repository.add_tag(&payload.name).await?; + app_data.torrent_tag_repository.add_tag(&payload.name).await?; Ok(HttpResponse::Ok().json(OkResponse { - data: tag, + data: payload.name.to_string(), })) } @@ -72,9 +72,9 @@ pub async fn delete_tag( return Err(ServiceError::Unauthorized); } - let tag = app_data.torrent_tag_repository.delete_tag(&payload.tag_id).await?; + app_data.torrent_tag_repository.delete_tag(&payload.tag_id).await?; Ok(HttpResponse::Ok().json(OkResponse { - data: tag, + data: payload.tag_id, })) } diff --git a/src/services/torrent.rs b/src/services/torrent.rs index 8023244a..d6429a66 100644 --- a/src/services/torrent.rs +++ b/src/services/torrent.rs @@ -121,7 +121,7 @@ impl Index { return Err(e); } - let _ = self.torrent_tag_repository.link_torrent_to_tags(&torrent_id, &torrent_request.fields.tags).await?; + self.torrent_tag_repository.link_torrent_to_tags(&torrent_id, &torrent_request.fields.tags).await?; Ok(torrent_id) } @@ -549,7 +549,7 @@ impl DbTorrentTagRepository { /// # Errors /// /// It returns an error if there is a database error. - pub async fn add_tag(&self, tag_name: &str) -> Result { + pub async fn add_tag(&self, tag_name: &str) -> Result<(), Error> { self.database.add_tag(tag_name).await } @@ -594,7 +594,7 @@ impl DbTorrentTagRepository { /// # Errors /// /// It returns an error if there is a database error. - pub async fn delete_tag(&self, tag_id: &TagId) -> Result { + pub async fn delete_tag(&self, tag_id: &TagId) -> Result<(), Error> { self.database.delete_tag(*tag_id).await }