ADD get project branches api

dev_forge
Jasder 5 years ago
parent 44dc09b8ba
commit fafefdbb6f

@ -1,7 +1,9 @@
class ProjectsController < ApplicationController
before_action :require_login
before_action :find_project, only: %i[branches]
def index
end
def create
@ -24,7 +26,15 @@ class ProjectsController < ApplicationController
tip_exception(e.message)
end
def branches
@branches = Gitea::Repository::BranchesService.new(current_user, @project.identifier).call
end
private
def find_project
@project = Project.find_by_identifier! params[:id]
end
def project_params
params.permit(:user_id, :name, :description, :repository_name,
:project_category_id, :project_language_id, :license_id, :ignore_id)

@ -34,4 +34,8 @@ class Project < ApplicationRecord
members.exists?(user_id: user.id)
end
def to_param
self.identifier.parameterize
end
end

@ -121,4 +121,13 @@ class Gitea::ClientService < ApplicationService
def authen_params(token)
(token.is_a? String) ? {token: token} : Hash(token)
end
def render_data(response)
case response.status
when 201, 200
JSON.parse(response.body)
else
nil
end
end
end

@ -0,0 +1,22 @@
class Gitea::Repository::BranchesService < Gitea::ClientService
attr_reader :user, :repo
def initialize(user, repo)
@user = user
@repo = repo
end
def call
response = get(url, params)
render_data(response)
end
private
def params
Hash.new.merge(token: user.gitea_token)
end
def url
"/repos/#{user.login}/#{repo}/branches".freeze
end
end

@ -0,0 +1,3 @@
json.array! @branches do |branch|
json.name branch['name']
end
Loading…
Cancel
Save