grpc-rest 0.1.10 → 0.1.11

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: 7cd53f44aee783542e52eb72b647d8070a88038ae5248fda1ede02ad8c9d9fea
4
- data.tar.gz: 883a2f69f05b0e40e895fa3bd4a82f571c722ca5a2099862d767ac60ebf6ce85
3
+ metadata.gz: 56ba9cbb18e3e8e94caeea9e076756289d9528ce0bbc73ef64baa54cfc931900
4
+ data.tar.gz: 757bb291af0d057ddd7f56f5408e8d72711a9aa388a95bf72aa1789dc35440ae
5
5
  SHA512:
6
- metadata.gz: 1e252cbb74d82d8730141ac33c7284d5db40cb759c1ad5f0a19b66e2d8317c27c3678244af019f7865d97a908243c5dbd6d709f5213657868ff042cc000414e2
7
- data.tar.gz: 31478108c117b7db638bc7b75908c07aaf67664cfe8ae6d229ddc15e5c96a701e8cdb156d72ea5412e8a27e931a85981cff884afe93986c785db4b044925dc25
6
+ metadata.gz: 38dada65b29e6122f66dc994a0e8b2e1ce14029a736278d6a81445b4aa5877a21b8f53f7b39ec1c96b59777b5d90414379728bb35099cb237704e09ac059a925
7
+ data.tar.gz: 53e67d73074947f701c7ede6727170142d9dafb7f586156aa95a46fd35ce6e2ce87f6cb6101b80a12e732fcd5a8821815a0c48e9ac2e489131a1c41108365a20
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- grpc-rest (0.1.9)
4
+ grpc-rest (0.1.11)
5
5
  grpc
6
6
  rails (>= 6.0)
7
7
 
@@ -1,3 +1,3 @@
1
1
  module GrpcRest
2
- VERSION = "0.1.10"
2
+ VERSION = '0.1.11'
3
3
  end
data/lib/grpc_rest.rb CHANGED
@@ -57,7 +57,13 @@ module GrpcRest
57
57
  when 'google.protobuf.ListValue'
58
58
  params[field] = Google::Protobuf::ListValue.from_a(val)
59
59
  else
60
- map_wkt(descriptor.subtype, params[field]) if descriptor.subtype
60
+ if params[field].is_a?(Array)
61
+ params[field].each do |item|
62
+ map_wkt(descriptor.subtype, item)
63
+ end
64
+ else
65
+ map_wkt(descriptor.subtype, params[field])
66
+ end
61
67
  end
62
68
  end
63
69
  end
@@ -16,6 +16,7 @@ message TestRequest {
16
16
  google.protobuf.Timestamp timestamp_field = 7;
17
17
  google.protobuf.ListValue list_value = 8;
18
18
  google.protobuf.Value bare_value = 9;
19
+ repeated SubRecord sub_records = 10;
19
20
  }
20
21
 
21
22
  message SubRecord {
@@ -114,4 +114,21 @@ RSpec.describe MyServiceController, type: :request do
114
114
  end
115
115
  end
116
116
 
117
+ describe 'array of sub-records' do
118
+ it 'should be successful' do
119
+ params = {
120
+ sub_records: [{
121
+ sub_id: 'id1',
122
+ another_id: 'id2'
123
+ }]
124
+ }
125
+
126
+ post '/test4', params:, as: :json
127
+ expect(response).to be_successful
128
+ expect(response.parsed_body).to eq({
129
+ 'some_int' => 4,
130
+ 'full_response' => %({"subRecords":[{"subId":"id1","anotherId":"id2"}]})
131
+ })
132
+ end
133
+ end
117
134
  end
@@ -9,33 +9,10 @@ require 'google/protobuf/struct_pb'
9
9
  require 'google/protobuf/timestamp_pb'
10
10
 
11
11
 
12
- descriptor_data = "\n\x12test_service.proto\x12\x08testdata\x1a\x1cgoogle/api/annotations.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xdc\x02\n\x0bTestRequest\x12\x0f\n\x07test_id\x18\x01 \x01(\t\x12\x0e\n\x06\x66oobar\x18\x02 \x01(\t\x12\x17\n\x0frepeated_string\x18\x03 \x03(\t\x12\'\n\nsub_record\x18\x04 \x01(\x0b\x32\x13.testdata.SubRecord\x12*\n\rsecond_record\x18\x05 \x01(\x0b\x32\x13.testdata.SubRecord\x12-\n\x0cstruct_field\x18\x06 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x33\n\x0ftimestamp_field\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nlist_value\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.ListValue\x12*\n\nbare_value\x18\t \x01(\x0b\x32\x16.google.protobuf.Value\"/\n\tSubRecord\x12\x0e\n\x06sub_id\x18\x01 \x01(\t\x12\x12\n\nanother_id\x18\x02 \x01(\t\"7\n\x0cTestResponse\x12\x10\n\x08some_int\x18\x01 \x01(\x05\x12\x15\n\rfull_response\x18\x02 \x01(\t2\xdf\x02\n\tMyService\x12T\n\x04Test\x12\x15.testdata.TestRequest\x1a\x16.testdata.TestResponse\"\x1d\x82\xd3\xe4\x93\x02\x17\x12\x15/test/{foobar=blah/*}\x12U\n\x05Test2\x12\x15.testdata.TestRequest\x1a\x16.testdata.TestResponse\"\x1d\x82\xd3\xe4\x93\x02\x17\"\x06/test2:\rsecond_record\x12Z\n\x05Test3\x12\x15.testdata.TestRequest\x1a\x16.testdata.TestResponse\"\"\x82\xd3\xe4\x93\x02\x1c\"\x1a/test3/{sub_record.sub_id}\x12I\n\x05Test4\x12\x15.testdata.TestRequest\x1a\x16.testdata.TestResponse\"\x11\x82\xd3\xe4\x93\x02\x0b\"\x06/test4:\x01*b\x06proto3"
12
+ descriptor_data = "\n\x12test_service.proto\x12\x08testdata\x1a\x1cgoogle/api/annotations.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x86\x03\n\x0bTestRequest\x12\x0f\n\x07test_id\x18\x01 \x01(\t\x12\x0e\n\x06\x66oobar\x18\x02 \x01(\t\x12\x17\n\x0frepeated_string\x18\x03 \x03(\t\x12\'\n\nsub_record\x18\x04 \x01(\x0b\x32\x13.testdata.SubRecord\x12*\n\rsecond_record\x18\x05 \x01(\x0b\x32\x13.testdata.SubRecord\x12-\n\x0cstruct_field\x18\x06 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x33\n\x0ftimestamp_field\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nlist_value\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.ListValue\x12*\n\nbare_value\x18\t \x01(\x0b\x32\x16.google.protobuf.Value\x12(\n\x0bsub_records\x18\n \x03(\x0b\x32\x13.testdata.SubRecord\"/\n\tSubRecord\x12\x0e\n\x06sub_id\x18\x01 \x01(\t\x12\x12\n\nanother_id\x18\x02 \x01(\t\"7\n\x0cTestResponse\x12\x10\n\x08some_int\x18\x01 \x01(\x05\x12\x15\n\rfull_response\x18\x02 \x01(\t2\xdf\x02\n\tMyService\x12T\n\x04Test\x12\x15.testdata.TestRequest\x1a\x16.testdata.TestResponse\"\x1d\x82\xd3\xe4\x93\x02\x17\x12\x15/test/{foobar=blah/*}\x12U\n\x05Test2\x12\x15.testdata.TestRequest\x1a\x16.testdata.TestResponse\"\x1d\x82\xd3\xe4\x93\x02\x17\"\x06/test2:\rsecond_record\x12Z\n\x05Test3\x12\x15.testdata.TestRequest\x1a\x16.testdata.TestResponse\"\"\x82\xd3\xe4\x93\x02\x1c\"\x1a/test3/{sub_record.sub_id}\x12I\n\x05Test4\x12\x15.testdata.TestRequest\x1a\x16.testdata.TestResponse\"\x11\x82\xd3\xe4\x93\x02\x0b\"\x06/test4:\x01*b\x06proto3"
13
13
 
14
14
  pool = Google::Protobuf::DescriptorPool.generated_pool
15
-
16
- begin
17
- pool.add_serialized_file(descriptor_data)
18
- rescue TypeError
19
- # Compatibility code: will be removed in the next major version.
20
- require 'google/protobuf/descriptor_pb'
21
- parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
22
- parsed.clear_dependency
23
- serialized = parsed.class.encode(parsed)
24
- file = pool.add_serialized_file(serialized)
25
- warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
26
- imports = [
27
- ["google.protobuf.Struct", "google/protobuf/struct.proto"],
28
- ["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"],
29
- ]
30
- imports.each do |type_name, expected_filename|
31
- import_file = pool.lookup(type_name).file_descriptor
32
- if import_file.name != expected_filename
33
- warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
34
- end
35
- end
36
- warn "Each proto file must use a consistent fully-qualified name."
37
- warn "This will become an error in the next major version."
38
- end
15
+ pool.add_serialized_file(descriptor_data)
39
16
 
40
17
  module Testdata
41
18
  TestRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("testdata.TestRequest").msgclass
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grpc-rest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.1.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Orner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-05-06 00:00:00.000000000 Z
11
+ date: 2024-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: grpc