51 lines
1.2 KiB
Ruby
51 lines
1.2 KiB
Ruby
class Api::V1::Accounts::Captain::AssetsController < Api::V1::Accounts::BaseController
|
|
before_action :current_account
|
|
before_action -> { check_authorization(Captain::Asset) }
|
|
before_action :set_asset, only: [:destroy, :show, :update]
|
|
before_action :set_current_page, only: [:index]
|
|
RESULTS_PER_PAGE = 25
|
|
|
|
def index
|
|
base_query = account_assets.ordered
|
|
@assets_count = base_query.count
|
|
@assets = base_query.page(@current_page).per(RESULTS_PER_PAGE)
|
|
end
|
|
|
|
def show; end
|
|
|
|
def create
|
|
@asset = account_assets.create!(asset_params)
|
|
rescue ActiveRecord::RecordInvalid => e
|
|
render_could_not_create_error(e.record.errors.full_messages.join(', '))
|
|
end
|
|
|
|
def update
|
|
@asset.update!(asset_params)
|
|
rescue ActiveRecord::RecordInvalid => e
|
|
render_could_not_create_error(e.record.errors.full_messages.join(', '))
|
|
end
|
|
|
|
def destroy
|
|
@asset.destroy
|
|
head :no_content
|
|
end
|
|
|
|
private
|
|
|
|
def set_asset
|
|
@asset = account_assets.find(params[:id])
|
|
end
|
|
|
|
def account_assets
|
|
@account_assets ||= Current.account.captain_assets
|
|
end
|
|
|
|
def asset_params
|
|
params.require(:asset).permit(:name, :file)
|
|
end
|
|
|
|
def set_current_page
|
|
@current_page = params[:page] || 1
|
|
end
|
|
end
|