ontohub/ontohub-backend

View on GitHub
app/graphql/types/repository/permissions_type.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

Types::Repository::PermissionsType = GraphQL::ObjectType.define do
  name 'RepositoryPermissions'
  description 'Holds permission information for an repository'

  field :role, !Types::Repository::RoleEnum do
    description "The user's role in the repository"

    resolve(lambda do |repository, _arguments, context|
      return 'admin' if repository.owner.id == context[:current_user].id

      RepositoryMembership.first(repository_id: repository.id,
                                 member_id: context[:current_user].id).role
    end)
  end
end