47 lines
1.2 KiB
Ruby
47 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class Api::V1::AntennasController < Api::BaseController
|
|
before_action -> { doorkeeper_authorize! :read, :'read:lists' }, only: [:index, :show]
|
|
before_action -> { doorkeeper_authorize! :write, :'write:lists' }, except: [:index, :show]
|
|
|
|
before_action :require_user!
|
|
before_action :set_antenna, except: [:index, :create]
|
|
|
|
rescue_from ArgumentError do |e|
|
|
render json: { error: e.to_s }, status: 422
|
|
end
|
|
|
|
def index
|
|
@antennas = Antenna.where(account: current_account).all
|
|
render json: @antennas, each_serializer: REST::AntennaSerializer
|
|
end
|
|
|
|
def show
|
|
render json: @antenna, serializer: REST::AntennaSerializer
|
|
end
|
|
|
|
def create
|
|
@antenna = Antenna.create!({ list_id: 0 }.merge(antenna_params.merge(account: current_account)))
|
|
render json: @antenna, serializer: REST::AntennaSerializer
|
|
end
|
|
|
|
def update
|
|
@antenna.update!(antenna_params)
|
|
render json: @antenna, serializer: REST::AntennaSerializer
|
|
end
|
|
|
|
def destroy
|
|
@antenna.destroy!
|
|
render_empty
|
|
end
|
|
|
|
private
|
|
|
|
def set_antenna
|
|
@antenna = Antenna.where(account: current_account).find(params[:id])
|
|
end
|
|
|
|
def antenna_params
|
|
params.permit(:title, :list_id, :insert_feeds, :stl, :ltl, :with_media_only, :ignore_reblog)
|
|
end
|
|
end
|