Sha256: c51f46e033d77d426a3072cbc035356bef0884c3c740020d067580a06b0f5ce2

Contents?: true

Size: 1.18 KB

Versions: 13

Compression:

Stored size: 1.18 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}\n" || ''
      return msg if error.validationErrors.empty?
      msg << "  • " + error.validationErrors.map do |err|
        err.message
      end.join("\n  • ")
      msg
    end

    def command_result
      result&.command
    end

    def command_id
      return nil unless result
      command_result["id"]
    end

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

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
eco-helpers-2.6.4 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-2.6.3 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-2.6.2 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-2.6.1 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-2.6.0 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-2.5.10 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-2.5.9 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-2.5.8 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-2.5.7 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-2.5.6 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-2.5.5 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-2.5.4 lib/eco/api/usecases/graphql/helpers/location/command/result.rb
eco-helpers-2.5.3 lib/eco/api/usecases/graphql/helpers/location/command/result.rb