Sha256: 1117d41bbedf35591e7e9314fc3b61303ac85c73882b5274f6b90344255b1a31

Contents?: true

Size: 891 Bytes

Versions: 6

Compression:

Stored size: 891 Bytes

Contents

# frozen_string_literal: true

require 'active_support/hash_with_indifferent_access'

module Evostream
  # Create a response
  class Responses
    attr_reader :status, :message, :data

    def initialize(evostream_response)
      @evostream = JSON.parse(evostream_response.body)

      @status = define_status
      @message = define_message
      @data = @evostream['data'] if @status.eql?(200)
    end

    def message
      {
        status: @status,
        message: @message,
        data: @data
      }.deep_symbolize_keys!
    end

    private

    attr_accessor :evostream

    def define_status
      case @evostream['status']
      when 'FAIL' then 500
      when 'SUCCESS' then 200
      end
    end

    def define_message
      if @status.eql?(500)
        'Error with EvoStream server.'
      else
        'Object was successfully created/updated.'
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
evostream-event-1.0.1 lib/evostream/event/response/response.rb
evostream-event-1.0.1.pre.72 lib/evostream/event/response/response.rb
evostream-event-1.0.0 lib/evostream/event/response/response.rb
evostream-event-1.0.0.pre.69 lib/evostream/event/response/response.rb
evostream-event-1.0.0.pre.65 lib/evostream/event/response/response.rb
evostream-event-1.0.0.pre.59 lib/evostream/event/response/response.rb