forgeplus/app/services/api/v1/projects/commits/recent_service.rb

39 lines
918 B
Ruby

class Api::V1::Projects::Commits::RecentService < ApplicationService
attr_reader :project, :page, :limit, :keyword, :owner, :repo, :token
attr_accessor :gitea_data
def initialize(project, params, token=nil)
@project = project
@page = params[:page] || 1
@limit = params[:limit] || 15
@keyword = params[:keyword]
@owner = project&.owner&.login
@repo = project&.identifier
@token = token
end
def call
load_gitea_data
gitea_data
end
private
def request_params
param = {
access_token: token,
page: page,
limit: limit
}
param.merge!(keyword: keyword) if keyword.present?
param
end
def load_gitea_data
@gitea_data = $gitea_hat_client.get_repos_recent_commits_by_owner_repo(owner, repo, {query: request_params}) rescue nil
raise Error, "获取最近提交列表失败" unless @gitea_data.is_a?(Hash)
end
end