upfluence-utils 0.8.4 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d310a8621edea92a80becf4c98aff88eb475b0400433c0106f22e955ee2ff450
4
- data.tar.gz: a54d85a72eff261b5d5365de804272fcd2a79a36e910bdb63256f0c882312f86
3
+ metadata.gz: c3bc57cd1a39618d9375c1e012443d9f5b700ab0f5ae821ccd634bc4d09a8c3f
4
+ data.tar.gz: ef52fa325dd39b37d053349e0adabea839cff25ad4cf1a3f24e56f8af79e3ca7
5
5
  SHA512:
6
- metadata.gz: 0be0be14842252b5653b6e9f4026d60999a3814a940f80b09c2b4fe264fc484422252ce94a132409d40bd6c0df83c670536b3cf3bf5ad8759f8a4391be8a68f9
7
- data.tar.gz: '087d9a21f297581df4b94134aa6bb964a5827bbd3abe71d95af2ce34f67aeee29d75366e768e5d667222aca2badb01f20f9d11a7a14b33fe9a4ef3e672ee1a9c'
6
+ metadata.gz: 3148ad418210609e1fadd1303f0a37b6e27865e67b85102d4828891359fcaeb23b2481d0ad1cc6aa4c0a7967ead1c6aec77b56a6f42dc1b66bc5466a0a0bbc9d
7
+ data.tar.gz: 3da77ccc075193d01908f5070026ab5b6408b06267bb72c3554704d1f5559316d6b2316f432e6e54de928a155d66227ccca4aaf8b28ddd75ca49e7998b5c3342
@@ -1,12 +1,15 @@
1
1
  require 'sinatra'
2
2
  require 'active_record'
3
3
  require 'active_support/hash_with_indifferent_access'
4
+ require 'upfluence/http/endpoint/validation_error'
4
5
 
5
6
  module Upfluence
6
7
  module HTTP
7
8
  module Endpoint
8
9
  class BadRequest < StandardError; end
9
10
  class APIEndpoint < Sinatra::Base
11
+ VALIDATION_ERROR_KLASS = ValidationError
12
+
10
13
  disable :show_exceptions
11
14
  disable :logging
12
15
  disable :dump_errors
@@ -44,7 +47,7 @@ module Upfluence
44
47
  def respond_with(resource, *args)
45
48
  if resource.respond_to?(:errors) && resource.errors.any?
46
49
  status = 422
47
- result = Base::Exceptions::ValidationError.from_model(
50
+ result = VALIDATION_ERROR_KLASS.from_model(
48
51
  resource
49
52
  ).to_json
50
53
  else
@@ -14,7 +14,6 @@ require 'upfluence/http/middleware/application_headers'
14
14
  require 'upfluence/http/middleware/handle_exception'
15
15
  require 'upfluence/http/middleware/prometheus'
16
16
  require 'upfluence/http/middleware/cors'
17
- require 'upfluence/handler/base'
18
17
 
19
18
  module Upfluence
20
19
  module HTTP
@@ -29,13 +28,14 @@ module Upfluence
29
28
  push_gateway_interval: 15, # sec
30
29
  app_name: ENV['APP_NAME'] || 'uhttp-rb-server',
31
30
  unit_name: ENV['UNIT_NAME'] || 'uhttp-rb-server-anonymous',
31
+ base_processor_klass: nil,
32
+ base_handler_klass: nil,
32
33
  debug: ENV['DEBUG']
33
- }.freeze
34
+ }
34
35
 
35
36
  def initialize(options = {}, &block)
36
37
  @options = DEFAULT_OPTIONS.dup.merge(options)
37
38
  opts = @options
38
- base_handler = Handler::Base.new(opts[:interfaces])
39
39
 
40
40
  @builder = Builder.new do
41
41
  use Middleware::Logger
@@ -54,13 +54,16 @@ module Upfluence
54
54
  run(opts[:healthcheck_endpoint] || Endpoint::Healthcheck.new)
55
55
  end
56
56
 
57
- map '/base' do
58
- run_thrift Base::Base_service::BaseService::Processor, base_handler
57
+ if opts[:base_processor_klass] && opts[:base_handler_klass]
58
+ map '/base' do
59
+ run_thrift(
60
+ opts[:base_processor_klass],
61
+ opts[:base_handler_klass].new(@options[:interfaces])
62
+ )
63
+ end
59
64
  end
60
65
 
61
- map '/debug' do
62
- run Endpoint::Profiler.new
63
- end if opts[:debug]
66
+ map('/debug') { run(Endpoint::Profiler.new) } if opts[:debug]
64
67
 
65
68
  instance_eval(&block)
66
69
  end
@@ -1,5 +1,5 @@
1
1
  module Upfluence
2
2
  module Utils
3
- VERSION = '0.8.4'.freeze
3
+ VERSION = '0.9.0'.freeze
4
4
  end
5
5
  end
@@ -19,8 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.add_development_dependency "bundler", "~> 1.12"
20
20
  spec.add_development_dependency "rake", ">= 12.3.3"
