summaryrefslogtreecommitdiff
path: root/app/serializers
diff options
context:
space:
mode:
authorBob Van Landuyt <bob@vanlanduyt.co>2017-09-05 11:30:16 +0200
committerBob Van Landuyt <bob@vanlanduyt.co>2017-10-04 22:46:49 +0200
commitd33e15574b064e38ceadf8aafb47af985d1a7a7a (patch)
tree0852a044ceef545d7cdc5b17ee0ab70cee1f3e63 /app/serializers
parent376a8c66c1ca8ee2a95255d21c9d55ce006ab655 (diff)
downloadgitlab-ce-d33e15574b064e38ceadf8aafb47af985d1a7a7a.tar.gz
Add serializer for group children
Diffstat (limited to 'app/serializers')
-rw-r--r--app/serializers/group_child_entity.rb20
-rw-r--r--app/serializers/group_child_serializer.rb5
2 files changed, 25 insertions, 0 deletions
diff --git a/app/serializers/group_child_entity.rb b/app/serializers/group_child_entity.rb
new file mode 100644
index 00000000000..0d2052fe6f3
--- /dev/null
+++ b/app/serializers/group_child_entity.rb
@@ -0,0 +1,20 @@
+class GroupChildEntity < Grape::Entity
+ include ActionView::Helpers::NumberHelper
+ include RequestAwareEntity
+
+ expose :id, :name, :description, :visibility, :full_name, :full_path, :web_url,
+ :created_at, :updated_at, :star_count, :can_edit, :type, :parent_id,
+ :children_count, :leave_path, :edit_path, :number_projects_with_delimiter,
+ :number_users_with_delimiter, :permissions, :star_count
+
+ def type
+ object.class.name.downcase
+ end
+
+ def can_edit
+ return false unless request.respond_to?(:current_user)
+
+ can?(request.current_user, "edit_{type}", object)
+ end
+ expose
+end
diff --git a/app/serializers/group_child_serializer.rb b/app/serializers/group_child_serializer.rb
new file mode 100644
index 00000000000..fbf4a6783b9
--- /dev/null
+++ b/app/serializers/group_child_serializer.rb
@@ -0,0 +1,5 @@
+class GroupChildSerializer < BaseSerializer
+ include WithPagination
+
+ entity GroupChildEntity
+end