2012-06-27 13:32:56 +02:00
|
|
|
require 'api/entities'
|
|
|
|
require 'api/helpers'
|
|
|
|
|
|
|
|
module Gitlab
|
|
|
|
class API < Grape::API
|
|
|
|
format :json
|
|
|
|
helpers APIHelpers
|
|
|
|
|
2012-06-27 14:51:39 +02:00
|
|
|
# Users API
|
2012-06-27 13:32:56 +02:00
|
|
|
resource :users do
|
|
|
|
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
|
2012-06-27 14:51:39 +02:00
|
|
|
|
|
|
|
# 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
|
2012-06-28 16:02:20 +02:00
|
|
|
@project = current_user.projects.find_by_code(params[:id])
|
2012-06-27 14:51:39 +02:00
|
|
|
present @project, :with => Entities::Project
|
|
|
|
end
|
|
|
|
|
|
|
|
# GET /projects/:id/repository/branches
|
|
|
|
get ":id/repository/branches" do
|
2012-06-28 16:02:20 +02:00
|
|
|
@project = current_user.projects.find_by_code(params[:id])
|
2012-06-27 14:51:39 +02:00
|
|
|
present @project.repo.heads.sort_by(&:name), :with => Entities::ProjectRepositoryBranches
|
|
|
|
end
|
|
|
|
|
|
|
|
# GET /projects/:id/repository/tags
|
|
|
|
get ":id/repository/tags" do
|
2012-06-28 16:02:20 +02:00
|
|
|
@project = current_user.projects.find_by_code(params[:id])
|
2012-06-27 14:51:39 +02:00
|
|
|
present @project.repo.tags.sort_by(&:name).reverse, :with => Entities::ProjectRepositoryTags
|
|
|
|
end
|
|
|
|
end
|
2012-06-27 13:32:56 +02:00
|
|
|
end
|
2012-06-27 11:26:16 +02:00
|
|
|
end
|