Draft API to create Collections (#37049)

This commit is contained in:
David Roetzel
2025-11-28 14:30:43 +01:00
committed by GitHub
parent 6b38352b17
commit f896bbac3b
6 changed files with 125 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
# frozen_string_literal: true
class Api::V1Alpha::CollectionsController < Api::BaseController
rescue_from ActiveRecord::RecordInvalid, Mastodon::ValidationError do |e|
render json: { error: ValidationErrorFormatter.new(e).as_json }, status: 422
end
before_action :check_feature_enabled
before_action -> { doorkeeper_authorize! :write, :'write:collections' }, only: [:create]
before_action :require_user!
def create
@collection = CreateCollectionService.new.call(collection_params, current_user.account)
render json: @collection, serializer: REST::CollectionSerializer
end
private
def collection_params
params.permit(:name, :description, :sensitive, :discoverable, :tag, account_ids: [])
end
def check_feature_enabled
raise ActionController::RoutingError unless Mastodon::Feature.collections_enabled?
end
end