pi-resources-rails 0.4.3 → 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: 59020251e3c84f11e57031f368fd499a38668504a03b5ceff4cd13f8a49509e5
4
- data.tar.gz: 8dad27eeb3d3a3a61e7c896c5b488925ebdf7276983fce998535d7bd0a0c4195
3
+ metadata.gz: cbdd4a52495f630f2f206e5ff5a9415064408267f9f07a531fdfde5c1580d8a2
4
+ data.tar.gz: dad0dc2cd33ef2d81a28d93d9ab9c4480198d8f1cd9ea0bd84e8089954b7d660
5
5
  SHA512:
6
- metadata.gz: 62176a5ae38741d8683e51034cc6ef8d1838c9a1e8f8d8db31a7a28d4698d097cd749df295cc6f20a308a371e1080640403c7fa3c37f3efa7cf500bac3321ea1
7
- data.tar.gz: c1443595d171a42a5408e2cd8479dc09a8166ef886a5a902360da2bb69767e7743b4201e51a0a4bfe3e382649da212ee2db3a4877f1f7e4f7b42c0b9c90d1fbc
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
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'debug'
4
-
5
3
  module PiResources
6
4
  module ResourcesController
7
5
  extend ActiveSupport::Concern
@@ -28,7 +26,9 @@ module PiResources
28
26
  def create
29
27
  @resource = resource_creator
30
28
 
31
- if @resource.valid?
29
+ if @resource.errors.any?
30
+ render resource_errors: @resource.errors, status: :unprocessable_entity
31
+ else
32
32
  render resource: @resource,
33
33
  serializer: create_resource_serializer,
34
34
  context: context,
@@ -36,38 +36,36 @@ module PiResources
36
36
  message: create_message,
37
37
  location: resource_location,
38
38
  status: :created
39
- else
40
- render resource_errors: @resource.errors, status: :unprocessable_entity
41
39
  end
42
40
  end
43
41
 
44
42
  def update
45
43
  @resource = resource_updater
46
44
 
47
- if @resource.valid?
45
+ if @resource.errors.any?
46
+ render resource_errors: @resource.errors, status: :unprocessable_entity
47
+ else
48
48
  render resource: @resource,
49
49
  serializer: update_resource_serializer,
50
50
  context: context,
51
51
  meta: meta,
52
52
  message: update_message,
53
53
  location: resource_location
54
- else
55
- render resource_errors: @resource.errors, status: :unprocessable_entity
56
54
  end
57
55
  end
58
56
 
59
57
  def destroy
60
58
  @resource = resource_destroyer
61
59
 
62
- if @resource.valid?
60
+ if @resource.errors.any?
61
+ render resource_errors: @resource.errors, status: :unprocessable_entity
62
+ else
63
63
  render resource: @resource,
64
64
  serializer: destroy_resource_serializer,
65
65
  context: context,
66
66
  meta: meta,
67
67
  message: destroy_message,
68
68
  location: resource_location
69
- else
70
- render resource_errors: @resource.errors, status: :unprocessable_entity
71
69
  end
72
70
  end
73
71
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PiResources
4
- VERSION = '0.4.3'
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.3
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-17 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