override fun findRecentlyCreatedWithGoodQuality()

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()
    }