hecks-adapters-resource-server 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/hecks-adapters-resource-server.rb +53 -0
- data/lib/methods.rb +22 -0
- data/lib/methods/create.rb +49 -0
- data/lib/methods/delete.rb +45 -0
- data/lib/methods/read.rb +44 -0
- data/lib/methods/update.rb +50 -0
- metadata +49 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2f5842d1b07e0f94bd094964157cd209b82e89b3
|
4
|
+
data.tar.gz: 2473467ae31a8fdef75dd4176d4eef11ea17a18d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 456fb2eb90f538d140a182b3fd00dd5c96234b6d7531838cd04358b99d385542d54a3fba21261a8344e381f3cd076fc2be4518d1f895646b40a43b08417a76b6
|
7
|
+
data.tar.gz: 70cffbe83cab8088fbef840c3686848ca4075630762d83e845d5d5a77adb39a6b35c10cdb1fa800a11b31bf12ba2d42f7b71874d1bbc17bafff0dd4353b8d53f
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'sinatra'
|
3
|
+
require 'hecks-application'
|
4
|
+
require 'json'
|
5
|
+
require_relative 'methods'
|
6
|
+
|
7
|
+
module Hecks
|
8
|
+
module Adapters
|
9
|
+
class ResourceServer < Sinatra::Base
|
10
|
+
configure do
|
11
|
+
set :raise_errors, true
|
12
|
+
set :show_exceptions, false
|
13
|
+
end
|
14
|
+
|
15
|
+
def initialize(app: nil, application_adapter:)
|
16
|
+
super(app)
|
17
|
+
@methods = Methods.new(application_adapter: application_adapter)
|
18
|
+
end
|
19
|
+
|
20
|
+
get '/:module_name/:id' do |module_name, id|
|
21
|
+
command = methods.read.call(id: id, module_name: module_name)
|
22
|
+
body command.result
|
23
|
+
status command.status
|
24
|
+
end
|
25
|
+
|
26
|
+
post '/:module_name' do |module_name|
|
27
|
+
command = methods.create.call(body: request.body, module_name: module_name)
|
28
|
+
status command.status
|
29
|
+
body command.result
|
30
|
+
end
|
31
|
+
|
32
|
+
put '/:module_name/:id' do |module_name, id|
|
33
|
+
command = methods.update.call(
|
34
|
+
id: id,
|
35
|
+
body: request.body,
|
36
|
+
module_name: module_name
|
37
|
+
)
|
38
|
+
status command.status
|
39
|
+
body command.result
|
40
|
+
end
|
41
|
+
|
42
|
+
delete '/:module_name/:id' do |module_name, id|
|
43
|
+
command = methods.delete.call(id: id, module_name: module_name)
|
44
|
+
status command.status
|
45
|
+
body command.result
|
46
|
+
end
|
47
|
+
|
48
|
+
private
|
49
|
+
|
50
|
+
attr_reader :methods
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
data/lib/methods.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative 'methods/create'
|
3
|
+
require_relative 'methods/read'
|
4
|
+
require_relative 'methods/update'
|
5
|
+
require_relative 'methods/delete'
|
6
|
+
|
7
|
+
module Hecks
|
8
|
+
module Adapters
|
9
|
+
class ResourceServer
|
10
|
+
class Methods
|
11
|
+
attr_reader :create, :read, :update, :delete
|
12
|
+
|
13
|
+
def initialize(application_adapter:)
|
14
|
+
@create = Create.new(application_adapter: application_adapter)
|
15
|
+
@read = Read.new(application_adapter: application_adapter)
|
16
|
+
@update = Update.new(application_adapter: application_adapter)
|
17
|
+
@delete = Delete.new(application_adapter: application_adapter)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Hecks
|
3
|
+
module Adapters
|
4
|
+
class ResourceServer < Sinatra::Base
|
5
|
+
class Methods
|
6
|
+
class Create
|
7
|
+
attr_reader :result
|
8
|
+
|
9
|
+
def initialize(application_adapter:)
|
10
|
+
@application_adapter = application_adapter
|
11
|
+
end
|
12
|
+
|
13
|
+
def call(body:, module_name:)
|
14
|
+
@body = body.read
|
15
|
+
@module_name = module_name.to_sym
|
16
|
+
run_command
|
17
|
+
build_json
|
18
|
+
self
|
19
|
+
end
|
20
|
+
|
21
|
+
def status
|
22
|
+
return 500 if command_result.errors.count.positive?
|
23
|
+
200
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
attr_reader :application_adapter, :body, :module_name, :command_result
|
29
|
+
|
30
|
+
def build_json
|
31
|
+
@result = JSON.generate(command_result.to_h)
|
32
|
+
end
|
33
|
+
|
34
|
+
def run_command
|
35
|
+
@command_result = application_adapter.call(
|
36
|
+
module_name: module_name,
|
37
|
+
command_name: :create,
|
38
|
+
args: params
|
39
|
+
)
|
40
|
+
end
|
41
|
+
|
42
|
+
def params
|
43
|
+
JSON.parse(body, symbolize_names: true)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Hecks
|
3
|
+
module Adapters
|
4
|
+
class ResourceServer < Sinatra::Base
|
5
|
+
class Methods
|
6
|
+
class Delete
|
7
|
+
attr_reader :result
|
8
|
+
|
9
|
+
def initialize(application_adapter:)
|
10
|
+
@application_adapter = application_adapter
|
11
|
+
end
|
12
|
+
|
13
|
+
def call(id:, module_name:)
|
14
|
+
@id = id.to_i
|
15
|
+
@module_name = module_name.to_sym
|
16
|
+
run_command
|
17
|
+
convert_to_json
|
18
|
+
self
|
19
|
+
end
|
20
|
+
|
21
|
+
def status
|
22
|
+
return 500 if command_result.errors.count.positive?
|
23
|
+
200
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
attr_reader :application_adapter, :module_name, :id, :command_result
|
29
|
+
|
30
|
+
def convert_to_json
|
31
|
+
@result = JSON.generate(command_result.to_h)
|
32
|
+
end
|
33
|
+
|
34
|
+
def run_command
|
35
|
+
@command_result = application_adapter.call(
|
36
|
+
module_name: module_name,
|
37
|
+
command_name: :delete,
|
38
|
+
args: { id: id }
|
39
|
+
)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/lib/methods/read.rb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Hecks
|
3
|
+
module Adapters
|
4
|
+
class ResourceServer < Sinatra::Base
|
5
|
+
class Methods
|
6
|
+
class Read
|
7
|
+
attr_reader :result, :status
|
8
|
+
def initialize(application_adapter:)
|
9
|
+
@application_adapter = application_adapter
|
10
|
+
end
|
11
|
+
|
12
|
+
def call(id:, module_name:)
|
13
|
+
@id = id.to_i
|
14
|
+
@module_name = module_name.to_sym
|
15
|
+
run_query
|
16
|
+
convert_to_json
|
17
|
+
self
|
18
|
+
end
|
19
|
+
|
20
|
+
def status
|
21
|
+
return 404 if command_result.nil?
|
22
|
+
200
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
attr_reader :application_adapter, :id, :module_name, :command_result
|
28
|
+
|
29
|
+
def convert_to_json
|
30
|
+
@result = command_result.to_json
|
31
|
+
end
|
32
|
+
|
33
|
+
def run_query
|
34
|
+
@command_result = application_adapter.query(
|
35
|
+
query_name: :find_by_id,
|
36
|
+
module_name: module_name,
|
37
|
+
args: { id: id }
|
38
|
+
)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Hecks
|
3
|
+
module Adapters
|
4
|
+
class ResourceServer < Sinatra::Base
|
5
|
+
class Methods
|
6
|
+
class Update
|
7
|
+
attr_reader :result
|
8
|
+
|
9
|
+
def initialize(application_adapter:)
|
10
|
+
@application_adapter = application_adapter
|
11
|
+
end
|
12
|
+
|
13
|
+
def call(id:, body:, module_name:)
|
14
|
+
@id = id.to_i
|
15
|
+
@body = body.read
|
16
|
+
@module_name = module_name.to_sym
|
17
|
+
run_command
|
18
|
+
convert_to_json
|
19
|
+
self
|
20
|
+
end
|
21
|
+
|
22
|
+
def status
|
23
|
+
return 500 if command_result.errors.count.positive?
|
24
|
+
200
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
attr_accessor :application_adapter, :id, :body, :module_name, :command_result
|
30
|
+
|
31
|
+
def convert_to_json
|
32
|
+
@result = JSON.generate(command_result.to_h)
|
33
|
+
end
|
34
|
+
|
35
|
+
def run_command
|
36
|
+
@command_result = application_adapter.call(
|
37
|
+
module_name: module_name,
|
38
|
+
command_name: :update,
|
39
|
+
args: params
|
40
|
+
)
|
41
|
+
end
|
42
|
+
|
43
|
+
def params
|
44
|
+
JSON.parse(body, symbolize_names: true).merge(id: id)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
metadata
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: hecks-adapters-resource-server
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Chris Young
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-03-11 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Make the Domain the center of your programming world
|
14
|
+
email: chris@example.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/hecks-adapters-resource-server.rb
|
20
|
+
- lib/methods.rb
|
21
|
+
- lib/methods/create.rb
|
22
|
+
- lib/methods/delete.rb
|
23
|
+
- lib/methods/read.rb
|
24
|
+
- lib/methods/update.rb
|
25
|
+
homepage: https://github.com/chrisyoung/hecks-domain
|
26
|
+
licenses:
|
27
|
+
- MIT
|
28
|
+
metadata: {}
|
29
|
+
post_install_message:
|
30
|
+
rdoc_options: []
|
31
|
+
require_paths:
|
32
|
+
- lib
|
33
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
34
|
+
requirements:
|
35
|
+
- - ">="
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0'
|
43
|
+
requirements: []
|
44
|
+
rubyforge_project:
|
45
|
+
rubygems_version: 2.6.10
|
46
|
+
signing_key:
|
47
|
+
specification_version: 4
|
48
|
+
summary: DDD and Hexagonal Code Generators
|
49
|
+
test_files: []
|