Class: Netfira::WebConnect::RackApp

Inherits:
Object
  • Object
show all
Includes:
Exceptions::HttpExceptions
Defined in:
lib/netfira/web_connect/rack_app.rb,
lib/netfira/web_connect/rack_app.rb,
lib/netfira/web_connect/rack_app/actions/version_8/web.rb,
lib/netfira/web_connect/rack_app/actions/version_1/info.rb,
lib/netfira/web_connect/rack_app/actions/version_8/fetch.rb,
lib/netfira/web_connect/rack_app/actions/version_8/files.rb,
lib/netfira/web_connect/rack_app/actions/version_8/commit.rb,
lib/netfira/web_connect/rack_app/actions/version_8/confirm.rb,
lib/netfira/web_connect/rack_app/actions/version_8/records.rb,
lib/netfira/web_connect/rack_app/actions/version_8/settings.rb,
lib/netfira/web_connect/rack_app/actions/version_8/checksums.rb,
lib/netfira/web_connect/rack_app/actions/version_1/not_supported.rb,
lib/netfira/web_connect/rack_app/actions/version_8/commit/relations.rb,
lib/netfira/web_connect/rack_app/actions/version_1/deprecated_downstream.rb,
lib/netfira/web_connect/rack_app/actions/version_8/deprecated_downstream.rb

Defined Under Namespace

Modules: Exceptions Classes: Action

Instance Method Summary collapse

Instance Method Details

#call(env) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/netfira/web_connect/rack_app.rb', line 7

def call(env)
  begin
    body, headers = handle_request(env)
    if headers['Content-Type']
      [200, headers, [body]]
    else
      make_response 200, body, headers
    end
  rescue Exceptions::SendFile => e
    [
        200,
        {
            'Content-Type' => MIME::Types.type_for(e.path.to_s.sub(/\.erb$/, '')).first.content_type,
            'Content-Length' => e.content.length.to_s
        },
        [e.content]
    ]
  rescue Exceptions::HttpException => e
    make_response e.code, e.body, e.headers, e.code
  rescue => e
    # TODO: provide a way to silence these (i.e. for prod environments)
    # TODO: log errors
    if Exceptions::UserException === e
      e = e.original_exception
    else
      raise e if defined? DONT_CATCH_ALL_EXCEPTIONS
    end
    body = {
        errorCode: 1,
        errorMessage: 'Uncaught Exception',
        exception: {
            class: e.class.name,
            message: e.message,
            backtrace: e.backtrace
        }
    }
    make_response 500, body
  end
end

#latest_api_versionObject



47
48
49
# File 'lib/netfira/web_connect/rack_app.rb', line 47

def latest_api_version
  Action.latest_version
end