summaryrefslogtreecommitdiff
path: root/lib/api/entities.rb
diff options
context:
space:
mode:
authorJavier Castro <javier.alejandro.castro@gmail.com>2014-03-04 15:09:33 -0300
committerJavier Castro <javier.alejandro.castro@gmail.com>2014-03-04 15:09:33 -0300
commitb61f80babb10d0583d3199d557b4e8234d981a33 (patch)
tree747f124631f6547103bd30d4b48586382b91ae89 /lib/api/entities.rb
parent556ae5ae8187b89a3785219d5621e7ebc9bb7a8c (diff)
parentfbbd989770ea48d472a5c4d7d95b970542279099 (diff)
downloadgitlab-ce-b61f80babb10d0583d3199d557b4e8234d981a33.tar.gz
Merge remote-tracking branch 'upstream/master' into fix-4305
Diffstat (limited to 'lib/api/entities.rb')
-rw-r--r--lib/api/entities.rb37
1 files changed, 31 insertions, 6 deletions
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index 8d2f38c4daa..8557fa074d4 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -1,11 +1,17 @@
module API
module Entities
class User < Grape::Entity
- expose :id, :username, :email, :name, :bio, :skype, :linkedin, :twitter,
+ expose :id, :username, :email, :name, :bio, :skype, :linkedin, :twitter, :website_url,
:theme_id, :color_scheme_id, :state, :created_at, :extern_uid, :provider
expose :is_admin?, as: :is_admin
expose :can_create_group?, as: :can_create_group
expose :can_create_project?, as: :can_create_project
+
+ expose :avatar_url do |user, options|
+ if user.avatar.present?
+ user.avatar.url
+ end
+ end
end
class UserSafe < Grape::Entity
@@ -48,19 +54,19 @@ module API
class ProjectMember < UserBasic
expose :project_access, as: :access_level do |user, options|
- options[:project].users_projects.find_by_user_id(user.id).project_access
+ options[:project].users_projects.find_by(user_id: user.id).project_access
end
end
class TeamMember < UserBasic
expose :permission, as: :access_level do |user, options|
- options[:user_team].user_team_user_relationships.find_by_user_id(user.id).permission
+ options[:user_team].user_team_user_relationships.find_by(user_id: user.id).permission
end
end
class TeamProject < Project
expose :greatest_access, as: :greatest_access_level do |project, options|
- options[:user_team].user_team_project_relationships.find_by_project_id(project.id).greatest_access
+ options[:user_team].user_team_project_relationships.find_by(project_id: project.id).greatest_access
end
end
@@ -74,12 +80,21 @@ module API
class GroupMember < UserBasic
expose :group_access, as: :access_level do |user, options|
- options[:group].users_groups.find_by_user_id(user.id).group_access
+ options[:group].users_groups.find_by(user_id: user.id).group_access
end
end
class RepoObject < Grape::Entity
- expose :name, :commit
+ expose :name
+
+ expose :commit do |repo_obj, options|
+ if repo_obj.respond_to?(:commit)
+ repo_obj.commit
+ elsif options[:project]
+ options[:project].repository.commit(repo_obj.target)
+ end
+ end
+
expose :protected do |repo, options|
if options[:project]
options[:project].protected_branch? repo.name
@@ -87,6 +102,16 @@ module API
end
end
+ class RepoTreeObject < Grape::Entity
+ expose :id, :name, :type
+
+ expose :mode do |obj, options|
+ filemode = obj.mode.to_s(8)
+ filemode = "0" + filemode if filemode.length < 6
+ filemode
+ end
+ end
+
class RepoCommit < Grape::Entity
expose :id, :short_id, :title, :author_name, :author_email, :created_at
end