@@ -68,13 +68,15 @@ def find
6868 include_directives = params [ :include_directives ]
6969 sort_criteria = params . fetch ( :sort_criteria , [ ] )
7070 paginator = params [ :paginator ]
71+ fields = params [ :fields ]
7172
7273 verified_filters = resource_klass . verify_filters ( filters , context )
7374 resource_records = resource_klass . find ( verified_filters ,
7475 context : context ,
7576 include_directives : include_directives ,
7677 sort_criteria : sort_criteria ,
77- paginator : paginator )
78+ paginator : paginator ,
79+ fields : fields )
7880
7981 page_options = { }
8082 if ( JSONAPI . configuration . top_level_meta_include_record_count ||
@@ -97,13 +99,15 @@ def find
9799
98100 def show
99101 include_directives = params [ :include_directives ]
102+ fields = params [ :fields ]
100103 id = params [ :id ]
101104
102105 key = resource_klass . verify_key ( id , context )
103106
104107 resource_record = resource_klass . find_by_key ( key ,
105108 context : context ,
106- include_directives : include_directives )
109+ include_directives : include_directives ,
110+ fields : fields )
107111
108112 return JSONAPI ::ResourceOperationResult . new ( :ok , resource_record )
109113 end
@@ -123,8 +127,9 @@ def show_related_resource
123127 source_klass = params [ :source_klass ]
124128 source_id = params [ :source_id ]
125129 relationship_type = params [ :relationship_type ] . to_sym
130+ fields = params [ :fields ]
126131
127- source_resource = source_klass . find_by_key ( source_id , context : context )
132+ source_resource = source_klass . find_by_key ( source_id , context : context , fields : fields )
128133
129134 related_resource = source_resource . public_send ( relationship_type )
130135
@@ -138,13 +143,15 @@ def show_related_resources
138143 filters = params [ :filters ]
139144 sort_criteria = params [ :sort_criteria ]
140145 paginator = params [ :paginator ]
146+ fields = params [ :fields ]
141147
142- source_resource ||= source_klass . find_by_key ( source_id , context : context )
148+ source_resource ||= source_klass . find_by_key ( source_id , context : context , fields : fields )
143149
144150 related_resources = source_resource . public_send ( relationship_type ,
145151 filters : filters ,
146152 sort_criteria : sort_criteria ,
147- paginator : paginator )
153+ paginator : paginator ,
154+ fields : fields )
148155
149156 if ( ( JSONAPI . configuration . top_level_meta_include_record_count ) ||
150157 ( paginator && paginator . class . requires_record_count ) ||
@@ -182,7 +189,6 @@ def show_related_resources
182189
183190 def create_resource
184191 data = params [ :data ]
185-
186192 resource = resource_klass . create ( context )
187193 result = resource . replace_fields ( data )
188194
0 commit comments