culpa 0.7.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/lib/culpa.rb +17 -9
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MTYyMDA4YTVhMWM0MzE1YzJhYzI2OTI0Y2ZmMjkzYmU5YmYzNzk3NA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YjhmYTIxZTQzNTUzYzNmZjBiYTE2NjExZDEwMjk1NjkwOTUwYWM1OA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ODViMGZhZjAwMDJjOTU2ZGJkMDE5ZGUyMmUyMWIzZmI5YWEwNjFkODQzZjY3
|
10
|
+
YTBjNGZlMTQ2ODQ3M2UzY2U4ZjY0MjViMTU0Y2IzYzUzNGJmNzI0ZGE4ODA1
|
11
|
+
N2YzZmI5ZDJlOTE1YTY1ZGZiOGFhZTM5Mzg2NzA0ZWNkZGQ3MmI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
OTRhNjQ3ZjliZjRhNjYxNjMwNTliYmViZmZhZjRmYjkxODA0YmQ5NGM4Zjdl
|
14
|
+
NjgxZWI1ZjU5N2U3YmExNjE4M2ZlNGQ5MzFiYjQ3YjM3ZGM2NTMwOGFjZGJh
|
15
|
+
YzE3ZGYzMTI0NmQxZjJmYTU4MTRkYzI3OTA5YWFhZmM0NjQ3YzE=
|
data/lib/culpa.rb
CHANGED
@@ -7,7 +7,7 @@ require 'envelope'
|
|
7
7
|
require 'path_parser'
|
8
8
|
require 'file_helpers'
|
9
9
|
|
10
|
-
CULPA_VERSION='0.7.
|
10
|
+
CULPA_VERSION='0.7.1'
|
11
11
|
|
12
12
|
ACTIONS_PATH ||= './actions/*.rb'
|
13
13
|
MODELS_PATH ||= './models/*.rb'
|
@@ -40,15 +40,14 @@ module Culpa
|
|
40
40
|
|
41
41
|
def initialize(options = {})
|
42
42
|
@router = YAML.load_file(options[:router] || './config/router.yml')
|
43
|
-
@logger = Logger.new(STDOUT)
|
43
|
+
@logger = Logger.new(options[:log_output] || STDOUT)
|
44
44
|
@logger.level = ENV['RACK_ENV'] == 'development' ? Logger::DEBUG : Logger::WARN
|
45
|
-
@logger.info 'Culpa initialized'
|
45
|
+
@logger.info 'Culpa fully initialized'
|
46
46
|
end
|
47
47
|
|
48
48
|
##
|
49
49
|
# Rack entrypoint
|
50
50
|
def call(env)
|
51
|
-
@logger.debug "Request received : #{env['PATH_INFO']}"
|
52
51
|
call_options = {
|
53
52
|
verb: env['REQUEST_METHOD'].downcase.to_sym,
|
54
53
|
params: Rack::Utils.parse_nested_query(env['QUERY_STRING'])
|
@@ -56,9 +55,7 @@ module Culpa
|
|
56
55
|
# Parse body if in JSON
|
57
56
|
if env['CONTENT_TYPE'] == 'application/json'
|
58
57
|
body = JSON.parse(env['rack.input'].read)
|
59
|
-
if body.has_key? 'sub_call'
|
60
|
-
call_options[:sub_call] = body['sub_call']
|
61
|
-
end
|
58
|
+
call_options[:sub_call] = body['sub_call'] if body.has_key? 'sub_call'
|
62
59
|
call_options[:input] = body['data']
|
63
60
|
else
|
64
61
|
call_options[:input] = env['rack.input']
|
@@ -92,12 +89,17 @@ module Culpa
|
|
92
89
|
call_options[:id] = route_params[:id]
|
93
90
|
call_options[:sub_call] = route_params[:sub_call]
|
94
91
|
else
|
95
|
-
@logger.
|
92
|
+
@logger.info "Refused request, #{env['PATH_INFO']} didn't match enforced routes"
|
96
93
|
return bad_request
|
97
94
|
end
|
98
95
|
# Call the brickchain and return the value to Rack
|
99
|
-
@logger.
|
96
|
+
@logger.info "Calling brickchain => subcall: #{call_options[:sub_call]}, action: #{call_options[:res_name]}, id: #{call_options[:id]}"
|
100
97
|
call_brickchain call_options
|
98
|
+
rescue UnpredictableSubCallError, JSON::ParserError
|
99
|
+
bad_request
|
100
|
+
rescue StandardError => error
|
101
|
+
@logger.error "Error ecountered while treating request : #{error.message}, aborting...\n#{error.backtrace.join("\n")}"
|
102
|
+
internal_server_error
|
101
103
|
end
|
102
104
|
|
103
105
|
def call_brickchain(options)
|
@@ -163,6 +165,12 @@ module Culpa
|
|
163
165
|
['404', {'Content-Type' => 'application/json'}, []]
|
164
166
|
end
|
165
167
|
|
168
|
+
##
|
169
|
+
# Rack pre-formatted 404 : Not found
|
170
|
+
def internal_server_error
|
171
|
+
['500', {'Content-Type' => 'application/json'}, []]
|
172
|
+
end
|
173
|
+
|
166
174
|
end
|
167
175
|
|
168
176
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: culpa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jérémy SEBAN
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|