pi-resources-rails 0.4.4 → 0.5.0

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
  SHA256:
3
- metadata.gz: 50365106cb9e2ad31f6153b26590cae305a513f1c26b7d23969d9f6fcdeb9bce
4
- data.tar.gz: 4f388b2f363fad01d26c1752cc6382a059fa95b85ac2f2e96ac9040df04badb4
3
+ metadata.gz: cbdd4a52495f630f2f206e5ff5a9415064408267f9f07a531fdfde5c1580d8a2
4
+ data.tar.gz: dad0dc2cd33ef2d81a28d93d9ab9c4480198d8f1cd9ea0bd84e8089954b7d660
5
5
  SHA512:
6
- metadata.gz: 73d215bf2c11255b357429d51d49a4637287b8c8f7363874bfd8ff41c17eb8092d9c4caffb1624f60b4d021b1a43da752d9d17f5653d958b47dc276141dc2e4a
7
- data.tar.gz: 6fe56ec4598d345f4a6b2e952bba2a8df1875667055169033814730733bfce3623e075f366425ffb0c2e50faac401f119112759adf09e8d71dab0014c29c4f9b
6
+ metadata.gz: aceb0e1b22bd5dbcefbda5bde864f5b1f9e7e2e76284a9600cba8618f2846a26325ecbe08ff2af6e8e9417f0b31786fb62e9a599b9333030757ff9677b8a4932
7
+ data.tar.gz: 055b29641ceb734313d9be776777e69bfe17fa76d2a83a8c735a00c6a2609bb6119d625bf3697825b50b2f7469d583c30190640f41c1914d8e116ccfd7060e75
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PiResources
4
+ module ChildResourcesController
5
+ extend ActiveSupport::Concern
6
+
7
+ include PiResources::ResourcesController
8
+
9
+ protected
10
+
11
+ def resource_service
12
+ @resource_service ||= resource_service_class.new
13
+ end
14
+
15
+ def parent_resource_key_param
16
+ raise MethodNotOverriddenError.new(__method__, self)
17
+ end
18
+
19
+ def resource_collection_resolver
20
+ resource_service.all(parent_resource_key_param)
21
+ end
22
+
23
+ def resource_finder
24
+ resource_service.find(parent_resource_key_param, resource_key_param)
25
+ end
26
+
27
+ def resource_creator
28
+ resource_service.create(parent_resource_key_param, resource_create_params)
29
+ end
30
+
31
+ def resource_updater
32
+ resource_service.update(parent_resource_key_param, resource_key_param, resource_update_params)
33
+ end
34
+
35
+ def resource_destroyer
36
+ resource_service.destroy(parent_resource_key_param, resource_key_param)
37
+ end
38
+ end
39
+ end
@@ -26,7 +26,9 @@ module PiResources
26
26
  def create
27
27
  @resource = resource_creator
28
28
 
29
- if @resource.valid?
29
+ if @resource.errors.any?
30
+ render resource_errors: @resource.errors, status: :unprocessable_entity
31
+ else
30
32
  render resource: @resource,
31
33
  serializer: create_resource_serializer,
32
34
  context: context,
@@ -34,38 +36,36 @@ module PiResources
34
36
  message: create_message,
35
37
  location: resource_location,
36
38
  status: :created
37
- else
38
- render resource_errors: @resource.errors, status: :unprocessable_entity
39
39
  end
40
40
  end
41
41
 
42
42
  def update
43
43
  @resource = resource_updater
44
44
 
45
- if @resource.valid?
45
+ if @resource.errors.any?
46
+ render resource_errors: @resource.errors, status: :unprocessable_entity
47
+ else
46
48
  render resource: @resource,
47
49
  serializer: update_resource_serializer,
48
50
  context: context,
49
51
  meta: meta,
50
52
  message: update_message,
51
53
  location: resource_location
52
- else
53
- render resource_errors: @resource.errors, status: :unprocessable_entity
54
54
  end
55
55
  end
56
56
 
57
57
  def destroy
58
58
  @resource = resource_destroyer
59
59
 
60
- if @resource.valid?
60
+ if @resource.errors.any?
61
+ render resource_errors: @resource.errors, status: :unprocessable_entity
62
+ else
61
63
  render resource: @resource,
62
64
  serializer: destroy_resource_serializer,
63
65
  context: context,
64
66
  meta: meta,
65
67
  message: destroy_message,
66
68
  location: resource_location
67
- else
68
- render resource_errors: @resource.errors, status: :unprocessable_entity
69
69
  end
70
70
  end
71
71
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PiResources
4
- VERSION = '0.4.4'
4
+ VERSION = '0.5.0'
5
5
  end
data/lib/pi_resources.rb CHANGED
@@ -21,6 +21,7 @@ require 'pi_resources/method_not_overridden_error'
21
21
 
22
22
  require 'pi_resources/renderers' if defined? Rails
23
23
  require 'pi_resources/resources_controller' if defined? Rails
24
+ require 'pi_resources/child_resources_controller' if defined? Rails
24
25
  require 'pi_resources/params_helpers' if defined? Rails
25
26
 
26
27
  module PiResources
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pi-resources-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Umberto Peserico
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-09-28 00:00:00.000000000 Z
12
+ date: 2023-11-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: money
@@ -57,6 +57,7 @@ files:
57
57
  - README.md
58
58
  - Rakefile
59
59
  - lib/pi_resources.rb
60
+ - lib/pi_resources/child_resources_controller.rb
60
61
  - lib/pi_resources/method_not_overridden_error.rb
61
62
  - lib/pi_resources/params_helpers.rb
62
63
  - lib/pi_resources/railtie.rb
@@ -100,7 +101,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
101
  - !ruby/object:Gem::Version
101
102
  version: '0'
102
103
  requirements: []
103
- rubygems_version: 3.4.19
104
+ rubygems_version: 3.4.10
104
105
  signing_key:
105
106
  specification_version: 4
106
107
  summary: Summary of PiResource