Class: Salestation::Web

Inherits:
Module
  • Object
show all
Defined in:
lib/salestation/web.rb,
lib/salestation/web/responses.rb,
lib/salestation/web/extractors.rb,
lib/salestation/web/error_mapper.rb,
lib/salestation/web/request_logger.rb,
lib/salestation/web/statsd_middleware.rb,
lib/salestation/web/active_record_connection_management.rb

Defined Under Namespace

Modules: Extractors, Responses, Types Classes: ActiveRecordConnectionManagement, ErrorMapper, RequestLogger, StatsdMiddleware

Instance Method Summary collapse

Constructor Details

#initialize(errors: {}) ⇒ Web

Returns a new instance of Web.



12
13
14
# File 'lib/salestation/web.rb', line 12

def initialize(errors: {})
  @error_mapper = ErrorMapper.new(errors)
end

Instance Method Details

#included(base) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/salestation/web.rb', line 16

def included(base)
  error_mapper = @error_mapper

  base.class_eval do
    const_set :Responses, Salestation::Web::Responses

    define_method(:process) do |response|
      result =
        if response.value.is_a?(Salestation::Web::Responses::Response)
          response.value
        else
          response.map_err(error_mapper.map).value
        end

      status result.status
      headers result.headers
      json result.body
    end
  end
end