Skip to content

Commit 59924cc

Browse files
committed
feature(query):为主页查询打补丁
1 parent df57228 commit 59924cc

2 files changed

Lines changed: 7 additions & 5 deletions

File tree

src/main/kotlin/com/github/fastmirrorserver/controllers/QueryController.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ class QueryController {
2828
private lateinit var file_service: FileService
2929

3030
@GetMapping(QUERY_ALL_PROJECT)
31-
fun queryAllProject()
32-
= database.getAllProject()
31+
fun queryAllProject(@RequestParam("project", required = false) projects: ArrayList<String>?)
32+
= projects?.map { database.getSupportedMcVersionOfProject(it) } ?: database.getAllProject()
3333

3434
@GetMapping(QUERY_SUPPORTED_MC_VER_OF_PROJECT)
3535
fun querySupportedMcVersionOfProject(

src/main/kotlin/com/github/fastmirrorserver/utils/Database.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,20 +44,22 @@ fun EntitySequence<Core, Cores>.querySpecificArtifact(tuple: Metadata)
4444
fun Database.getAllProject() = sequenceOf(Projects).map { it.toSummary() }
4545

4646
fun Database.getSupportedMcVersionOfProject(name: String) = from(Cores).leftJoin(Projects, on = Projects.name eq Cores.name)
47-
.selectDistinct(Cores.name, Cores.mc_version, Projects.url)
47+
.selectDistinct(Cores.name, Cores.mc_version, Projects.url, Projects.tag)
4848
.where { Cores.enable }
4949
.where { Cores.name eq name }
5050
.orderBy(Cores.name.asc(), Cores.mc_version.desc())
5151
.mapNotNull{
5252
val project = it[Cores.name] ?: return@mapNotNull null
5353
val homepage = it[Projects.url] ?: return@mapNotNull null
54+
val tag = it[Projects.tag] ?: return@mapNotNull null
5455
val version = it[Cores.mc_version] ?: return@mapNotNull null
55-
return@mapNotNull (project to homepage) to version
56+
return@mapNotNull Triple(project, tag, homepage) to version
5657
}.groupBy { it.first }
5758
.mapValues { entry -> entry.value.map { it.second } }
5859
.map { mapOf(
5960
"name" to it.key.first,
60-
"homepage" to it.key.second,
61+
"tag" to it.key.second,
62+
"homepage" to it.key.third,
6163
"mc_versions" to it.value
6264
) }
6365
.firstOrNull() ?: throw ApiException.ARTIFACT_INFO_NOT_FOUND

0 commit comments

Comments
 (0)