|
|
|
@@ -0,0 +1,51 @@ |
|
|
|
class Api::V1::Projects::DatasetsController < Api::V1::BaseController |
|
|
|
before_action :require_public_and_member_above, only: [:show] |
|
|
|
before_action :require_member_above, only: [:create, :update] |
|
|
|
before_action :find_dataset, only: [:update, :show] |
|
|
|
before_action :check_menu_authorize |
|
|
|
|
|
|
|
def create |
|
|
|
::Projects::Datasets::CreateForm.new(dataset_params).validate! |
|
|
|
return render_error('该项目下已存在数据集!') if @project.project_dataset.present? |
|
|
|
@project_dataset = ProjectDataset.new(dataset_params.merge!(project_id: @project.id)) |
|
|
|
if @project_dataset.save! |
|
|
|
render_ok |
|
|
|
else |
|
|
|
render_error('创建数据集失败!') |
|
|
|
end |
|
|
|
rescue Exception => e |
|
|
|
uid_logger_error(e.message) |
|
|
|
tip_exception(e.message) |
|
|
|
end |
|
|
|
|
|
|
|
def update |
|
|
|
::Projects::Datasets::CreateForm.new(dataset_params).validate! |
|
|
|
@project_dataset.attributes = dataset_params |
|
|
|
if @project_dataset.save! |
|
|
|
render_ok |
|
|
|
else |
|
|
|
render_error("更新数据集失败!") |
|
|
|
end |
|
|
|
rescue Exception => e |
|
|
|
uid_logger_error(e.message) |
|
|
|
tip_exception(e.message) |
|
|
|
end |
|
|
|
|
|
|
|
def show |
|
|
|
@attachments = kaminari_paginate(@project_dataset.attachments.includes(:author)) |
|
|
|
end |
|
|
|
|
|
|
|
private |
|
|
|
def dataset_params |
|
|
|
params.permit(:title, :description, :license_id, :paper_content) |
|
|
|
end |
|
|
|
|
|
|
|
def find_dataset |
|
|
|
@project_dataset = @project.project_dataset |
|
|
|
return render_not_found unless @project_dataset.present? |
|
|
|
end |
|
|
|
|
|
|
|
def check_menu_authorize |
|
|
|
return render_not_found unless @project.has_menu_permission("dataset") |
|
|
|
end |
|
|
|
end |