dawarich/app/controllers/api/v1/countries/visited_cities_controller.rb
2024-12-11 22:00:33 +01:00

30 lines
763 B
Ruby

# frozen_string_literal: true
class Api::V1::Countries::VisitedCitiesController < ApiController
before_action :validate_params
def index
start_at = DateTime.parse(params[:start_at]).to_i
end_at = DateTime.parse(params[:end_at]).to_i
points = current_api_user
.tracked_points
.where(timestamp: start_at..end_at)
render json: { data: CountriesAndCities.new(points).call }
end
private
def validate_params
missing_params = %i[start_at end_at].select { |param| params[param].blank? }
if missing_params.any?
render json: {
error: "Missing required parameters: #{missing_params.join(', ')}"
}, status: :bad_request and return
end
params.permit(:start_at, :end_at)
end
end