Merge branch 'pre_trustie_server' into trustie_server

This commit is contained in:
“xxq250” 2022-11-01 17:40:18 +08:00
commit 34c8a39678
2 changed files with 27 additions and 2 deletions

View File

@ -25,7 +25,7 @@ class Projects::ListQuery < ApplicationQuery
def filter_projects(collection)
# collection = by_pinned(collection)
collection = by_search(collection)
collection = by_search(collection) if params[:search].present?
collection = by_project_type(collection)
collection = by_project_category(collection)
collection = by_project_language(collection)
@ -33,7 +33,12 @@ class Projects::ListQuery < ApplicationQuery
end
def by_search(items)
items.visible.by_name_or_identifier(params[:search])
ids = Projects::ElasticsearchService.call(params[:search])
if ids.present?
items.visible.where(id: ids).by_name_or_identifier(params[:search])
else
items.visible.by_name_or_identifier(params[:search])
end
end
def by_project_type(items)

View File

@ -0,0 +1,20 @@
class Projects::ElasticsearchService < ApplicationService
attr_reader :keyword
def initialize(keyword)
@keyword = keyword
end
def call
domain = EduSetting.get("search_api_url") || "https://statistics.gitlink.org.cn"
api_url = URI.encode("#{domain}/search?page=1&size=1000&term=#{@keyword}&type=1")
response = Faraday.get(api_url)
result = JSON.parse(response&.body)
project_ids = result['data']['rows'].map{|d|d['instanceId']}
project_ids
rescue => e
Rails.logger.info "ElasticsearchService error: #{e.message}"
[]
end
end