diff --git a/app/controllers/api/v1/project_datasets_controller.rb b/app/controllers/api/v1/project_datasets_controller.rb new file mode 100644 index 000000000..995c1872e --- /dev/null +++ b/app/controllers/api/v1/project_datasets_controller.rb @@ -0,0 +1,10 @@ +class Api::V1::ProjectDatasetsController < Api::V1::BaseController + + def index + return render_error("请输入正确的项目id字符串") unless params[:ids].present? + ids = params[:ids].split(",") + @project_datasets = ProjectDataset.where(project_id: ids).includes(:license, :project) + @project_datasets = kaminari_unlimit_paginate(@project_datasets) + end + +end \ No newline at end of file diff --git a/app/views/api/v1/project_datasets/index.json.jbuilder b/app/views/api/v1/project_datasets/index.json.jbuilder new file mode 100644 index 000000000..29a84708d --- /dev/null +++ b/app/views/api/v1/project_datasets/index.json.jbuilder @@ -0,0 +1,14 @@ +json.total_count @project_datasets.total_count +json.project_datasets @project_datasets.each do |dataset| + json.(dataset, :id, :title, :description, :paper_content) + json.project do + json.partial! "api/v1/projects/simple_detail", project: dataset.project + end + if dataset.license.present? + json.license do + json.(dataset.license, :name, :content) + end + else + json.license nil + end +end \ No newline at end of file diff --git a/app/views/api/v1/projects/_simple_detail.json.jbuilder b/app/views/api/v1/projects/_simple_detail.json.jbuilder index 3eadaaf8f..15799aa13 100644 --- a/app/views/api/v1/projects/_simple_detail.json.jbuilder +++ b/app/views/api/v1/projects/_simple_detail.json.jbuilder @@ -1,7 +1,7 @@ if project.present? json.type project.project_type json.(project, - :description, :forked_count, :forked_from_project_id, :identifier, + :id, :description, :forked_count, :forked_from_project_id, :identifier, :issues_count, :pull_requests_count, :invite_code, :website, :platform, :name, :open_devops, :praises_count, :is_public, :status, :watchers_count, :ignore_id, :license_id, :project_category_id, :project_language_id) diff --git a/config/routes/api.rb b/config/routes/api.rb index ed1ea9b42..3f18235cd 100644 --- a/config/routes/api.rb +++ b/config/routes/api.rb @@ -145,7 +145,7 @@ defaults format: :json do resources :projects, only: [:index] resources :project_topics, only: [:index, :create, :destroy] - + resources :project_datasets, only: [:index] end end