restpack_service 0.0.54 → 0.0.55

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
  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