Make project users API more RESTful

This commit is contained in:
miks 2012-09-06 23:49:29 +03:00
parent 2dc0519277
commit 909c8c345d
4 changed files with 111 additions and 8 deletions

View file

@ -16,6 +16,11 @@ module Gitlab
expose :issues_enabled, :merge_requests_enabled, :wall_enabled, :wiki_enabled, :created_at
end
class UsersProject < Grape::Entity
expose :user, using: Entities::UserBasic
expose :project_access
end
class RepoObject < Grape::Entity
expose :name, :commit
end

View file

@ -44,6 +44,17 @@ module Gitlab
end
end
# Get project users
#
# Parameters:
# id (required) - The ID or code name of a project
# Example Request:
# GET /projects/:id/users
get ":id/users" do
@users_projects = paginate user_project.users_projects
present @users_projects, with: Entities::UsersProject
end
# Add users to project with specified access level
#
# Parameters:
@ -51,11 +62,34 @@ module Gitlab
# user_ids (required) - The ID list of users to add
# project_access (required) - Project access level
# Example Request:
# PUT /projects/:id/add_users
put ":id/add_users" do
# POST /projects/:id/users
post ":id/users" do
user_project.add_users_ids_to_team(params[:user_ids].values, params[:project_access])
end
# Update users to specified access level
#
# Parameters:
# id (required) - The ID or code name of a project
# user_ids (required) - The ID list of users to add
# project_access (required) - New project access level to
# Example Request:
# PUT /projects/:id/add_users
put ":id/users" do
user_project.update_users_ids_to_role(params[:user_ids].values, params[:project_access])
end
# Delete project users
#
# Parameters:
# id (required) - The ID or code name of a project
# user_ids (required) - The ID list of users to delete
# Example Request:
# DELETE /projects/:id/users
delete ":id/users" do
user_project.delete_users_ids_from_team(params[:user_ids].values)
end
# Get a project repository branches
#
# Parameters: