grpc-rest 0.1.10 → 0.1.11

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