Я хочу запустить функцию перед любым запросом, который я запускаю на GraphQL. Я хочу контролировать некоторые условия и выдавать GraphQL :: ExecutionError в случае, если он ловит ошибку. Я знаю, что есть базовый запрос, который выполняется перед любым запросом, но необходимо проверить, вошел ли пользователь в систему или нет, чтобы выполнить запросы, и выдача ошибки здесь останавливает выполнение, и я не думаю, что это правильное место для его размещения. на. Как выполнить функцию перед выполнением любого запроса? Это то, что я пробовал до сих пор:
module Queries
class BaseQuery < GraphQL::Schema::Resolver
def authorized?(**args)
if context[:current_user].nil?
raise GraphQL::ExecutionError, "Only logged users can run this query"
elsif context[:current_user].orders.any?
today_created = false
not_updated = false
context[:current_user].orders.each do |sp|
if sp.time_opened.to_date == Date.today.to_date
today_created = true
end
if sp.time_opened.to_date != Date.today.to_date && sp.time_closed == nil
not_updated = true
end
end
if (today_created == false && not_updated == false)
# raise GraphQL::ExecutionError, "Error"
end
true
else
# Return true to continue the query:
true
end
end
end
end