# frozen_string_literal: true class Api::V3::ApiController < ApplicationController respond_to :json skip_before_action :anger_old_api_clients rescue_from ActiveRecord::RecordNotFound do |_exception| render json: { error: t('booru.errors.record_not_found') }, status: :not_found end rescue_from Can4::AccessDenied do |_exception| render json: { error: t('booru.errors.access_denied', user: 'Dave') }, status: :unauthorized end rescue_from ActionController::ParameterMissing do |exception| render json: { error: "Required request parameter is missing: #{exception.param}" }, status: :bad_request end protected def setup_simple_pagination(default_per_page = 250, max_per_page = 250) @per_page = params[:per_page].present? ? params[:per_page].to_i : default_per_page @per_page = max_per_page if @per_page > max_per_page @per_page = 1 if @per_page < 1 @page_num = params[:page].to_i end def oauth_maybe_authorize!(scope) doorkeeper_authorize!(scope) unless using_apikey? end def oauth_authenticated_user User.find(doorkeeper_token.resource_owner_id) if doorkeeper_token end end