新增:数据集部分接口
This commit is contained in:
		
							parent
							
								
									0a13387c1c
								
							
						
					
					
						commit
						dbfbee78fa
					
				| 
						 | 
				
			
			@ -0,0 +1,38 @@
 | 
			
		|||
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)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def find_dataset 
 | 
			
		||||
    @project_dataset = @project.project_dataset 
 | 
			
		||||
    return render_not_found unless @project_dataset.present?
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -95,6 +95,9 @@ class AttachmentsController < ApplicationController
 | 
			
		|||
        @attachment.disk_directory = month_folder
 | 
			
		||||
        @attachment.cloud_url = remote_path
 | 
			
		||||
        @attachment.uuid = SecureRandom.uuid
 | 
			
		||||
        @attachment.description = params[:description]
 | 
			
		||||
        @attachment.container_id = params[:container_id]
 | 
			
		||||
        @attachment.container_type = params[:container_type]
 | 
			
		||||
        @attachment.save!
 | 
			
		||||
      else
 | 
			
		||||
        logger.info "文件已存在,id = #{@attachment.id}, filename = #{@attachment.filename}"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,5 +17,6 @@
 | 
			
		|||
class ProjectDataset < ApplicationRecord
 | 
			
		||||
 | 
			
		||||
  belongs_to :project
 | 
			
		||||
  has_many :attachments, as: :container, dependent: :destroy
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
json.id attachment.uuid
 | 
			
		||||
json.title attachment.title
 | 
			
		||||
json.description attachment.description
 | 
			
		||||
json.filesize number_to_human_size(attachment.filesize)
 | 
			
		||||
json.is_pdf attachment.is_pdf?
 | 
			
		||||
json.url attachment.is_pdf? ? download_url(attachment,disposition:"inline") : download_url(attachment)
 | 
			
		||||
json.created_on attachment.created_on.strftime("%Y-%m-%d %H:%M:%S")
 | 
			
		||||
json.content_type attachment.content_type
 | 
			
		||||
json.creator do 
 | 
			
		||||
  json.partial! "api/v1/users/simple_user", locals: {user: attachment.author}
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -1,7 +1,8 @@
 | 
			
		|||
json.id attachment.id
 | 
			
		||||
json.id attachment.uuid
 | 
			
		||||
json.title attachment.title
 | 
			
		||||
json.description attachment.description
 | 
			
		||||
json.filesize number_to_human_size(attachment.filesize)
 | 
			
		||||
json.is_pdf attachment.is_pdf?
 | 
			
		||||
json.url attachment.is_pdf? ? download_url(attachment,disposition:"inline") : download_url(attachment)
 | 
			
		||||
json.created_on attachment.created_on.strftime("%Y-%m-%d %H:%M")
 | 
			
		||||
json.created_on attachment.created_on.strftime("%Y-%m-%d %H:%M:%S")
 | 
			
		||||
json.content_type attachment.content_type
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
json.(@project_dataset, :id, :title, :description)
 | 
			
		||||
json.attachments @attachments do |at| 
 | 
			
		||||
  json.partial! "api/v1/attachments/detail", locals: {attachment: at}
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -78,6 +78,7 @@ defaults format: :json do
 | 
			
		|||
 | 
			
		||||
          # projects文件夹下的
 | 
			
		||||
          scope module: :projects do 
 | 
			
		||||
            resource :dataset, only: [:create, :update, :show]
 | 
			
		||||
            resources :actions, module: 'actions' do
 | 
			
		||||
              collection do 
 | 
			
		||||
                post :disable
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue