chatwoot-develop/app/controllers/api/v1/accounts/jasmine/collections_controller.rb

43 lines
1.2 KiB
Ruby

class Api::V1::Accounts::Jasmine::CollectionsController < Api::V1::Accounts::BaseController
before_action :find_collection, only: [:destroy]
def index
scope = Current.account.jasmine_collections
scope = scope.where(visibility: params[:visibility]) if params[:visibility]
render json: scope
end
def create
@collection = Current.account.jasmine_collections.new(collection_params)
if @collection.save
# Auto-link to inbox if owner_inbox_id provided
if @collection.owner_inbox_id
inbox = Current.account.inboxes.find_by(id: @collection.owner_inbox_id)
inbox&.inbox_collections&.create(collection: @collection, priority: 10)
end
render json: @collection
else
render json: { error: @collection.errors.full_messages.join(', ') }, status: :unprocessable_entity
end
end
def destroy
if @collection.destroy
head :no_content
else
render json: { error: @collection.errors.full_messages.join(', ') }, status: :unprocessable_entity
end
end
private
def find_collection
@collection = Current.account.jasmine_collections.find(params[:id])
end
def collection_params
params.require(:collection).permit(:name, :description, :visibility, :owner_inbox_id)
end
end