feat: read all packages

This commit is contained in:
Ahmet Kaan GÜMÜŞ 2024-11-20 00:16:31 +03:00
parent 0acbb835f7
commit f45bb18bff
3 changed files with 22 additions and 6 deletions

View file

@ -51,3 +51,7 @@ pub async fn delete_package(package_name: String) -> Option<Package> {
.await
.map_or_else(|_| None, |mut package| package.pop())
}
pub async fn read_all_packages() -> Option<Vec<Package>> {
DB.select::<Vec<Package>>("Packages").await.ok()
}

View file

@ -61,3 +61,7 @@ pub async fn upload_package(mut package_file: Multipart) -> Option<Package> {
Some(package)
}
pub async fn read_all_packages() -> Option<Vec<Package>> {
database::read_all_packages().await
}

View file

@ -21,12 +21,13 @@ pub struct Package {
pub async fn route(State(app_state): State<AppState>) -> Router {
Router::new()
.route("/", get(alive))
.route("/package", post(create_package))
.route("/package/:package_name", get(read_package))
.route("/package/:package_name", patch(update_package))
.route("/package/:package_name", delete(delete_package))
.route("/package/download/:package_name", get(download_package))
.route("/package/upload", post(upload_package))
.route("/packages", get(read_all_packages))
.route("/packages", post(create_package))
.route("/packages/:package_name", get(read_package))
.route("/packages/:package_name", patch(update_package))
.route("/packages/:package_name", delete(delete_package))
.route("/packages/downloads/:package_name", get(download_package))
.route("/packages/uploads", post(upload_package))
.layer(CorsLayer::permissive())
.with_state(app_state)
}
@ -88,3 +89,10 @@ async fn upload_package(package_file: Multipart) -> impl IntoResponse {
None => (StatusCode::BAD_REQUEST, Json(serde_json::json!(""))),
}
}
async fn read_all_packages() -> impl IntoResponse {
match crate::package::utils::read_all_packages().await {
Some(packages) => (StatusCode::OK, Json(serde_json::json!(packages))),
None => (StatusCode::BAD_REQUEST, Json(serde_json::json!(""))),
}
}