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
