serializer_field_filter 0.0.2 → 0.0.3
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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 184cb33042638e7bcd06dfbdde55b2dae97547bf
|
4
|
+
data.tar.gz: 8437bdfbf48529ce491e6e624bc53314131e7a56
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd0ff76eb12bea71893f9781f0e33adf834f7171d939fc2cb21d74ae8d6dcdbc0dcfd01f44775b600a4333f47a5ab5c0364a757310ee48a53ccbb18a36cf08dc
|
7
|
+
data.tar.gz: 65683ec0774551efee892d5b6b645e4ebdce587ce114e4d931c81394dd96767abefa8e0f9ab5147498aa83499f4611b7666ce0dbd135bd1bf2c116e516016b72
|
@@ -9,9 +9,11 @@ class SerializerFieldFilter
|
|
9
9
|
resource_method_module = Module.new do
|
10
10
|
define_method resource_name do
|
11
11
|
filter = instance_options[:field_filter]&.scope_of(resource_name)
|
12
|
-
resource_options =
|
12
|
+
resource_options = {
|
13
13
|
serializer: serializer,
|
14
|
-
|
14
|
+
fields: filter&.root_fields,
|
15
|
+
field_filter: filter
|
16
|
+
}
|
15
17
|
resources = defined?(super) ? super() : object.send(resource_name)
|
16
18
|
if "#{relation_method_name}" == "has_many"
|
17
19
|
resources.to_a.map do |resource|
|
@@ -51,7 +51,7 @@ describe SerializerFieldFilter::Relation do
|
|
51
51
|
let(:cource) { Cource.new(id: 1, name: "cource", classroom: classroom, teacher: teacher, students: [student_1, student_2])}
|
52
52
|
|
53
53
|
subject(:json) {
|
54
|
-
ActiveModelSerializers::SerializableResource.new(cource, filter
|
54
|
+
ActiveModelSerializers::SerializableResource.new(cource, filter&.resource_options || {}).as_json
|
55
55
|
}
|
56
56
|
|
57
57
|
context "with all field" do
|
@@ -69,6 +69,21 @@ describe SerializerFieldFilter::Relation do
|
|
69
69
|
}
|
70
70
|
end
|
71
71
|
|
72
|
+
context "with nil" do
|
73
|
+
let(:filter) { nil }
|
74
|
+
it { should eq({
|
75
|
+
id: 1,
|
76
|
+
name: 'cource',
|
77
|
+
classroom: { id: 1, name: 'classroom' },
|
78
|
+
teacher: { id: 1, name: 'teacher' },
|
79
|
+
students: [
|
80
|
+
{ id: 1, name: 'student' },
|
81
|
+
{ id: 2, name: 'student' }
|
82
|
+
]
|
83
|
+
})
|
84
|
+
}
|
85
|
+
end
|
86
|
+
|
72
87
|
context "with none field" do
|
73
88
|
let(:filter) { SerializerFieldFilter::NoneField.new }
|
74
89
|
it { should eq({})}
|