upfluence-utils 0.9.0 → 0.9.5
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 +4 -4
- data/lib/test.rb +4 -0
- data/lib/upfluence.rb +0 -1
- data/lib/upfluence/http/endpoint/api_endpoint.rb +11 -0
- data/lib/upfluence/http/endpoint/validation_error.rb +31 -0
- data/lib/upfluence/http/middleware/application_headers.rb +12 -10
- data/lib/upfluence/http/server.rb +7 -5
- data/lib/upfluence/resources/countries.rb +9 -17
- data/lib/upfluence/utils/version.rb +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a772a1a30ba2d049bcc080e162bd3c7c7a0168210d93e84dfb187c346bc7f559
|
4
|
+
data.tar.gz: e2677f4fcf561c494915dee9204150ec93e92600e7a5413bc7af7bed6143ed15
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ee9fbf46fa1421d1f3e66a29e701eda7cbdd361dc8b8d2a5e4ec1baa1a412a91502a99c8cd3389eaaffcc2a9d0d600d2fac1814232df659b84e5092176eb61a
|
7
|
+
data.tar.gz: 2d5551334b452dfd16d40340665d42e4efb7f4694ccb302b497dbe48f7113d206db8da2a704188a8670ee4209d95430ed5e59bcb69d56116601c3fc82a51a29a
|
data/lib/test.rb
ADDED
data/lib/upfluence.rb
CHANGED
@@ -2,6 +2,7 @@ require 'sinatra'
|
|
2
2
|
require 'active_record'
|
3
3
|
require 'active_support/hash_with_indifferent_access'
|
4
4
|
require 'upfluence/http/endpoint/validation_error'
|
5
|
+
require 'upfluence/mixin/strong_parameters'
|
5
6
|
|
6
7
|
module Upfluence
|
7
8
|
module HTTP
|
@@ -99,6 +100,16 @@ module Upfluence
|
|
99
100
|
Sinatra::Base.error ActiveRecord::RecordInvalid do |e|
|
100
101
|
[422, Base::Exceptions::ValidationError.from_model(e.record).to_json]
|
101
102
|
end
|
103
|
+
|
104
|
+
Sinatra::Base.error Upfluence::Mixin::StrongParameters::ParameterMissing do |e|
|
105
|
+
[
|
106
|
+
400,
|
107
|
+
{
|
108
|
+
error: 'missing_parameter',
|
109
|
+
param: e.param
|
110
|
+
}.to_json
|
111
|
+
]
|
112
|
+
end
|
102
113
|
end
|
103
114
|
end
|
104
115
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Upfluence
|
2
|
+
module HTTP
|
3
|
+
module Endpoint
|
4
|
+
class ValidationError
|
5
|
+
def initialize(validations)
|
6
|
+
@validations = validations
|
7
|
+
end
|
8
|
+
|
9
|
+
class << self
|
10
|
+
def from_model(model)
|
11
|
+
validations = model.errors.details.map do |error_field, errors|
|
12
|
+
errors.map do |error|
|
13
|
+
OpenStruct.new(
|
14
|
+
ressource: model.model_name.singular,
|
15
|
+
field: error_field.to_s,
|
16
|
+
code: error[:error].to_s
|
17
|
+
)
|
18
|
+
end
|
19
|
+
end.flatten
|
20
|
+
|
21
|
+
new(validations)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def to_json
|
26
|
+
{ errors: @validations }.to_json
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -4,10 +4,7 @@ module Upfluence
|
|
4
4
|
class ApplicationHeaders
|
5
5
|
def initialize(app, handler)
|
6
6
|
@app = app
|
7
|
-
@headers = {
|
8
|
-
"X-Upfluence-Unit-Name" => handler.getName,
|
9
|
-
"X-Upfluence-Version" => build_version(handler.getVersion)
|
10
|
-
}
|
7
|
+
@headers = handler ? build_headers(handler) : {}
|
11
8
|
end
|
12
9
|
|
13
10
|
def call(env)
|
@@ -17,14 +14,19 @@ module Upfluence
|
|
17
14
|
|
18
15
|
private
|
19
16
|
|
17
|
+
def build_headers(handler)
|
18
|
+
{
|
19
|
+
'X-Upfluence-Unit-Name' => handler.getName,
|
20
|
+
'X-Upfluence-Version' => build_version(handler.getVersion)
|
21
|
+
}
|
22
|
+
end
|
23
|
+
|
20
24
|
def build_version(thrift_version)
|
21
|
-
|
22
|
-
|
23
|
-
end
|
25
|
+
v = thrift_version.semantic_version
|
26
|
+
return "v#{v.major}.#{v.minor}.#{v.patch}" if v
|
24
27
|
|
25
|
-
|
26
|
-
|
27
|
-
end
|
28
|
+
v = thrift_version.git_version
|
29
|
+
return "v0.0.0-#{v.commit}" if v
|
28
30
|
|
29
31
|
'undefined'
|
30
32
|
end
|
@@ -36,6 +36,11 @@ module Upfluence
|
|
36
36
|
def initialize(options = {}, &block)
|
37
37
|
@options = DEFAULT_OPTIONS.dup.merge(options)
|
38
38
|
opts = @options
|
39
|
+
base_handler = nil
|
40
|
+
|
41
|
+
if opts[:base_handler_klass]
|
42
|
+
base_handler = opts[:base_handler_klass].new(@options[:interfaces])
|
43
|
+
end
|
39
44
|
|
40
45
|
@builder = Builder.new do
|
41
46
|
use Middleware::Logger
|
@@ -54,12 +59,9 @@ module Upfluence
|
|
54
59
|
run(opts[:healthcheck_endpoint] || Endpoint::Healthcheck.new)
|
55
60
|
end
|
56
61
|
|
57
|
-
if opts[:base_processor_klass] &&
|
62
|
+
if opts[:base_processor_klass] && base_handler
|
58
63
|
map '/base' do
|
59
|
-
run_thrift(
|
60
|
-
opts[:base_processor_klass],
|
61
|
-
opts[:base_handler_klass].new(@options[:interfaces])
|
62
|
-
)
|
64
|
+
run_thrift(opts[:base_processor_klass], base_handler)
|
63
65
|
end
|
64
66
|
end
|
65
67
|
|
@@ -1,23 +1,15 @@
|
|
1
1
|
module Upfluence
|
2
2
|
module Resources
|
3
3
|
COUNTRIES = %w[
|
4
|
-
US FR GB DE CH AF AL DZ AS AD AO AI
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
MX FM MD MC MN ME MS MA MZ MM NA NR
|
14
|
-
NP NL NC NZ NI NE NG NO OM PK PW PS
|
15
|
-
PA PG PY PE PH PL PT PR QA RE RO RU
|
16
|
-
RW KN LC VC WS SM ST SA SN RS SC SL
|
17
|
-
SG SK SI SB SO ZA ES LK SD SR SZ SE
|
18
|
-
SY TW TJ TZ TH TL TG TO TT TN TR TM
|
19
|
-
TC TV UG UA AE GB UY UZ VU VE VN VG
|
20
|
-
VI EH YE ZM ZW CR
|
4
|
+
US FR GB DE CH AF AL DZ AS AD AO AI AG AR AM AW AU AT AZ BS BH BD BB BY BE
|
5
|
+
BZ BJ BM BT BO BA BW BR BN BG BF BI CV KH CM CA KY CF TD CL CN CO KM CG CD
|
6
|
+
CK CI HR CU CY CZ DK DJ DM DO EC EG SV GQ ER EE ET FO FJ FI PF GA GM GE GH
|
7
|
+
GI GR GL GD GP GU GT GG GN GW GY HT VA HN HK HU IS IN ID IR IQ IE IM IL IT
|
8
|
+
JM JP JE JO KZ KE KI KP KR KW KG LA LV LB LI LS LR LY LT LU MO MK MG MW MY
|
9
|
+
MV ML MT MH MQ MR MU MX FM MD MC MN ME MS MA MZ MM NA NR NP NL NC NZ NI NE
|
10
|
+
NG NO OM PK PW PS PA PG PY PE PH PL PT PR QA RE RO RU RW KN LC VC WS SM ST
|
11
|
+
SA SN RS SC SL SG SK SI SB SO ZA ES LK SD SR SZ SE SY TW TJ TZ TH TL TG TO
|
12
|
+
TT TN TR TM TC TV UG UA AE GB UY UZ VU VE VN VG VI EH YE ZM ZW CR
|
21
13
|
].freeze
|
22
14
|
end
|
23
15
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: upfluence-utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Upfluence
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-01
|
11
|
+
date: 2021-04-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -235,6 +235,7 @@ files:
|
|
235
235
|
- LICENSE.txt
|
236
236
|
- README.md
|
237
237
|
- Rakefile
|
238
|
+
- lib/test.rb
|
238
239
|
- lib/upfluence.rb
|
239
240
|
- lib/upfluence/amqp/server.rb
|
240
241
|
- lib/upfluence/endpoint/api_endpoint.rb
|
@@ -246,6 +247,7 @@ files:
|
|
246
247
|
- lib/upfluence/http/endpoint/api_endpoint.rb
|
247
248
|
- lib/upfluence/http/endpoint/healthcheck.rb
|
248
249
|
- lib/upfluence/http/endpoint/profiler.rb
|
250
|
+
- lib/upfluence/http/endpoint/validation_error.rb
|
249
251
|
- lib/upfluence/http/middleware/application_headers.rb
|
250
252
|
- lib/upfluence/http/middleware/cors.rb
|
251
253
|
- lib/upfluence/http/middleware/handle_exception.rb
|
@@ -290,7 +292,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
290
292
|
- !ruby/object:Gem::Version
|
291
293
|
version: '0'
|
292
294
|
requirements: []
|
293
|
-
rubygems_version: 3.
|
295
|
+
rubygems_version: 3.1.4
|
294
296
|
signing_key:
|
295
297
|
specification_version: 4
|
296
298
|
summary: Upfluence common utils for Ruby projects
|