Skip to content
Snippets Groups Projects
Commit 54a234b9 authored by tiagonbotelho's avatar tiagonbotelho
Browse files

adds basic functionality to the new endpoint of the api

parent 34d11a31
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -79,6 +79,12 @@ module API
expose :public_builds
end
 
class SimpleProject < Grape::Entity
expose :id
expose :name, :name_with_namespace
expose :http_url_to_repo
end
class ProjectMember < UserBasic
expose :access_level do |user, options|
options[:project].project_members.find_by(user_id: user.id).access_level
Loading
Loading
@@ -328,12 +334,18 @@ module API
end
end
 
class SimpleProjectWithAccess < SimpleProject
expose :permissions do
expose :project_access, using: Entities::ProjectAccess do |project, options|
project.project_members.find_by(user_id: options[:user].id)
end
end
end
class ProjectWithAccess < Project
expose :permissions do
expose :project_access, using: Entities::ProjectAccess do |project, options|
project = Project.find_by(project[:id])
project.project_members.find_by(user_id: options[:user].id)
]
end
 
expose :group_access, using: Entities::GroupAccess do |project, options|
Loading
Loading
Loading
Loading
@@ -287,23 +287,6 @@ module API
 
# Projects helpers
 
def filter_params(projects)
project_entries = []
# Removes the redundant information of the object
projects.each do |project|
entry = {
id: project.id,
http_url_to_repo: project.http_url_to_repo,
name_with_namespace: project.name_with_namespace
}
project_entries << entry
end
project_entries
end
def filter_projects(projects)
# If the archived parameter is passed, limit results accordingly
if params[:archived].present?
Loading
Loading
Loading
Loading
@@ -25,11 +25,20 @@ module API
@projects = current_user.authorized_projects
@projects = filter_projects(@projects)
@projects = paginate @projects
@projects = filter_params(@projects)
puts present @projects, with: Entities::ProjectWithAccess, user: current_user
present @projects, with: Entities::ProjectWithAccess, user: current_user
end
 
# Get a simplified project list for authenticated user
#
# Example Request:
# GET /projects/simple
get '/simple' do
@projects = current_user.authorized_projects
@projects = filter_projects(@projects)
@projects = paginate @projects
present @projects, with: Entities::SimpleProjectWithAccess, user: current_user
end
# Get an owned projects list for authenticated user
#
# Example Request:
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment