@@ -118,13 +118,17 @@ def sideload(results, includes)
118118 end
119119 end
120120
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
128132 end
129133 end
130134end
0 commit comments