From 6f8bd6742d011a6abeea153f9cbe9ca256945fa3 Mon Sep 17 00:00:00 2001 From: Sophie <47993817+sdankel@users.noreply.github.com> Date: Tue, 4 Feb 2025 19:34:49 -0800 Subject: [PATCH] clippy --- src/api/publish.rs | 8 ++++++++ src/handlers/publish.rs | 6 +++--- src/main.rs | 9 ++++++--- tests/db_integration.rs | 5 +++-- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/api/publish.rs b/src/api/publish.rs index 5e05f38..3c2621b 100644 --- a/src/api/publish.rs +++ b/src/api/publish.rs @@ -1,4 +1,5 @@ use rocket::serde::{Deserialize, Serialize}; +use semver::Version; use url::Url; use uuid::Uuid; @@ -9,6 +10,13 @@ pub struct PublishRequest { pub urls: Option>, } +/// The publish response. +#[derive(Serialize, Deserialize, Debug)] +pub struct PublishResponse { + pub name: String, + pub version: Version, +} + /// The response to an upload_project request. #[derive(Serialize, Debug)] pub struct UploadResponse { diff --git a/src/handlers/publish.rs b/src/handlers/publish.rs index 338679f..ff134f4 100644 --- a/src/handlers/publish.rs +++ b/src/handlers/publish.rs @@ -1,7 +1,7 @@ use crate::api::publish::PublishRequest; use crate::db::error::DatabaseError; use crate::db::Database; -use crate::models::{ApiToken, NewPackageDep, PackageVersion}; +use crate::models::{ApiToken, NewPackageDep}; use forc_pkg::PackageManifest; use semver::Version; use thiserror::Error; @@ -51,7 +51,7 @@ pub async fn handle_publish( db: &Database, request: &PublishRequest, token: &ApiToken, -) -> Result { +) -> Result { // Parse the forc manifest file and verify that the version is set. let upload = db.conn().get_upload(request.upload_id)?; // For now, only package manifests are supported. Workspace manifests will be supported in the future. @@ -120,5 +120,5 @@ pub async fn handle_publish( // TODO [https://github.com/FuelLabs/forc.pub/issues/28]: Publish to GitHub index repo. - Ok(package_version) + Ok(publish_info) } diff --git a/src/main.rs b/src/main.rs index d6ffaf3..693b3f5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,7 +6,7 @@ extern crate rocket; use chrono::{DateTime, Utc}; use forc_pub::api::api_token::{CreateTokenRequest, CreateTokenResponse, Token, TokensResponse}; use forc_pub::api::pagination::{PaginatedResponse, Pagination}; -use forc_pub::api::publish::{PublishRequest, UploadResponse}; +use forc_pub::api::publish::{PublishRequest, PublishResponse, UploadResponse}; use forc_pub::api::search::{FullPackage, RecentPackagesResponse}; use forc_pub::api::ApiError; use forc_pub::api::{ @@ -112,9 +112,12 @@ async fn publish( db: &State, request: Json, auth: TokenAuth, -) -> ApiResult { +) -> ApiResult { match handle_publish(db, &request, &auth.token).await { - Ok(_) => Ok(Json(EmptyResponse)), + Ok(info) => Ok(Json(PublishResponse { + name: info.package_name, + version: info.num, + })), Err(e) => Err(ApiError::Publish(e)), } } diff --git a/tests/db_integration.rs b/tests/db_integration.rs index 034db50..ec3f51a 100644 --- a/tests/db_integration.rs +++ b/tests/db_integration.rs @@ -10,6 +10,7 @@ use forc_pub::api::pagination::Pagination; use forc_pub::db::{Database, DbConn}; use forc_pub::handlers::publish::PublishInfo; use forc_pub::models::{FullPackage, NewUpload, PackageVersion}; +use semver::Version; use serial_test::serial; use url::Url; @@ -178,7 +179,7 @@ fn test_package_versions() { let request = PublishInfo { package_name: TEST_PACKAGE_NAME.into(), upload_id: upload.id, - num: TEST_VERSION_1.into(), + num: Version::parse(TEST_VERSION_1).unwrap(), package_description: Some(TEST_DESCRIPTION.into()), repository: Url::parse(TEST_URL_REPO).ok(), documentation: Url::parse(TEST_URL_DOC).ok(), @@ -243,7 +244,7 @@ fn test_package_versions() { let request = PublishInfo { package_name: TEST_PACKAGE_NAME.into(), upload_id: upload.id, - num: TEST_VERSION_2.into(), + num: Version::parse(TEST_VERSION_2).unwrap(), package_description: Some("test description 2".into()), repository: Url::parse(TEST_URL_REPO).ok(), documentation: Url::parse(TEST_URL_DOC).ok(),