# frozen_string_literal: true # License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later class MapsController < ApplicationController include Controllers::Nonprofit::Current include Controllers::Nonprofit::Authorization before_action :authenticate_super_associate!, only: :all_supporters before_action :authenticate_nonprofit_user!, only: %i[all_npo_supporters specific_npo_supporters] # used on admin/nonprofits_map and front page def all_npos respond_to do |format| format.html { redirect_to :root } format.json { @map_data = Nonprofit.where('latitude IS NOT NULL').last(1000) } end end # used on admin/supporters_map def all_supporters @map_data = Supporter.where('latitude IS NOT NULL').last(1000) end # used on npo dashboard def all_npo_supporters @map_data = Nonprofit.find(params['npo_id']).supporters.where('latitude IS NOT NULL').last(100) end # used on supporter dashboard def specific_npo_supporters supporter_ids = params['supporter_ids'].split(',').map(&:to_i) supporters = Nonprofit.find(params['npo_id']).supporters.find(supporter_ids).last(500) @map_data = supporters.map { |s| s if s.latitude != '' } end end