gitlabhq/lib/api.rb

62 lines
1.5 KiB
Ruby
Raw Normal View History

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