diff options
Diffstat (limited to 'app/serializers/group_link/group_link_entity.rb')
-rw-r--r-- | app/serializers/group_link/group_link_entity.rb | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/app/serializers/group_link/group_link_entity.rb b/app/serializers/group_link/group_link_entity.rb new file mode 100644 index 00000000000..12349320b6f --- /dev/null +++ b/app/serializers/group_link/group_link_entity.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +module GroupLink + class GroupLinkEntity < Grape::Entity + include RequestAwareEntity + + expose :id + expose :created_at + expose :expires_at do |group_link| + group_link.expires_at&.to_time + end + + expose :access_level do + expose :human_access, as: :string_value + expose :group_access, as: :integer_value + end + + expose :valid_roles do |group_link| + group_link.class.access_options + end + + expose :shared_with_group do + expose :avatar_url do |group_link| + group_link.shared_with_group.avatar_url(only_path: false, size: Member::AVATAR_SIZE) + end + + expose :web_url do |group_link| + group_link.shared_with_group.web_url + end + + expose :shared_with_group, merge: true, using: GroupBasicEntity + end + end +end |