api-regulator 0.1.8 → 0.1.9

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: 99b1c4cbba316a8035a073ab0179c0013ff12ffda3ac32087d26608127af8f4e
4
- data.tar.gz: 9d1fbf44040360e9d17b433dcf9bca61a97369673980c1a6c5207a8c0871e2fd
3
+ metadata.gz: c1d041ae7a972c291795b539d3543fbda9da721c10f505966af5eca71c00fac4
4
+ data.tar.gz: 592189f17e96f0c676adb9d393698ae32617a6f9558b5a255911b97ea422b6b9
5
5
  SHA512:
6
- metadata.gz: 6a4be7c0e6da948900b799192ecf37493402b34900eb9919f7c55081feacb8816a1b351e75b65c92a821263646994d64944c0cc3774913f2e2dd400a5360caf3
7
- data.tar.gz: ec7cccd9723efaefb9a99bb6eed077cf12f310d7e86e715584a28cbb6fe2b65d85678eb804e52fccd9c694be17499dd7aa45d18b21a942d68e60ca36efc5169b
6
+ metadata.gz: 29f9365bde56835debcffe256e6496d0cf3e8a9abe09aebeb88493141e893b38943cdfe83116cfd1bb7f1e95b73e59281849977b76834731cbf5d6ab022154ff
7
+ data.tar.gz: 2c3bcd87b072eb9cb5877d15224a1782c9a90e16700050cb9d594367c741a2d8d27da992ca0c99d9f48e6ea959390e93ca44d6fa1b0099aafb861f97cf68cc74
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- api-regulator (0.1.8)
4
+ api-regulator (0.1.9)
5
5
  activemodel (~> 8.0)
6
6
  activesupport (~> 8.0)
7
7
 
@@ -36,9 +36,16 @@ module ApiRegulator
36
36
 
37
37
  body_params = api_definition.params.select(&:body?)
38
38
  permitted_body = body_params.each_with_object({}) do |param, hash|
39
- if params.key?(param.name)
40
- params.require(param.name).permit(*build_permitted_keys(param.children)).to_h.symbolize_keys
41
- hash[param.name.to_sym] = params.require(param.name).permit(*build_permitted_keys(param.children)).to_h.symbolize_keys
39
+ if param.type == :object
40
+ if param.required?
41
+ nested = params.expect(param.name => build_permitted_keys(param.children)).to_h.symbolize_keys
42
+ hash[param.name.to_sym] = nested
43
+ else
44
+ nested = params.permit(param.name => build_permitted_keys(param.children)).to_h.symbolize_keys
45
+ hash.merge!(nested)
46
+ end
47
+ else
48
+ hash[param.name.to_sym] = params[param.name]
42
49
  end
43
50
  end.symbolize_keys
44
51
 
@@ -37,6 +37,10 @@ module ApiRegulator
37
37
  end
38
38
  end
39
39
 
40
+ def required?
41
+ !!@options[:presence]
42
+ end
43
+
40
44
  def body?
41
45
  location == :body
42
46
  end
@@ -1,3 +1,3 @@
1
1
  module ApiRegulator
2
- VERSION = "0.1.8"
2
+ VERSION = "0.1.9"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api-regulator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geoff Massanek
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-01-09 00:00:00.000000000 Z
11
+ date: 2025-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport