Sha256: b68af5d78f2a735fdb802f4e07690126039cfc67cc3cfac078e917c464863811

Contents?: true

Size: 1.28 KB

Versions: 3

Compression:

Stored size: 1.28 KB

Contents

require_dependency "ishapi/application_controller"

class Ishapi::MapsController < Ishapi::ApplicationController
  before_action :check_profile, only: [ :show ]

  def show
    puts! @current_profile, '@current_profile'

    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
    @map = @location.map || @location

    authorize! :show, @map

    @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
      render 'show'
    end
  end

  def show_marker
    @marker = ::Gameui::Marker.find_by slug: params[:slug]
    authorize! :show, @marker
    render json: @marker
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ishapi-0.1.8.206 app/controllers/ishapi/maps_controller.rb
ishapi-0.1.8.205 app/controllers/ishapi/maps_controller.rb
ishapi-0.1.8.204 app/controllers/ishapi/maps_controller.rb