From d2d602ab89b87f68fd49cb6f3ef72693d7aa14b9 Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 12 Apr 2024 10:24:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E9=A1=B9=E7=9B=AEid=E6=9F=A5=E8=AF=A2=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=9B=86=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/v1/project_datasets_controller.rb | 10 ++++++++++ .../api/v1/project_datasets/index.json.jbuilder | 14 ++++++++++++++ .../api/v1/projects/_simple_detail.json.jbuilder | 2 +- config/routes/api.rb | 2 +- 4 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 app/controllers/api/v1/project_datasets_controller.rb create mode 100644 app/views/api/v1/project_datasets/index.json.jbuilder 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