Skip to content

Commit cb4dacc

Browse files
committed
feat: support filter stores by kinds
1 parent b47ffd1 commit cb4dacc

File tree

9 files changed

+202
-143
lines changed

9 files changed

+202
-143
lines changed

console/atest-ui/src/components/TestSuiteCreationDialog.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ function loadStores() {
2525
'X-Auth': API.getToken()
2626
}
2727
}
28-
fetch('/api/v1/stores', requestOptions)
28+
fetch('/api/v1/stores?kind=store', requestOptions)
2929
.then(API.DefaultResponseProcess)
3030
.then(async (d) => {
3131
stores.value = d.data

console/atest-ui/src/components/TestSuiteImportDialog.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ function loadStores() {
5353
'X-Auth': API.getToken()
5454
}
5555
}
56-
fetch('/api/v1/stores', requestOptions)
56+
fetch('/api/v1/stores?kind=store', requestOptions)
5757
.then(API.DefaultResponseProcess)
5858
.then(async (d) => {
5959
stores.value = d.data

console/atest-ui/src/views/TestingPanel.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ function loadStores(lastSuitName?: string, lastCaseName?: string) {
166166
'X-Auth': API.getToken()
167167
}
168168
}
169-
fetch('/api/v1/stores', requestOptions)
169+
fetch('/api/v1/stores?kind=store', requestOptions)
170170
.then(API.DefaultResponseProcess)
171171
.then(async (d) => {
172172
stores.value = d.data

pkg/server/convert.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,11 @@ func ToGRPCStore(store testing.Store) (result *Store) {
2929
Name: store.Name,
3030
Owner: store.Owner,
3131
Kind: &StoreKind{
32-
Name: store.Kind.Name,
33-
Url: store.Kind.URL,
34-
Enabled: store.Kind.Enabled,
32+
Name: store.Kind.Name,
33+
Url: store.Kind.URL,
34+
Enabled: store.Kind.Enabled,
35+
Categories: store.Kind.Categories,
36+
Link: store.Kind.Link,
3537
},
3638
Description: store.Description,
3739
Url: store.URL,
@@ -57,8 +59,10 @@ func ToNormalStore(store *Store) (result testing.Store) {
5759
}
5860
if store.Kind != nil {
5961
result.Kind = testing.StoreKind{
60-
Name: store.Kind.Name,
61-
URL: store.Kind.Url,
62+
Name: store.Kind.Name,
63+
URL: store.Kind.Url,
64+
Link: store.Kind.Link,
65+
Categories: store.Kind.Categories,
6266
}
6367
}
6468
return

pkg/server/remote_server.go

Lines changed: 44 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1169,17 +1169,28 @@ func (s *server) GetStoreKinds(context.Context, *Empty) (kinds *StoreKinds, err
11691169
kinds = &StoreKinds{}
11701170
for _, store := range stores {
11711171
kinds.Data = append(kinds.Data, &StoreKind{
1172-
Name: store.Name,
1173-
Enabled: true,
1174-
Url: store.URL,
1175-
Link: store.Link,
1176-
Params: convertStoreKindParams(store.Params),
1172+
Name: store.Name,
1173+
Enabled: true,
1174+
Url: store.URL,
1175+
Link: store.Link,
1176+
Params: convertStoreKindParams(store.Params),
1177+
Categories: store.Categories,
1178+
Dependencies: convertStoreKindDependencies(store.Dependencies),
11771179
})
11781180
}
11791181
}
11801182
return
11811183
}
11821184

1185+
func convertStoreKindDependencies(dependencies []testing.StoreKindDependency) (result []*StoreKindDependency) {
1186+
for _, dependency := range dependencies {
1187+
result = append(result, &StoreKindDependency{
1188+
Name: dependency.Name,
1189+
})
1190+
}
1191+
return
1192+
}
1193+
11831194
func convertStoreKindParams(params []testing.StoreKindParam) (result []*StoreKindParam) {
11841195
for _, param := range params {
11851196
result = append(result, &StoreKindParam{
@@ -1192,21 +1203,44 @@ func convertStoreKindParams(params []testing.StoreKindParam) (result []*StoreKin
11921203
return
11931204
}
11941205

1195-
func (s *server) GetStores(ctx context.Context, in *Empty) (reply *Stores, err error) {
1206+
func (s *server) GetStores(ctx context.Context, in *SimpleQuery) (reply *Stores, err error) {
11961207
user := oauth.GetUserFromContext(ctx)
11971208
storeFactory := testing.NewStoreFactory(s.configDir)
11981209
var stores []testing.Store
11991210
var owner string
12001211
if user != nil {
12011212
owner = user.Name
12021213
}
1214+
1215+
var kinds *StoreKinds
1216+
if kinds, err = s.GetStoreKinds(ctx, &Empty{}); err != nil {
1217+
return
1218+
}
1219+
12031220
if stores, err = storeFactory.GetStoresByOwner(owner); err == nil {
12041221
reply = &Stores{
12051222
Data: make([]*Store, 0),
12061223
}
12071224
wg := sync.WaitGroup{}
12081225
mu := sync.Mutex{}
12091226
for _, item := range stores {
1227+
skip := false
1228+
for _, kind := range kinds.Data {
1229+
if in != nil && in.Kind != "" && !slices.Contains(kind.Categories, in.Kind) {
1230+
skip = true
1231+
break
1232+
}
1233+
1234+
if item.Kind.Name == kind.Name {
1235+
item.Kind.Categories = kind.Categories
1236+
item.Kind.Link = kind.Link
1237+
break
1238+
}
1239+
}
1240+
if skip {
1241+
continue
1242+
}
1243+
12101244
wg.Add(1)
12111245
go func() {
12121246
defer wg.Done()
@@ -1231,8 +1265,10 @@ func (s *server) GetStores(ctx context.Context, in *Empty) (reply *Stores, err e
12311265
return strings.Compare(a.Name, b.Name)
12321266
})
12331267
reply.Data = append(reply.Data, &Store{
1234-
Name: "local",
1235-
Kind: &StoreKind{},
1268+
Name: "local",
1269+
Kind: &StoreKind{
1270+
Categories: []string{"store"},
1271+
},
12361272
Ready: true,
12371273
})
12381274
}

pkg/server/server.pb.go

Lines changed: 119 additions & 118 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/server/server.pb.gw.go

Lines changed: 20 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/server/server.proto

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ service Runner {
246246
get: "/api/v1/stores/kinds"
247247
};
248248
}
249-
rpc GetStores(Empty) returns (Stores) {
249+
rpc GetStores(SimpleQuery) returns (Stores) {
250250
option (google.api.http) = {
251251
get: "/api/v1/stores"
252252
};

pkg/server/server_grpc.pb.go

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)