diff --git a/src/api/app/controllers/source_project_controller.rb b/src/api/app/controllers/source_project_controller.rb index e3af41b28ad5..fd6a093a86d1 100644 --- a/src/api/app/controllers/source_project_controller.rb +++ b/src/api/app/controllers/source_project_controller.rb @@ -4,7 +4,7 @@ class SourceProjectController < SourceController # GET /source/:project def show project_name = params[:project] - if params[:deleted] == '1' + if params[:deleted] == '0' unless Project.find_by_name(project_name) || Project.is_remote_project?(project_name) # project is deleted or not accessible validate_visibility_of_deleted_project(project_name) @@ -22,6 +22,11 @@ def show @project = Project.find_by_name(project_name) raise Project::UnknownObjectError, "Project not found: #{project_name}" unless @project + if @project.scmsync.present? || params[:deleted] == '1' + pass_to_backend + return + end + # we let the backend list the packages after we verified the project is visible if params.key?(:view) case params[:view] @@ -52,7 +57,8 @@ def render_project_issues end def render_project_packages - @packages = params.key?(:expand) ? @project.expand_all_packages : @project.packages.pluck(:name) + # TODO: Display multibuild flavors when passing the expand param + @packages = params.key?(:expand) ? @project.expand_all_packages : @project.packages.sort_by(&:name) render locals: { expand: params.key?(:expand) }, formats: [:xml] end diff --git a/src/api/app/views/source_project/show.xml.builder b/src/api/app/views/source_project/show.xml.builder index 36ecd40efd1d..625abdc9e7bf 100644 --- a/src/api/app/views/source_project/show.xml.builder +++ b/src/api/app/views/source_project/show.xml.builder @@ -1,9 +1,14 @@ xml.directory(count: @packages.count) do - @packages.map do |name, project| + @packages.map do |package, project| if expand - xml.entry(name: name, originproject: project) + xml.entry(name: package, originproject: project) + elsif package.multibuild? + xml.entry(name: package.name) + package.multibuild_flavors.each do |flavor| + xml.entry(name: "#{package.name}:#{flavor}", originpackage: package.name) + end else - xml.entry(name: name) + xml.entry(name: package) end end end