Railsy sprawdzające parametry wyszukiwania
Mam interfejs API, który jest dość spokojny, ale staram się wypracować czystą metodę wyszukiwania. Chcę móc wyszukiwać wszystkie rekordy między dwiema datami, a daty mogą być oddalone maksymalnie o 6 godzin. W tej chwili w mojej metodzie kontrolera mam następujące:
required_params = [:start_time, :end_time]
if check_required_params(required_params, params) and check_max_time_bound(params, 6.hours)
... rest of controller code here ...
end
check_required_params to metoda aplikacji, która wygląda tak:
def check_required_params(required_params, params_sent)
required_params.each do |param|
unless has_param(param, params_sent)
unprocessable_entity
return false
end
end
true
end
check_max_time jest dość podobny.
Wiem, że sprawdzanie poprawności w kontrolerze jest niezgodne z najlepszymi praktykami, ale nie widzę, w jaki sposób mogę go dodać do modelu.