diff --git a/app/src/main/java/io/apicurio/registry/storage/impl/sql/AbstractSqlRegistryStorage.java b/app/src/main/java/io/apicurio/registry/storage/impl/sql/AbstractSqlRegistryStorage.java index 970740e4b9..75cd930e13 100644 --- a/app/src/main/java/io/apicurio/registry/storage/impl/sql/AbstractSqlRegistryStorage.java +++ b/app/src/main/java/io/apicurio/registry/storage/impl/sql/AbstractSqlRegistryStorage.java @@ -1066,17 +1066,14 @@ public ArtifactSearchResultsDto searchArtifacts(Set filters, Order case name: orderByQuery.append(" ORDER BY coalesce(a.name, a.artifactId)"); break; - case artifactId: - orderByQuery.append(" ORDER BY a.artifactId"); + case artifactType: + orderByQuery.append(" ORDER BY a.type"); break; + case groupId: + case artifactId: case createdOn: - orderByQuery.append(" ORDER BY a.createdOn"); - break; case modifiedOn: - orderByQuery.append(" ORDER BY a.modifiedOn"); - break; - case artifactType: - orderByQuery.append(" ORDER BY a.type"); + orderByQuery.append(" ORDER BY a." + orderBy.name()); break; default: throw new RuntimeException("Sort by " + orderBy.name() + " not supported."); @@ -1681,28 +1678,21 @@ public VersionSearchResultsDto searchVersions(Set filters, OrderBy where.append(")"); } - // Add order by to artifact query + // Add order by to query switch (orderBy) { - case globalId: - orderByQuery.append(" ORDER BY v.globalId"); + case name: + orderByQuery.append(" ORDER BY coalesce(v.name, v.version)"); break; case groupId: - orderByQuery.append(" ORDER BY v.groupId"); - break; + case artifactId: case version: - orderByQuery.append(" ORDER BY v.version"); - break; - case name: - orderByQuery.append(" ORDER BY v.name"); - break; + case globalId: case createdOn: - orderByQuery.append(" ORDER BY v.createdOn"); - break; case modifiedOn: - orderByQuery.append(" ORDER BY v.modifiedOn"); + orderByQuery.append(" ORDER BY v." + orderBy.name()); break; default: - break; + throw new RuntimeException("Sort by " + orderBy.name() + " not supported."); } orderByQuery.append(" ").append(orderDirection.name()); @@ -2869,13 +2859,12 @@ public GroupSearchResultsDto searchGroups(Set filters, OrderBy ord // Add order by to artifact query switch (orderBy) { case groupId: - orderByQuery.append(" ORDER BY g.groupId"); - break; case createdOn: + case modifiedOn: orderByQuery.append(" ORDER BY g.").append(orderBy.name()); break; default: - break; + throw new RuntimeException("Sort by " + orderBy.name() + " not supported."); } orderByQuery.append(" ").append(orderDirection.name()); diff --git a/common/src/main/resources/META-INF/openapi.json b/common/src/main/resources/META-INF/openapi.json index b3f39d737b..a086af219e 100644 --- a/common/src/main/resources/META-INF/openapi.json +++ b/common/src/main/resources/META-INF/openapi.json @@ -3676,6 +3676,7 @@ "ArtifactSortBy": { "description": "", "enum": [ + "groupId", "artifactId", "createdOn", "modifiedOn", @@ -5092,6 +5093,8 @@ "VersionSortBy": { "description": "", "enum": [ + "groupId", + "artifactId", "version", "name", "createdOn", @@ -5104,7 +5107,8 @@ "description": "", "enum": [ "groupId", - "createdOn" + "createdOn", + "modifiedOn" ], "type": "string" }, diff --git a/go-sdk/pkg/registryclient-v3/kiota-lock.json b/go-sdk/pkg/registryclient-v3/kiota-lock.json index 3dadd4f107..6884f617f8 100644 --- a/go-sdk/pkg/registryclient-v3/kiota-lock.json +++ b/go-sdk/pkg/registryclient-v3/kiota-lock.json @@ -1,5 +1,5 @@ { - "descriptionHash": "D346A2A9A40F1B86E55F338BFB56645B0AE0D95EF3B3E66B14920108B20F119845B8EF22305D5C70D8DFDCC4BA0E39B5A78BD1F19D81AB90587F206B2470163D", + "descriptionHash": "6D428EDE13C8C05F3E9350ADBED7F44A1E6FFE2930A5F0EF8AF63340F89684254673F58AD88E237A968713F30D33CF09EB59BC3D3F08969CB79C3C4444A972C8", "descriptionLocation": "../../v3.json", "lockFileVersion": "1.0.0", "kiotaVersion": "1.19.1", diff --git a/go-sdk/pkg/registryclient-v3/models/artifact_sort_by.go b/go-sdk/pkg/registryclient-v3/models/artifact_sort_by.go index 8c3058d819..fe88263617 100644 --- a/go-sdk/pkg/registryclient-v3/models/artifact_sort_by.go +++ b/go-sdk/pkg/registryclient-v3/models/artifact_sort_by.go @@ -3,7 +3,8 @@ package models type ArtifactSortBy int const ( - ARTIFACTID_ARTIFACTSORTBY ArtifactSortBy = iota + GROUPID_ARTIFACTSORTBY ArtifactSortBy = iota + ARTIFACTID_ARTIFACTSORTBY CREATEDON_ARTIFACTSORTBY MODIFIEDON_ARTIFACTSORTBY ARTIFACTTYPE_ARTIFACTSORTBY @@ -11,11 +12,13 @@ const ( ) func (i ArtifactSortBy) String() string { - return []string{"artifactId", "createdOn", "modifiedOn", "artifactType", "name"}[i] + return []string{"groupId", "artifactId", "createdOn", "modifiedOn", "artifactType", "name"}[i] } func ParseArtifactSortBy(v string) (any, error) { - result := ARTIFACTID_ARTIFACTSORTBY + result := GROUPID_ARTIFACTSORTBY switch v { + case "groupId": + result = GROUPID_ARTIFACTSORTBY case "artifactId": result = ARTIFACTID_ARTIFACTSORTBY case "createdOn": diff --git a/go-sdk/pkg/registryclient-v3/models/group_sort_by.go b/go-sdk/pkg/registryclient-v3/models/group_sort_by.go index cd9e176e53..c771895e10 100644 --- a/go-sdk/pkg/registryclient-v3/models/group_sort_by.go +++ b/go-sdk/pkg/registryclient-v3/models/group_sort_by.go @@ -5,10 +5,11 @@ type GroupSortBy int const ( GROUPID_GROUPSORTBY GroupSortBy = iota CREATEDON_GROUPSORTBY + MODIFIEDON_GROUPSORTBY ) func (i GroupSortBy) String() string { - return []string{"groupId", "createdOn"}[i] + return []string{"groupId", "createdOn", "modifiedOn"}[i] } func ParseGroupSortBy(v string) (any, error) { result := GROUPID_GROUPSORTBY @@ -17,6 +18,8 @@ func ParseGroupSortBy(v string) (any, error) { result = GROUPID_GROUPSORTBY case "createdOn": result = CREATEDON_GROUPSORTBY + case "modifiedOn": + result = MODIFIEDON_GROUPSORTBY default: return nil, nil } diff --git a/go-sdk/pkg/registryclient-v3/models/version_sort_by.go b/go-sdk/pkg/registryclient-v3/models/version_sort_by.go index 878075083c..2d8a3290a4 100644 --- a/go-sdk/pkg/registryclient-v3/models/version_sort_by.go +++ b/go-sdk/pkg/registryclient-v3/models/version_sort_by.go @@ -3,7 +3,9 @@ package models type VersionSortBy int const ( - VERSION_VERSIONSORTBY VersionSortBy = iota + GROUPID_VERSIONSORTBY VersionSortBy = iota + ARTIFACTID_VERSIONSORTBY + VERSION_VERSIONSORTBY NAME_VERSIONSORTBY CREATEDON_VERSIONSORTBY MODIFIEDON_VERSIONSORTBY @@ -11,11 +13,15 @@ const ( ) func (i VersionSortBy) String() string { - return []string{"version", "name", "createdOn", "modifiedOn", "globalId"}[i] + return []string{"groupId", "artifactId", "version", "name", "createdOn", "modifiedOn", "globalId"}[i] } func ParseVersionSortBy(v string) (any, error) { - result := VERSION_VERSIONSORTBY + result := GROUPID_VERSIONSORTBY switch v { + case "groupId": + result = GROUPID_VERSIONSORTBY + case "artifactId": + result = ARTIFACTID_VERSIONSORTBY case "version": result = VERSION_VERSIONSORTBY case "name":