Include compatible dependencies field in project search (#6366)

* include compatible dependency projects field

* fix
This commit is contained in:
aecsocket
2026-06-11 20:18:44 +00:00
committed by GitHub
parent c082594825
commit 64e17c7c1b
5 changed files with 96 additions and 34 deletions
+9
View File
@@ -2,6 +2,7 @@ use crate::database::redis::RedisPool;
use crate::models::exp;
use crate::models::exp::minecraft::JavaServerPing;
use crate::models::ids::{ProjectId, VersionId};
use crate::models::projects::DependencyType;
use crate::queue::server_ping;
use crate::routes::ApiError;
use crate::{database::PgPool, env::ENV};
@@ -196,6 +197,7 @@ pub enum SearchField {
MinecraftJavaServerContentSupportedGameVersions,
MinecraftJavaServerPingData,
DependencyProjectIds,
CompatibleDependencyProjectIds,
}
#[derive(Debug, Error)]
@@ -252,6 +254,8 @@ pub struct UploadSearchProject {
#[serde(default)]
pub dependency_project_ids: Vec<String>,
#[serde(default)]
pub compatible_dependency_project_ids: Vec<String>,
#[serde(default)]
pub dependencies: Vec<SearchProjectDependency>,
// Hidden fields to get the Project model out of the search results.
@@ -267,6 +271,7 @@ pub struct UploadSearchProject {
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct SearchProjectDependency {
pub project_id: String,
pub dependency_type: DependencyType,
pub name: String,
pub slug: Option<String>,
pub icon_url: Option<String>,
@@ -311,6 +316,8 @@ pub struct ResultSearchProject {
#[serde(default)]
pub dependency_project_ids: Vec<String>,
#[serde(default)]
pub compatible_dependency_project_ids: Vec<String>,
#[serde(default)]
pub dependencies: Vec<SearchProjectDependency>,
// Hidden fields to get the Project model out of the search results.
@@ -350,6 +357,8 @@ impl From<UploadSearchProject> for ResultSearchProject {
featured_gallery: source.featured_gallery,
color: source.color,
dependency_project_ids: source.dependency_project_ids,
compatible_dependency_project_ids: source
.compatible_dependency_project_ids,
dependencies: source.dependencies,
loaders: source.loaders,
project_loader_fields: source.project_loader_fields,