in nuget-feed/src/jetbrains/buildServer/nuget/feed/server/json/JsonPackageAdapterImpl.kt [47:91]
override fun createSearchPackagesResponse(entries: List<NuGetIndexEntry>, take: Int, skip: Int?): JsonSearchResponse {
val results = entries.groupBy { it.packageInfo.id }
val totalHits = results.size
val data = arrayListOf<JsonPackage>()
var keys = results.keys.asSequence()
skip?.let {
keys = keys.drop(it)
}
keys.take(take).forEach { packageId ->
results[packageId]?.let { packages ->
val entry = packages.last()
val versions = packages.map {
val version = VersionUtility.normalizeVersion(it.version)
JsonPackageVersion(
context.getRegistrationUrl(packageId.toLowerCase(), version),
version,
0
)
}
val version = VersionUtility.normalizeVersion(entry.version)
data.add(JsonPackage(
context.getRegistrationUrl(packageId.toLowerCase(), version),
"Package",
packageId,
version,
versions,
entry.getValue(NuGetPackageAttributes.DESCRIPTION),
entry.getValue(NuGetPackageAttributes.AUTHORS),
entry.getValue(NuGetPackageAttributes.ICON_URL),
entry.getValue(NuGetPackageAttributes.LICENSE_URL),
null,
entry.getValue(NuGetPackageAttributes.PROJECT_URL),
context.getRegistrations(packageId.toLowerCase()),
entry.getValue(NuGetPackageAttributes.SUMMARY),
entry.getValue(NuGetPackageAttributes.TAGS),
entry.getValue(NuGetPackageAttributes.TITLE),
null,
null
))
}
}
return JsonSearchResponse(totalHits, data)
}