38 lines
1010 B
Ruby
38 lines
1010 B
Ruby
class Api::V1::Projects::DatasetsController < Api::V1::BaseController
|
|
before_action :require_public_and_member_above
|
|
before_action :find_dataset, only: [:update, :show]
|
|
|
|
def create
|
|
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
|
|
end
|
|
|
|
def update
|
|
@project_dataset.attributes = dataset_params
|
|
if @project_dataset.save!
|
|
render_ok
|
|
else
|
|
render_error("更新数据集失败!")
|
|
end
|
|
end
|
|
|
|
def show
|
|
@attachments = @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
|
|
|
|
end |