debian-mirror-gitlab/app/serializers/member_entity.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

75 lines
1.6 KiB
Ruby
Raw Normal View History

2021-03-08 18:12:59 +05:30
# frozen_string_literal: true
class MemberEntity < Grape::Entity
include RequestAwareEntity
include AvatarsHelper
expose :id
expose :created_at
expose :expires_at do |member|
member.expires_at&.to_time
end
expose :requested_at
expose :created_by, if: -> (member) { member.created_by.present? } do |member|
UserEntity.represent(member.created_by, only: [:name, :web_url])
end
expose :can_update do |member|
member.can_update?
end
expose :can_remove do |member|
member.can_remove?
end
2021-03-11 19:13:27 +05:30
expose :is_direct_member do |member, options|
member.source == options[:source]
end
2021-03-08 18:12:59 +05:30
expose :access_level do
expose :human_access, as: :string_value
expose :access_level, as: :integer_value
end
expose :source do |member|
GroupEntity.represent(member.source, only: [:id, :full_name, :web_url])
end
2021-04-29 21:17:54 +05:30
expose :type
2021-03-08 18:12:59 +05:30
expose :valid_level_roles, as: :valid_roles
2021-06-02 17:11:27 +05:30
expose :user, if: -> (member) { member.user.present? } do |member, options|
2022-05-07 20:08:51 +05:30
MemberUserEntity.represent(member.user, options)
2021-06-02 17:11:27 +05:30
end
2021-03-08 18:12:59 +05:30
2021-11-18 22:05:49 +05:30
expose :state
2021-03-08 18:12:59 +05:30
expose :invite, if: -> (member) { member.invite? } do
expose :email do |member|
member.invite_email
end
expose :avatar_url do |member|
avatar_icon_for_email(member.invite_email, Member::AVATAR_SIZE)
end
expose :can_resend do |member|
member.can_resend_invite?
end
2021-11-18 22:05:49 +05:30
expose :user_state do |member|
member.respond_to?(:invited_user_state) ? member.invited_user_state : ""
end
2021-03-08 18:12:59 +05:30
end
2022-01-26 12:08:38 +05:30
private
def current_user
options[:current_user]
end
2021-03-08 18:12:59 +05:30
end
2021-06-08 01:23:25 +05:30
MemberEntity.prepend_mod_with('MemberEntity')