Skip to content

Commit f6d48f5

Browse files
committed
Allow additional orderBy options when searching
1 parent f73284d commit f6d48f5

File tree

6 files changed

+39
-34
lines changed

6 files changed

+39
-34
lines changed

app/src/main/java/io/apicurio/registry/storage/impl/sql/AbstractSqlRegistryStorage.java

+14-25
Original file line numberDiff line numberDiff line change
@@ -1066,17 +1066,14 @@ public ArtifactSearchResultsDto searchArtifacts(Set<SearchFilter> filters, Order
10661066
case name:
10671067
orderByQuery.append(" ORDER BY coalesce(a.name, a.artifactId)");
10681068
break;
1069-
case artifactId:
1070-
orderByQuery.append(" ORDER BY a.artifactId");
1069+
case artifactType:
1070+
orderByQuery.append(" ORDER BY a.type");
10711071
break;
1072+
case groupId:
1073+
case artifactId:
10721074
case createdOn:
1073-
orderByQuery.append(" ORDER BY a.createdOn");
1074-
break;
10751075
case modifiedOn:
1076-
orderByQuery.append(" ORDER BY a.modifiedOn");
1077-
break;
1078-
case artifactType:
1079-
orderByQuery.append(" ORDER BY a.type");
1076+
orderByQuery.append(" ORDER BY a." + orderBy.name());
10801077
break;
10811078
default:
10821079
throw new RuntimeException("Sort by " + orderBy.name() + " not supported.");
@@ -1681,28 +1678,21 @@ public VersionSearchResultsDto searchVersions(Set<SearchFilter> filters, OrderBy
16811678
where.append(")");
16821679
}
16831680

1684-
// Add order by to artifact query
1681+
// Add order by to query
16851682
switch (orderBy) {
1686-
case globalId:
1687-
orderByQuery.append(" ORDER BY v.globalId");
1683+
case name:
1684+
orderByQuery.append(" ORDER BY coalesce(v.name, v.version)");
16881685
break;
16891686
case groupId:
1690-
orderByQuery.append(" ORDER BY v.groupId");
1691-
break;
1687+
case artifactId:
16921688
case version:
1693-
orderByQuery.append(" ORDER BY v.version");
1694-
break;
1695-
case name:
1696-
orderByQuery.append(" ORDER BY v.name");
1697-
break;
1689+
case globalId:
16981690
case createdOn:
1699-
orderByQuery.append(" ORDER BY v.createdOn");
1700-
break;
17011691
case modifiedOn:
1702-
orderByQuery.append(" ORDER BY v.modifiedOn");
1692+
orderByQuery.append(" ORDER BY v." + orderBy.name());
17031693
break;
17041694
default:
1705-
break;
1695+
throw new RuntimeException("Sort by " + orderBy.name() + " not supported.");
17061696
}
17071697
orderByQuery.append(" ").append(orderDirection.name());
17081698

@@ -2869,13 +2859,12 @@ public GroupSearchResultsDto searchGroups(Set<SearchFilter> filters, OrderBy ord
28692859
// Add order by to artifact query
28702860
switch (orderBy) {
28712861
case groupId:
2872-
orderByQuery.append(" ORDER BY g.groupId");
2873-
break;
28742862
case createdOn:
2863+
case modifiedOn:
28752864
orderByQuery.append(" ORDER BY g.").append(orderBy.name());
28762865
break;
28772866
default:
2878-
break;
2867+
throw new RuntimeException("Sort by " + orderBy.name() + " not supported.");
28792868
}
28802869
orderByQuery.append(" ").append(orderDirection.name());
28812870

common/src/main/resources/META-INF/openapi.json

+5-1
Original file line numberDiff line numberDiff line change
@@ -3676,6 +3676,7 @@
36763676
"ArtifactSortBy": {
36773677
"description": "",
36783678
"enum": [
3679+
"groupId",
36793680
"artifactId",
36803681
"createdOn",
36813682
"modifiedOn",
@@ -5092,6 +5093,8 @@
50925093
"VersionSortBy": {
50935094
"description": "",
50945095
"enum": [
5096+
"groupId",
5097+
"artifactId",
50955098
"version",
50965099
"name",
50975100
"createdOn",
@@ -5104,7 +5107,8 @@
51045107
"description": "",
51055108
"enum": [
51065109
"groupId",
5107-
"createdOn"
5110+
"createdOn",
5111+
"modifiedOn"
51085112
],
51095113
"type": "string"
51105114
},

go-sdk/pkg/registryclient-v3/kiota-lock.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"descriptionHash": "D346A2A9A40F1B86E55F338BFB56645B0AE0D95EF3B3E66B14920108B20F119845B8EF22305D5C70D8DFDCC4BA0E39B5A78BD1F19D81AB90587F206B2470163D",
2+
"descriptionHash": "6D428EDE13C8C05F3E9350ADBED7F44A1E6FFE2930A5F0EF8AF63340F89684254673F58AD88E237A968713F30D33CF09EB59BC3D3F08969CB79C3C4444A972C8",
33
"descriptionLocation": "../../v3.json",
44
"lockFileVersion": "1.0.0",
55
"kiotaVersion": "1.19.1",

go-sdk/pkg/registryclient-v3/models/artifact_sort_by.go

+6-3
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,22 @@ package models
33
type ArtifactSortBy int
44

55
const (
6-
ARTIFACTID_ARTIFACTSORTBY ArtifactSortBy = iota
6+
GROUPID_ARTIFACTSORTBY ArtifactSortBy = iota
7+
ARTIFACTID_ARTIFACTSORTBY
78
CREATEDON_ARTIFACTSORTBY
89
MODIFIEDON_ARTIFACTSORTBY
910
ARTIFACTTYPE_ARTIFACTSORTBY
1011
NAME_ARTIFACTSORTBY
1112
)
1213

1314
func (i ArtifactSortBy) String() string {
14-
return []string{"artifactId", "createdOn", "modifiedOn", "artifactType", "name"}[i]
15+
return []string{"groupId", "artifactId", "createdOn", "modifiedOn", "artifactType", "name"}[i]
1516
}
1617
func ParseArtifactSortBy(v string) (any, error) {
17-
result := ARTIFACTID_ARTIFACTSORTBY
18+
result := GROUPID_ARTIFACTSORTBY
1819
switch v {
20+
case "groupId":
21+
result = GROUPID_ARTIFACTSORTBY
1922
case "artifactId":
2023
result = ARTIFACTID_ARTIFACTSORTBY
2124
case "createdOn":

go-sdk/pkg/registryclient-v3/models/group_sort_by.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ type GroupSortBy int
55
const (
66
GROUPID_GROUPSORTBY GroupSortBy = iota
77
CREATEDON_GROUPSORTBY
8+
MODIFIEDON_GROUPSORTBY
89
)
910

1011
func (i GroupSortBy) String() string {
11-
return []string{"groupId", "createdOn"}[i]
12+
return []string{"groupId", "createdOn", "modifiedOn"}[i]
1213
}
1314
func ParseGroupSortBy(v string) (any, error) {
1415
result := GROUPID_GROUPSORTBY
@@ -17,6 +18,8 @@ func ParseGroupSortBy(v string) (any, error) {
1718
result = GROUPID_GROUPSORTBY
1819
case "createdOn":
1920
result = CREATEDON_GROUPSORTBY
21+
case "modifiedOn":
22+
result = MODIFIEDON_GROUPSORTBY
2023
default:
2124
return nil, nil
2225
}

go-sdk/pkg/registryclient-v3/models/version_sort_by.go

+9-3
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,25 @@ package models
33
type VersionSortBy int
44

55
const (
6-
VERSION_VERSIONSORTBY VersionSortBy = iota
6+
GROUPID_VERSIONSORTBY VersionSortBy = iota
7+
ARTIFACTID_VERSIONSORTBY
8+
VERSION_VERSIONSORTBY
79
NAME_VERSIONSORTBY
810
CREATEDON_VERSIONSORTBY
911
MODIFIEDON_VERSIONSORTBY
1012
GLOBALID_VERSIONSORTBY
1113
)
1214

1315
func (i VersionSortBy) String() string {
14-
return []string{"version", "name", "createdOn", "modifiedOn", "globalId"}[i]
16+
return []string{"groupId", "artifactId", "version", "name", "createdOn", "modifiedOn", "globalId"}[i]
1517
}
1618
func ParseVersionSortBy(v string) (any, error) {
17-
result := VERSION_VERSIONSORTBY
19+
result := GROUPID_VERSIONSORTBY
1820
switch v {
21+
case "groupId":
22+
result = GROUPID_VERSIONSORTBY
23+
case "artifactId":
24+
result = ARTIFACTID_VERSIONSORTBY
1925
case "version":
2026
result = VERSION_VERSIONSORTBY
2127
case "name":

0 commit comments

Comments
 (0)