class Gitea::Repository::Entries::GetService < Gitea::ClientService attr_reader :user, :repo_name, :filepath, :args # ref: The name of the commit/branch/tag. Default the repository’s default branch (usually master) # filepath: path of the dir, file, symlink or submodule in the repo # repo_name: the name of repository # ref: The name of the commit/branch/tag. Default the repository’s default branch (usually master) def initialize(user, repo_name, filepath, **args) @user = user @repo_name = repo_name @filepath = filepath @args = {ref: 'master'}.merge(args.compact) end def call response = get(url, params) render_result(response) end private def params @args.merge(token: user.gitea_token) end def url "/repos/#{user.login}/#{repo_name}/contents/#{filepath}".freeze end def render_result(response) body = JSON.parse(response.body) case response.status when 200 body else {status: -1, message: "#{body['message']}"} end end end