sample_core_api 0.0.5 → 0.0.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: 9871bcc82b21ca288bd84bb26e06242e75853db5ac3899f1ecb0af5ac909e377
4
- data.tar.gz: 138d04f4a7644070009b1ad34fb9b1123bfb9312402041f4e270c2a4c2935951
2
+ SHA1:
3
+ metadata.gz: 9ce57ddca1656c1c4b1cf29aff4790ac0874914f
4
+ data.tar.gz: a6094edffaa60dbaa866b2044173bbea3e5a0190
5
5
  SHA512:
6
- metadata.gz: 44bb035ec4860a4d43998d744a6f0eca23ae8d104c3421f17936b6188180398e49ae9471352abda75d20aedb12e103fa6bd5c30fc0a7bef59554fe407c513b47
7
- data.tar.gz: f65aaf76b3332c6b389dde316f648073818b2e918cd400ca60141efb4e44d02b844267167c03b55555bd6fa48e8d6f4919390a754b6fddee3941425b097afa83
6
+ metadata.gz: 55c16eca7f830487f48b5c0cbc2f73e8b49f5c4b54285144e0292b18b8c98d8ec0c179dd4edc93131f600eb2fd4dbce229ec7a054221539ab022d2e896f4d4cf
7
+ data.tar.gz: 3fce448044bc187baf19c9d909de0605f099fbe07bb727da775f7e8ca44de1cac83336c06f932db47ac7c4ebf6745ae352f89286cb886098fefa6c576d5ceb28
@@ -2,10 +2,23 @@ module ApplicationConfiguration
2
2
  def config
3
3
  {
4
4
  consul: {
5
-
5
+ consul_service_data: {
6
+ name: "Service-1",
7
+ id: "Service1",
8
+ port: 9292,
9
+ check: {
10
+ id: "bluesky-api",
11
+ name: "HTTP Health Check API on port 9292",
12
+ http: "http://localhost:9292/health-check-new",
13
+ tls_skip_verify: false,
14
+ method: "GET",
15
+ interval: "10s",
16
+ timeout: "1s"
17
+ }
18
+ }
6
19
  },
7
20
  rest: {
8
-
21
+ consul_check_http: "/health-check-new"
9
22
  },
10
23
  }
11
24
  end
@@ -1,4 +1,5 @@
1
1
  require 'cassandra'
2
+ require './lib/container'
2
3
  require_relative 'abstracted_cassandra_repository'
3
4
 
4
5
  class CassandraService
@@ -8,11 +9,11 @@ class CassandraService
8
9
 
9
10
  def initialize
10
11
  puts 'init cassandra'
11
- self.cassandra_cluster = Cassandra.cluster
12
+ self.cassandra_cluster = Cassandra.cluster
12
13
  end
13
14
 
14
- def start(keyspace_name)
15
- puts 'start cassandra, create cluster, session'
15
+ def start
16
+ puts 'start cassandra, create cluster'
16
17
  if !cassandra_cluster
17
18
  cassandra_cluster = Cassandra.cluster
18
19
  end
@@ -26,4 +27,6 @@ class CassandraService
26
27
  cassandra_cluster.close
27
28
  end
28
29
  end
29
- end
30
+ end
31
+
32
+ registerService CassandraService.new
@@ -1,4 +1,5 @@
1
1
  require 'diplomat'
2
+ require './lib/container'
2
3
  require_relative 'consul_configuration'
3
4
 
4
5
  class ConsulService
@@ -9,7 +10,6 @@ class ConsulService
9
10
  def initialize
10
11
  puts 'init consul'
11
12
  self.consul_service_data = ConsulService::configure
12
- Diplomat::Service.register(consul_service_data)
13
13
  end
14
14
 
15
15
  def start
@@ -17,10 +17,13 @@ class ConsulService
17
17
  if !consul_service_data
18
18
  consul_service_data = ConsulService::configure
19
19
  end
20
+ Diplomat::Service.register(consul_service_data)
20
21
  end
21
22
 
22
23
  def stop
23
24
  puts 'stop consul'
24
25
  Diplomat::Service.deregister(consul_service_data[:id])
25
26
  end
