add currentUser query
This commit is contained in:
9
app/graphql/enums/role_enum.rb
Normal file
9
app/graphql/enums/role_enum.rb
Normal file
@@ -0,0 +1,9 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Enums
|
||||
class RoleEnum < Types::BaseEnum
|
||||
graphql_name "UserRole"
|
||||
|
||||
values(%w[admin teacher nde coordinator center_director pro_rector])
|
||||
end
|
||||
end
|
||||
@@ -1,7 +1,11 @@
|
||||
module Types
|
||||
class BaseEnum < GraphQL::Schema::Enum
|
||||
def self.values_from_enumerize(enum_values)
|
||||
enum_values.values.each do |enum_value|
|
||||
def self.values_from_enumerize(enum)
|
||||
values(enum.values)
|
||||
end
|
||||
|
||||
def self.values(enum_values)
|
||||
enum_values.each do |enum_value|
|
||||
value enum_value.upcase, value: enum_value
|
||||
end
|
||||
end
|
||||
|
||||
@@ -8,8 +8,14 @@ module Types
|
||||
argument :where, Inputs::QuestionWhereInput, required: false
|
||||
end
|
||||
|
||||
field :current_user, Types::UserType, null: true
|
||||
|
||||
def questions(where: nil)
|
||||
Resolvers::QuestionsQueryResolver.new(Question, context: context, where: where).resolve
|
||||
end
|
||||
|
||||
def current_user
|
||||
context[:current_user]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
16
app/graphql/types/user_type.rb
Normal file
16
app/graphql/types/user_type.rb
Normal file
@@ -0,0 +1,16 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Types
|
||||
class UserType < Types::BaseObject
|
||||
graphql_name "User"
|
||||
|
||||
field :id, ID, null: false
|
||||
field :name, String, null: false
|
||||
field :email, String, null: false
|
||||
field :roles, [Enums::RoleEnum], null: false
|
||||
|
||||
def roles
|
||||
object.roles.map(&:name)
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user