Skip to content

Commit 2aa9cfb

Browse files
authored
Merge pull request #18947 from eduardoj/refactoring/backend_api_source_package
Refactor package controller calls to backend using `Backend::Api`
2 parents 5558846 + db67026 commit 2aa9cfb

File tree

3 files changed

+13
-24
lines changed

3 files changed

+13
-24
lines changed

src/api/app/controllers/source_package_controller.rb

Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,10 @@ def show
2020

2121
show_package_issues && return if params[:view] == 'issues'
2222

23-
# exec
24-
path = request.path_info
25-
path += build_query_from_hash(params, %i[rev linkrev emptylink
26-
expand view extension
27-
lastworking withlinked meta
28-
deleted parse arch
29-
repository product nofilename])
30-
pass_to_backend(path)
23+
backend_params = params.slice(*%i[rev linkrev emptylink deleted expand view extension lastworking withlinked meta product
24+
parse repository arch]).permit!.to_h
25+
26+
render xml: Backend::Api::Sources::Package.files(@target_project_name, @target_package_name, backend_params)
3127
end
3228

3329
# DELETE /source/:project/:package
@@ -61,22 +57,14 @@ def delete
6157
def show_file
6258
project_name = params[:project]
6359
package_name = params[:package] || '_project'
64-
file = params[:filename]
6560

6661
if params.key?(:deleted)
6762
if package_name == '_project'
6863
validate_read_access_of_deleted_project(project_name)
69-
pass_to_backend
70-
return
64+
else
65+
validate_read_access_of_deleted_package(project_name, package_name)
7166
end
72-
73-
validate_read_access_of_deleted_package(project_name, package_name)
74-
pass_to_backend
75-
return
76-
end
77-
78-
# a readable package, even on remote instance is enough here
79-
if package_name == '_project'
67+
elsif package_name == '_project' # a readable package, even on remote instance is enough here
8068
Project.get_by_name(project_name)
8169
else
8270
pack = Package.get_by_project_and_name(project_name, package_name)
@@ -87,9 +75,9 @@ def show_file
8775
end
8876
end
8977

90-
path = Package.source_path(project_name, package_name, file)
91-
path += build_query_from_hash(params, %i[rev meta deleted limit expand view])
92-
pass_to_backend(path)
78+
backend_params = params.slice(*%i[rev meta deleted limit expand view]).permit!.to_h
79+
80+
send_data(Backend::Api::Sources::File.content(project_name, package_name, params[:filename], backend_params))
9381
end
9482

9583
# PUT /source/:project/:package/:filename

src/api/app/lib/backend/api/sources/file.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ module File
88
# Returns the content of the source file
99
# @return [String]
1010
def self.content(project_name, package_name, file_name, options = {})
11-
http_get(['/source/:project/:package/:filename', project_name, package_name, file_name], params: options, accepted: %i[deleted expand meta rev view])
11+
http_get(['/source/:project/:package/:filename', project_name, package_name, file_name], params: options, accepted: %i[deleted expand meta rev view limit])
1212
end
1313

1414
# Returns the content of the source file

src/api/app/lib/backend/api/sources/package.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ def self.write_attributes(project_name, package_name, user_login, content)
2828
# @param options [Hash] Parameters to pass to the backend.
2929
# @return [String]
3030
def self.files(project_name, package_name, options = {})
31-
http_get(['/source/:project/:package', project_name, package_name], params: options, accepted: %i[expand rev view])
31+
accepted = %i[rev linkrev emptylink deleted expand view extension lastworking withlinked meta product parse repository arch]
32+
http_get(['/source/:project/:package', project_name, package_name], params: options, accepted: accepted)
3233
end
3334

3435
# Returns a file list of the products for a package

0 commit comments

Comments
 (0)