in core/search/src/main/kotlin/io/klibs/core/search/ProjectSearchRepositoryJdbc.kt [42:74]
override fun findRecentlyCreatedWithGoodQuality(searchLimit: Int, resultLimit: Int): List<SearchProjectResult> {
val sql = """
WITH matching_project_ids AS (SELECT project.id
FROM scm_repo
JOIN project ON project.scm_repo_id = scm_repo.id
WHERE scm_repo.has_readme = true
AND scm_repo.license_key IS NOT NULL
AND scm_repo.description IS NOT NULL
ORDER BY scm_repo.created_ts DESC
LIMIT :searchLimit)
SELECT project_id,
owner_type,
owner_login,
name,
stars,
license_name,
latest_version,
latest_version_ts,
array_to_string(platforms, ',') AS platforms,
plain_description,
tags
FROM project_index
WHERE project_id IN (SELECT id FROM matching_project_ids)
ORDER BY random()
LIMIT :resultLimit
""".trimIndent()
return jdbcClient.sql(sql)
.param("searchLimit", searchLimit)
.param("resultLimit", resultLimit)
.query(PROJECT_OVERVIEW_ROW_MAPPER)
.list()
}