Sha256: 7db00f66c4a01f46e0de595235c6ff7df964f523634b3e722139f2ca62897572
Contents?: true
Size: 1.29 KB
Versions: 17
Compression:
Stored size: 1.29 KB
Contents
module NulogyMessageBusProducer module Configuration class QueryParser class ParseError < StandardError attr_reader :source_error def intialize(source_error) @source_error = source_error end end def initialize(query) @query = query end def subscription_id parse argument("subscriptionId") rescue => e error("subscriptionId", e) end def subscription_group_id parse argument("subscriptionGroupId") rescue => e error("subscriptionGroupId", e) end def event_type parse first_selection.name rescue => e error("event type", e) end def topic parse argument("topicName") rescue => e error("topic", e) end private def parse @gql ||= GraphQL::Language::Parser.parse(@query) end def argument(field) first_selection .arguments.detect { |e| e.name == field } .value end def first_selection @gql .definitions.first .selections.first end def error(field, err) raise ParseError.new(err), "Error extracting #{field} from the subscription" end end end end
Version data entries
17 entries across 17 versions & 1 rubygems