mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-09-21 07:26:15 +08:00
53 lines
1.6 KiB
Ruby
53 lines
1.6 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module RepositoryColumns
|
||
|
class AssetColumnsController < BaseColumnsController
|
||
|
include InputSanitizeHelper
|
||
|
before_action :load_column, only: %i(update destroy)
|
||
|
before_action :check_create_permissions, only: :create
|
||
|
before_action :check_manage_permissions, only: %i(update destroy)
|
||
|
|
||
|
def create
|
||
|
service = RepositoryColumns::CreateStatusColumnService
|
||
|
.call(user: current_user, repository: @repository, team: current_team, params: repository_column_params)
|
||
|
|
||
|
if service.succeed?
|
||
|
render json: service.column, status: :created
|
||
|
else
|
||
|
render json: service.errors, status: :unprocessable_entity
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def update
|
||
|
service = RepositoryColumns::UpdateStatusColumnService
|
||
|
.call(user: current_user,
|
||
|
team: current_team,
|
||
|
column: @repository_column,
|
||
|
params: repository_column_params)
|
||
|
|
||
|
if service.succeed?
|
||
|
render json: service.column, status: :ok
|
||
|
else
|
||
|
render json: service.errors, status: :unprocessable_entity
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def destroy
|
||
|
service = RepositoryColumns::DeleteStatusColumnService
|
||
|
.call(user: current_user, team: current_team, column: @repository_column)
|
||
|
|
||
|
if service.succeed?
|
||
|
render json: {}, status: :ok
|
||
|
else
|
||
|
render json: service.errors, status: :unprocessable_entity
|
||
|
end
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def repository_column_params
|
||
|
params.require(:repository_column).permit(:name)
|
||
|
end
|
||
|
end
|
||
|
end
|