refactor API and improve docs
This commit is contained in:
parent
84a3f8fca4
commit
0d67f209fc
3 changed files with 89 additions and 53 deletions
56
lib/api.rb
56
lib/api.rb
|
@ -1,61 +1,11 @@
|
||||||
require 'api/entities'
|
Dir["#{Rails.root}/lib/api/*.rb"].each {|file| require file}
|
||||||
require 'api/helpers'
|
|
||||||
|
|
||||||
module Gitlab
|
module Gitlab
|
||||||
class API < Grape::API
|
class API < Grape::API
|
||||||
format :json
|
format :json
|
||||||
helpers APIHelpers
|
helpers APIHelpers
|
||||||
|
|
||||||
# Users API
|
mount Users
|
||||||
resource :users do
|
mount Projects
|
||||||
before { authenticate! }
|
|
||||||
|
|
||||||
# GET /users
|
|
||||||
get do
|
|
||||||
@users = User.all
|
|
||||||
present @users, :with => Entities::User
|
|
||||||
end
|
|
||||||
|
|
||||||
# GET /users/:id
|
|
||||||
get ":id" do
|
|
||||||
@user = User.find(params[:id])
|
|
||||||
present @user, :with => Entities::User
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# GET /user
|
|
||||||
get "/user" do
|
|
||||||
authenticate!
|
|
||||||
present @current_user, :with => Entities::User
|
|
||||||
end
|
|
||||||
|
|
||||||
# Projects API
|
|
||||||
resource :projects do
|
|
||||||
before { authenticate! }
|
|
||||||
|
|
||||||
# GET /projects
|
|
||||||
get do
|
|
||||||
@projects = current_user.projects
|
|
||||||
present @projects, :with => Entities::Project
|
|
||||||
end
|
|
||||||
|
|
||||||
# GET /projects/:id
|
|
||||||
get ":id" do
|
|
||||||
@project = current_user.projects.find_by_code(params[:id])
|
|
||||||
present @project, :with => Entities::Project
|
|
||||||
end
|
|
||||||
|
|
||||||
# GET /projects/:id/repository/branches
|
|
||||||
get ":id/repository/branches" do
|
|
||||||
@project = current_user.projects.find_by_code(params[:id])
|
|
||||||
present @project.repo.heads.sort_by(&:name), :with => Entities::ProjectRepositoryBranches
|
|
||||||
end
|
|
||||||
|
|
||||||
# GET /projects/:id/repository/tags
|
|
||||||
get ":id/repository/tags" do
|
|
||||||
@project = current_user.projects.find_by_code(params[:id])
|
|
||||||
present @project.repo.tags.sort_by(&:name).reverse, :with => Entities::ProjectRepositoryTags
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
50
lib/api/projects.rb
Normal file
50
lib/api/projects.rb
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
module Gitlab
|
||||||
|
# Projects API
|
||||||
|
class Projects < Grape::API
|
||||||
|
before { authenticate! }
|
||||||
|
|
||||||
|
resource :projects do
|
||||||
|
# Get a projects list for authenticated user
|
||||||
|
#
|
||||||
|
# Example Request:
|
||||||
|
# GET /projects
|
||||||
|
get do
|
||||||
|
@projects = current_user.projects
|
||||||
|
present @projects, :with => Entities::Project
|
||||||
|
end
|
||||||
|
|
||||||
|
# Get a single project
|
||||||
|
#
|
||||||
|
# Parameters:
|
||||||
|
# id (required) - The code of a project
|
||||||
|
# Example Request:
|
||||||
|
# GET /projects/:id
|
||||||
|
get ":id" do
|
||||||
|
@project = current_user.projects.find_by_code(params[:id])
|
||||||
|
present @project, :with => Entities::Project
|
||||||
|
end
|
||||||
|
|
||||||
|
# Get a project repository branches
|
||||||
|
#
|
||||||
|
# Parameters:
|
||||||
|
# id (required) - The code of a project
|
||||||
|
# Example Request:
|
||||||
|
# GET /projects/:id/repository/branches
|
||||||
|
get ":id/repository/branches" do
|
||||||
|
@project = current_user.projects.find_by_code(params[:id])
|
||||||
|
present @project.repo.heads.sort_by(&:name), :with => Entities::ProjectRepositoryBranches
|
||||||
|
end
|
||||||
|
|
||||||
|
# Get a project repository tags
|
||||||
|
#
|
||||||
|
# Parameters:
|
||||||
|
# id (required) - The code of a project
|
||||||
|
# Example Request:
|
||||||
|
# GET /projects/:id/repository/tags
|
||||||
|
get ":id/repository/tags" do
|
||||||
|
@project = current_user.projects.find_by_code(params[:id])
|
||||||
|
present @project.repo.tags.sort_by(&:name).reverse, :with => Entities::ProjectRepositoryTags
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
36
lib/api/users.rb
Normal file
36
lib/api/users.rb
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
module Gitlab
|
||||||
|
# Users API
|
||||||
|
class Users < Grape::API
|
||||||
|
before { authenticate! }
|
||||||
|
|
||||||
|
resource :users do
|
||||||
|
# Get a users list
|
||||||
|
#
|
||||||
|
# Example Request:
|
||||||
|
# GET /users
|
||||||
|
get do
|
||||||
|
@users = User.all
|
||||||
|
present @users, :with => Entities::User
|
||||||
|
end
|
||||||
|
|
||||||
|
# Get a single user
|
||||||
|
#
|
||||||
|
# Parameters:
|
||||||
|
# id (required) - The ID of a user
|
||||||
|
# Example Request:
|
||||||
|
# GET /users/:id
|
||||||
|
get ":id" do
|
||||||
|
@user = User.find(params[:id])
|
||||||
|
present @user, :with => Entities::User
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Get currently authenticated user
|
||||||
|
#
|
||||||
|
# Example Request:
|
||||||
|
# GET /user
|
||||||
|
get "/user" do
|
||||||
|
present @current_user, :with => Entities::User
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue