diff options
Diffstat (limited to 'app/graphql/types/invitation_interface.rb')
-rw-r--r-- | app/graphql/types/invitation_interface.rb | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/app/graphql/types/invitation_interface.rb b/app/graphql/types/invitation_interface.rb new file mode 100644 index 00000000000..a29716c292e --- /dev/null +++ b/app/graphql/types/invitation_interface.rb @@ -0,0 +1,41 @@ +# frozen_string_literal: true + +module Types + module InvitationInterface + include BaseInterface + + field :email, GraphQL::STRING_TYPE, null: false, + description: 'Email of the member to invite' + + field :access_level, Types::AccessLevelType, null: true, + description: 'GitLab::Access level' + + field :created_by, Types::UserType, null: true, + description: 'User that authorized membership' + + field :created_at, Types::TimeType, null: true, + description: 'Date and time the membership was created' + + field :updated_at, Types::TimeType, null: true, + description: 'Date and time the membership was last updated' + + field :expires_at, Types::TimeType, null: true, + description: 'Date and time the membership expires' + + field :user, Types::UserType, null: true, + description: 'User that is associated with the member object' + + definition_methods do + def resolve_type(object, context) + case object + when GroupMember + Types::GroupInvitationType + when ProjectMember + Types::ProjectInvitationType + else + raise ::Gitlab::Graphql::Errors::BaseError, "Unknown member type #{object.class.name}" + end + end + end + end +end |