@@ -118,13 +118,17 @@ def sideload(results, includes)
118
118
end
119
119
end
120
120
121
- def apply_scoping ( opts )
122
- @object = JsonapiCompliable ::Scoping ::DefaultFilter . new ( @resource , query_hash , @object ) . apply
123
- @object = JsonapiCompliable ::Scoping ::Filter . new ( @resource , query_hash , @object ) . apply unless opts [ :filter ] == false
124
- @object = JsonapiCompliable ::Scoping ::ExtraFields . new ( @resource , query_hash , @object ) . apply unless opts [ :extra_fields ] == false
125
- @object = JsonapiCompliable ::Scoping ::Sort . new ( @resource , query_hash , @object ) . apply unless opts [ :sort ] == false
126
- @unpaginated_object = @object
127
- @object = JsonapiCompliable ::Scoping ::Paginate . new ( @resource , query_hash , @object , default : opts [ :default_paginate ] ) . apply unless opts [ :paginate ] == false
121
+ def apply_scoping ( opts )
122
+ add_scoping ( nil , JsonapiCompliable ::Scoping ::DefaultFilter , opts )
123
+ add_scoping ( :filter , JsonapiCompliable ::Scoping ::Filter , opts )
124
+ add_scoping ( :extra_fields , JsonapiCompliable ::Scoping ::ExtraFields , opts )
125
+ add_scoping ( :sort , JsonapiCompliable ::Scoping ::Sort , opts )
126
+ add_scoping ( :paginate , JsonapiCompliable ::Scoping ::Paginate , opts , default : opts [ :default_paginate ] )
127
+ end
128
+
129
+ def add_scoping ( key , scoping_class , opts , default = { } )
130
+ @object = scoping_class . new ( @resource , query_hash , @object , default ) . apply unless opts [ key ] == false
131
+ @unpaginated_object = @object unless key == :paginate
128
132
end
129
133
end
130
134
end
0 commit comments