require_dependency "ishapi/application_controller" ## ## supersedes Ishapi::MapsController ## class Ishapi::LocationsController < Ishapi::ApplicationController before_action :check_profile # , only: [ :show, :show_marker ] def show if 'self' == params[:slug] # @TODO: constantize _vp_ 2023-01-11 @location = ::Gameui::Map.where( slug: @current_profile[:email] ).first else @location = ::Gameui::Map.where( slug: params[:slug] ).first @location ||= ::Gameui::Map.find params[:slug] end authorize! :show, @location map = @location.map || @location # @TODO: remove _vp_ 2023-03-20 @newsitems = @location.newsitems.page( params[:newsitems_page] ).per( @location.newsitems_page_size ) @markers = map.markers.permitted_to(@current_profile).order_by(ordering: :asc) # case map.ordering_type # when ::Gameui::Map::ORDERING_TYPE_ALPHABETIC # @markers = @markers.order_by( name: :asc ) # when ::Gameui::Map::ORDERING_TYPE_CUSTOM # @markers = @markers.order_by( ordering: :asc ) # end if map.is_premium && !@current_profile.has_premium_purchase( map ) render 'show_restricted' else respond_to do |format| format.json do render 'show' end format.html do render 'show' end end end end def show_marker @marker = ::Gameui::Marker.find_by slug: params[:slug] authorize! :show, @marker render json: @marker end end