26
- end
27
+ end
28
+
29
+ registerService ConsulService.new
data/lib/container.rb ADDED
@@ -0,0 +1,11 @@
1
+ require "dry-container"
2
+ require "dry-auto_inject"
3
+
4
+ Container = Dry::Container.new
5
+ Inject = Dry::AutoInject(Container)
6
+
7
+ def registerService instance
8
+ class_name = instance.class.name
9
+ name = class_name.sub(class_name[0], class_name[0].downcase)
10
+ Container.register(name, instance)
11
+ end
@@ -4,6 +4,7 @@ module RestConfiguration
4
4
  CONFIG = {
5
5
  host: 'localhost:9292',
6
6
  path: '/api/v1',
7
+ consul_check_http: "/health-check"
7
8
  }.merge( RestConfiguration.config[:rest] )
8
9
 
9
10
  end
@@ -30,7 +30,7 @@ class RestService < RestApplication
30
30
  extend ::RestResponseModel
31
31
 
32
32
  # Health Check for Consul
33
- get '/health-check' do
33
+ get RestConfiguration::CONFIG[:consul_check_http] do
34
34
  'The service is healthy!'
35
35
  end
36
36
 
@@ -1,11 +1,32 @@
1
1
  require 'bundler/setup'
2
+ require 'sinatra/base'
2
3
  require_relative 'application_configuration'
3
- # require_relative 'application_service'
4
- Dir["#{File.dirname(__FILE__)}/**/*.rb"].each {|file| require file }
4
+ require_relative 'cassandra/cassandra_service'
5
+ require_relative 'consul/consul_service'
6
+ require_relative 'rest/rest_service'
7
+ require_relative 'container'
8
+ # Dir["#{File.dirname(__FILE__)}/**/*.rb"].each {|file| require file }
5
9
 
6
10
  class SampleCoreApi
7
- extend ::ApplicationService
8
11
  extend ::ApplicationConfiguration
9
- end
12
+ include Inject["consulService","cassandraService"]
13
+
14
+ def initialize(config)
15
+ @config = config
16
+ end
17
+
18
+ def run_rest_services
19
+ RestService.run!
20
+ end
10
21
 
11
- SampleCoreApi.load_services
22
+ def start
23
+ Container["consulService"].start
24
+ Container["cassandraService"].start
25
+ run_rest_services
26
+ end
27
+
28
+ def stop
29
+ consulService.stop
30
+ cassandraService.stop
31
+ end
32
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sample_core_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fusin Thang
@@ -10,6 +10,46 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2018-06-11 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: dry-container
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.6.0
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.6.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 0.6.0
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.6.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: dry-auto_inject
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 0.4.6
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.4.6
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: 0.4.6
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.4.6
13
53
  - !ruby/object:Gem::Dependency
14
54
  name: sinatra
15
55
  requirement: !ruby/object:Gem::Requirement
@@ -177,11 +217,11 @@ extensions: []
177
217
  extra_rdoc_files: []
178
218
  files:
179
219
  - lib/application_configuration.rb
180
- - lib/application_service.rb
181
220
  - lib/cassandra/abstracted_cassandra_repository.rb
182
221
  - lib/cassandra/cassandra_service.rb
183
222
  - lib/consul/consul_configuration.rb
184
223
  - lib/consul/consul_service.rb
224
+ - lib/container.rb
185
225
  - lib/rest/rest_common_error.rb
186
226
  - lib/rest/rest_configuration.rb
187
227
  - lib/rest/rest_error_handler.rb
@@ -208,7 +248,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
208
248
  version: '0'
209
249
  requirements: []
210
250
  rubyforge_project:
211
- rubygems_version: 2.7.7
251
+ rubygems_version: 2.6.13
212
252
  signing_key:
213
253
  specification_version: 4
214
254
  summary: Sample Core Api
@@ -1,15 +0,0 @@
1
- module ApplicationService
2
- IMPORT_SERVICES = ['cassandra_service', 'consul_service']
3
-
4
- def load_services
5
- $service_list = {}
6
- IMPORT_SERVICES.each do |service_name|
7
- if !service_name.include?('rest_service')
8
- puts "load_services #{service_name}"
9
- class_name = service_name.split('_').map{|e| e.capitalize}.join
10
- class_object = Object.const_get(class_name)
11
- $service_list["#{service_name}"] = class_object.new
12
- end
13
- end
14
- end
15
- end