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/ip_address.rb,
lib/salestation/web/error_mapper.rb,
lib/salestation/web/request_logger.rb,
lib/salestation/web/input_validator.rb,
lib/salestation/web/statsd_middleware.rb,
lib/salestation/web/input_validators/accept_header.rb,
lib/salestation/web/active_record_connection_management.rb,
lib/salestation/web/input_validators/content_type_header.rb

Defined Under Namespace

Modules: Extractors, IPAddress, InputValidators, Responses, Types Classes: ActiveRecordConnectionManagement, ErrorMapper, InputValidator, RequestLogger, StatsdMiddleware

Instance Method Summary collapse

Constructor Details

#initialize(errors: {}) ⇒ Web

Returns a new instance of Web.



14
15
16
# File 'lib/salestation/web.rb', line 14

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

Instance Method Details

#included(base) ⇒ Object



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

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