21
21
  spec.add_development_dependency "rspec", "~> 3.0"
22
- spec.add_runtime_dependency 'upfluence-thrift', '~> 2.1'
23
- spec.add_runtime_dependency 'base-thrift', '>= 0.1.0'
22
+ spec.add_runtime_dependency 'upfluence-thrift'
24
23
  spec.add_runtime_dependency 'sinatra'
25
24
  spec.add_runtime_dependency 'redis'
26
25
  spec.add_runtime_dependency 'sentry-raven'
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.8.4
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Upfluence
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-11 00:00:00.000000000 Z
11
+ date: 2021-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -54,32 +54,18 @@ dependencies:
54
54
  version: '3.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: upfluence-thrift
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '2.1'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '2.1'
69
- - !ruby/object:Gem::Dependency
70
- name: base-thrift
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - ">="
74
60
  - !ruby/object:Gem::Version
75
- version: 0.1.0
61
+ version: '0'
76
62
  type: :runtime
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
66
  - - ">="
81
67
  - !ruby/object:Gem::Version
82
- version: 0.1.0
68
+ version: '0'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: sinatra
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -251,13 +237,11 @@ files:
251
237
  - Rakefile
252
238
  - lib/upfluence.rb
253
239
  - lib/upfluence/amqp/server.rb
254
- - lib/upfluence/base/exceptions/validation_error.rb
255
240
  - lib/upfluence/endpoint/api_endpoint.rb
256
241
  - lib/upfluence/environment.rb
257
242
  - lib/upfluence/error_logger.rb
258
243
  - lib/upfluence/error_logger/null.rb
259
244
  - lib/upfluence/error_logger/sentry.rb
260
- - lib/upfluence/handler/base.rb
261
245
  - lib/upfluence/http/builder.rb
262
246
  - lib/upfluence/http/endpoint/api_endpoint.rb
263
247
  - lib/upfluence/http/endpoint/healthcheck.rb
@@ -306,7 +290,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
306
290
  - !ruby/object:Gem::Version
307
291
  version: '0'
308
292
  requirements: []
309
- rubygems_version: 3.1.4
293
+ rubygems_version: 3.0.3
310
294
  signing_key:
311
295
  specification_version: 4
312
296
  summary: Upfluence common utils for Ruby projects
@@ -1,35 +0,0 @@
1
- require 'thrift/exceptions'
2
- require 'base/exceptions/exceptions_types'
3
-
4
- module Base
5
- module Exceptions
6
- class ValidationError < ::Thrift::Exception
7
- class << self
8
- attr_accessor :domain
9
-
10
- def from_model(model)
11
- validation_errors = model.errors.details.map do |error_field, errors|
12
- errors.map do |error|
13
- Base::Exceptions::Validation.new(
14
- domain: domain,
15
- model: model.model_name.singular,
16
- field: error_field.to_s,
17
- error: error[:error].to_s
18
- )
19
- end
20
- end.flatten
21
-
22
- new(validations: validation_errors)
23
- end
24
- end
25
-
26
- def to_json
27
- {
28
- errors: validations.map do |v|
29
- { resource: v.model, field: v.field, code: v.error }
30
- end
31
- }.to_json
32
- end
33
- end
34
- end
35
- end
@@ -1,56 +0,0 @@
1
- require 'base/base_service/base_service'
2
- require 'base/version/version_types'
3
- require 'base/version'
4
-
5
- module Upfluence
6
- module Handler
7
- class Base
8
- def initialize(modules = [])
9
- @alive_since = Time.now.to_i
10
- @modules = modules.reduce({ 'base' => ::Base::VERSION }) do |acc, cur|
11
- acc.merge cur.name.downcase => cur::VERSION
12
- end
13
- end
14
-
15
- def getVersion
16
- semantic_version = if ENV['SEMVER_VERSION']
17
- major, minor, patch = ENV['SEMVER_VERSION'].split('.')
18
- ::Base::Version::SemanticVersion.new(
19
- major: major[1..-1].to_i,
20
- minor: minor.to_i,
21
- patch: patch.to_i
22
- )
23
- end
24
-
25
- git_version = if ENV['GIT_COMMIT']
26
- ::Base::Version::GitVersion.new(
27
- commit: ENV['GIT_COMMIT'],
28
- branch: ENV['GIT_BRANCH'],
29
- remote: ENV['GIT_REMOTE']
30
- )
31
- end
32
-
33
- ::Base::Version::Version.new(
34
- semantic_version: semantic_version,
35
- git_version: git_version
36
- )
37
- end
38
-
39
- def getName
40
- ENV['UNIT_NAME'] || 'default'
41
- end
42
-
43
- def getStatus
44
- ::Base::Base_service::Status::ALIVE
45
- end
46
-
47
- def aliveSince
48
- @alive_since
49
- end
50
-
51
- def getInterfaceVersions
52
- @modules
53
- end
54
- end
55
- end
56
- end