Запустить функцию перед любым запросом в GraphQL ruby - PullRequest
0 голосов
/ 03 марта 2020

Я хочу запустить функцию перед любым запросом, который я запускаю на 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


...