Sha256: 891c827f8d01b081f9bd90f87074662abdc1f86e1da371ce469e38fae7800f9d

Contents?: true

Size: 1.25 KB

Versions: 17

Compression:

Stored size: 1.25 KB

Contents

module Eco::API::UseCases::GraphQL::Helpers::Location::Command
  class Result
    attr_reader :input, :result

    def initialize(input, result)
      @input  = input
      @result = result
    end

    def command
      input.keys.first
    end

    def command_input_data
      input[command]
    end

    def node_id
      command_input_data[:nodeId]
    end

    def pending?
      !result || !success?
    end

    def applied?
      !pending?
    end

    def success?
      result&.ok
    end

    def error
      result&.error
    end

    def error?
      !!error
    end

    def error_msg
      return nil unless error?

      msg  = []
      msg << "(#{command} '#{node_id}') #{error.message}"

      feed = []
      feed.concat(error.validationErrors.map(&:message)) unless error.validationErrors.empty?
      feed << "Command: #{command_input_data.pretty_inspect}"

      msg  << "  • #{feed.join("\n  • ")}"
      msg.join("\n")
    end

    def command_result
      result&.command
    end

    def command_id
      return unless result

      command_result["id"]
    end

    def as_json
      {
        "request"  => input,
        "response" => result.doc
      }
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
eco-helpers-3.0.21 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-3.0.20 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-3.0.19 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-3.0.18 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-3.0.17 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-3.0.16 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-3.0.15 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-3.0.14 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-3.0.13 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-3.0.12 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-3.0.11 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-3.0.10 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-3.0.9 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-3.0.8 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-3.0.7 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-3.0.6 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-3.0.5 lib/eco/api/usecases/graphql/helpers/location/command/result.rb