mirror of
https://github.com/astuto/astuto.git
synced 2025-12-16 03:37:56 +01:00
Add Boards management to sitesettings (#107)
This commit is contained in:
committed by
GitHub
parent
7b8a4d6709
commit
6be2394dc5
@@ -1,5 +1,81 @@
|
||||
class BoardsController < ApplicationController
|
||||
include ApplicationHelper
|
||||
|
||||
before_action :authenticate_admin, only: [:create, :update, :update_order, :destroy]
|
||||
|
||||
def index
|
||||
boards = Board.order(order: :asc)
|
||||
|
||||
render json: boards
|
||||
end
|
||||
|
||||
def show
|
||||
@board = Board.find(params[:id])
|
||||
end
|
||||
|
||||
def create
|
||||
board = Board.new(board_params)
|
||||
|
||||
if board.save
|
||||
render json: board, status: :created
|
||||
else
|
||||
render json: {
|
||||
error: I18n.t('errors.board.create', message: board.errors.full_messages)
|
||||
}, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
|
||||
def update
|
||||
board = Board.find(params[:id])
|
||||
board.assign_attributes(board_params)
|
||||
|
||||
if board.save
|
||||
render json: board, status: :ok
|
||||
else
|
||||
print board.errors.full_messages
|
||||
|
||||
render json: {
|
||||
error: I18n.t('errors.board.update', message: board.errors.full_messages)
|
||||
}, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
board = Board.find(params[:id])
|
||||
|
||||
if board.destroy
|
||||
render json: {
|
||||
id: params[:id]
|
||||
}, status: :accepted
|
||||
else
|
||||
render json: {
|
||||
error: I18n.t('errors.board.destroy', message: board.errors.full_messages)
|
||||
}, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
|
||||
def update_order
|
||||
workflow_output = ReorderWorkflow.new(
|
||||
entity_classname: Board,
|
||||
column_name: 'order',
|
||||
entity_id: params[:board][:id],
|
||||
src_index: params[:board][:src_index],
|
||||
dst_index: params[:board][:dst_index]
|
||||
).run
|
||||
|
||||
if workflow_output
|
||||
render json: workflow_output
|
||||
else
|
||||
render json: {
|
||||
error: I18n.t("errors.board.update_order")
|
||||
}, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def board_params
|
||||
params
|
||||
.require(:board)
|
||||
.permit(:name, :description)
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user