diff --git a/app/services/gitea/repository/get_by_id_service.rb b/app/services/gitea/repository/get_by_id_service.rb new file mode 100644 index 000000000..c633c6b71 --- /dev/null +++ b/app/services/gitea/repository/get_by_id_service.rb @@ -0,0 +1,31 @@ +class Gitea::Repository::GetByIdService < Gitea::ClientService + attr_reader :owner, :repo_id + + def initialize(owner, repo_id) + @owner = owner + @repo_id = repo_id + end + + def call + response = get(url, params) + render_result(response) + end + + private + def params + Hash.new.merge(token: owner.gitea_token) + end + + def url + "/repositories/#{repo_id}".freeze + end + + def render_result(response) + case response.status + when 200 + JSON.parse(response.body) + else + nil + end + end +end