restpack_service 0.0.54 → 0.0.55

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
2
  SHA1:
3
- metadata.gz: 2c374f155811025692cb5113732648a24655b66a
4
- data.tar.gz: e7dcc2d57583bf6e84bd0ffd133190840afbe739
3
+ metadata.gz: 376f0ec5d1ef262ab1732924724b8dd99a604f77
4
+ data.tar.gz: 06bdc5e225bfd9c0ff742f95a234d93bf12ae547
5
5
  SHA512:
6
- metadata.gz: 1cb4215408dd15804f8ee1e3ca807d12a59747f2dbf11acb4bbf3e1b61c7f16c3122724ccddb5940ac9fd5e6c00baabd80262f25e2ec86e66d11440da087977f
7
- data.tar.gz: 6bf3ea25c7332b2dd31207386e0caf2fe8e710ec03be79cc6fa7a2c93ffee3ac7a83cf175a6304801796a5dcf4101fcf7ee55c4508d468a15321029222164040
6
+ metadata.gz: e94b4e61cab517523d810b1c46dff993e139305bdae499d7896a7cfb778d0a596138f776e808d1a4716bc0ac0571b7b91799b132c936084715cb2f878dcd5eab
7
+ data.tar.gz: bb7fd14afbbac9fda1954c2d96e3abd53d878d5d90b75365a6fcc90563599868fd37ebade293e9119b062e65244f668d7f31be5f3768d51165e2835f7e49a59a
@@ -8,4 +8,9 @@ require "restpack_service/version"
8
8
  require "restpack_service/configuration"
9
9
  require "restpack_service/response"
10
10
  require "restpack_service/command"
11
+
12
+ require "restpack_service/commands/get"
13
+ require "restpack_service/commands/create"
14
+ require "restpack_service/commands/list"
15
+
11
16
  require "restpack_service/loader"
@@ -53,5 +53,60 @@ module RestPack::Service
53
53
  def field_error(key, message)
54
54
  add_error key, key, message
55
55
  end
56
+
57
+ def serialize(models)
58
+ serializer_klass.serialize(models)
59
+ end
60
+
61
+ def get
62
+ identifier = service_identifiers[:resources]
63
+ result = serializer_klass.resource(inputs)
64
+
65
+ if result[identifier].empty?
66
+ status :not_found
67
+ else
68
+ result
69
+ end
70
+ end
71
+
72
+ def list
73
+ serializer_klass.resource(inputs)
74
+ end
75
+
76
+ def create!
77
+ identifier = service_identifiers[:resources]
78
+ models = create_models!(inputs[identifier])
79
+ serialize(models)
80
+ end
81
+
82
+ private
83
+
84
+ def create_models!(array)
85
+ model_klass.create!(array)
86
+ end
87
+
88
+ def serializer_klass
89
+ "Serializers::#{service_namespace}".constantize
90
+ end
91
+
92
+ def model_klass
93
+ "Models::#{service_namespace}".constantize
94
+ end
95
+
96
+ def service_namespace
97
+ identifiers = service_identifiers
98
+ namespace = "#{identifiers[:service].capitalize}::#{identifiers[:resource].capitalize}"
99
+ end
100
+
101
+ def service_identifiers
102
+ #extract identifiers from ancestor in the form of 'Commands::Core::Application::Get'
103
+ namespaces = self.class.ancestors.first.to_s.split('::')
104
+ resource = namespaces[2].downcase
105
+ return {
106
+ service: namespaces[1].downcase.to_sym,
107
+ resource: resource.to_sym,
108
+ resources: resource.pluralize.to_sym
109
+ }
110
+ end
56
111
  end
57
112
  end
@@ -0,0 +1,9 @@
1
+ module RestPack::Service
2
+ module Commands
3
+ class Create < RestPack::Service::Command
4
+ def execute
5
+ create!
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module RestPack::Service
2
+ module Commands
3
+ class Get < RestPack::Service::Command
4
+ def execute
5
+ get
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module RestPack::Service
2
+ module Commands
3
+ class List < RestPack::Service::Command
4
+ def execute
5
+ list
6
+ end
7
+ end
8
+ end
9
+ end
@@ -1,5 +1,5 @@
1
1
  module RestPack
2
2
  module Service
3
- VERSION = "0.0.54"
3
+ VERSION = "0.0.55"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: restpack_service
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.54
4
+ version: 0.0.55
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gavin Joyce
@@ -209,6 +209,9 @@ files:
209
209
  - lib/restpack_service.rb
210
210
  - lib/restpack_service/activerecord/postgres_array_patch.rb
211
211
  - lib/restpack_service/command.rb
212
+ - lib/restpack_service/commands/create.rb
213
+ - lib/restpack_service/commands/get.rb
214
+ - lib/restpack_service/commands/list.rb
212
215
  - lib/restpack_service/configuration.rb
213
216
  - lib/restpack_service/loader.rb
214
217
  - lib/restpack_service/response.rb