nas/app/controllers/api/v1/antennas_controller.rb
KMY(雪あすか) 9201eb151b
Add: #920 アンテナ・リストに「お気に入りに登録」設定 (#946)
* Add: #920 アンテナ・リストに「お気に入りに登録」設定

* Fix test

* Fix test

* Add fedibird capabilities

* Add kmyblue_favourite_antenna
2024-12-09 12:12:15 +09:00

47 lines
1.3 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!(antenna_params.merge(account: current_account, list_id: 0))
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, :favourite)
end
end