Skip to content

Commit 5f6a905

Browse files
committed
Add dependent_package_kinds api endpoint
1 parent 08292c2 commit 5f6a905

File tree

3 files changed

+49
-0
lines changed

3 files changed

+49
-0
lines changed

app/controllers/api/v1/packages_controller.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,20 @@ def dependent_packages
132132
fresh_when @packages, public: true
133133
end
134134

135+
def dependent_package_kinds
136+
@registry = Registry.find_by_name!(params[:registry_id])
137+
@package = @registry.packages.find_by_name!(params[:id])
138+
139+
if params[:latest].present?
140+
@kinds = @package.latest_dependent_package_kinds
141+
else
142+
@kinds = @package.dependent_package_kinds
143+
end
144+
145+
fresh_when @package, public: true
146+
render json: @kinds
147+
end
148+
135149
def related_packages
136150
@registry = Registry.find_by_name!(params[:registry_id])
137151
@package = @registry.packages.find_by_name!(params[:id])

config/routes.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
resources :versions, only: [:index, :show], constraints: { id: /.*/ }
4444
member do
4545
get :dependent_packages, to: 'packages#dependent_packages'
46+
get :dependent_package_kinds, to: 'packages#dependent_package_kinds'
4647
get :related_packages, to: 'packages#related_packages'
4748
get :ping, to: 'packages#ping'
4849
get :version_numbers, to: 'versions#version_numbers'

openapi/api/v1/openapi.yaml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -754,6 +754,40 @@ paths:
754754
type: array
755755
items:
756756
$ref: '#/components/schemas/Package'
757+
/registries/{registryName}/packages/{packageName}/dependent_package_kinds:
758+
get:
759+
summary: get a list of dependency kinds for a package
760+
operationId: getRegistryPackageDependentPackageKinds
761+
tags:
762+
- packages
763+
parameters:
764+
- in: path
765+
name: registryName
766+
schema:
767+
type: string
768+
required: true
769+
description: name of registry
770+
- in: path
771+
name: packageName
772+
schema:
773+
type: string
774+
required: true
775+
description: name of package
776+
- name: latest
777+
in: query
778+
description: filter by latest version
779+
required: false
780+
schema:
781+
type: boolean
782+
responses:
783+
200:
784+
description: OK
785+
content:
786+
application/json:
787+
schema:
788+
type: array
789+
items:
790+
type: string
757791
/registries/{registryName}/packages/{packageName}/related_packages:
758792
get:
759793
summary: get a list of packages that are related to a package

0 commit comments

Comments
 (0)