chatwoot-develop/enterprise/app/controllers/api/v1/accounts/captain/assets_controller.rb
2026-01-12 19:04:15 -03:00

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