Skip to content

Commit 8ab2e3d

Browse files
committed
add extension server endpoint
1 parent 2fb94a4 commit 8ab2e3d

File tree

6 files changed

+54
-1
lines changed

6 files changed

+54
-1
lines changed

cmd/server.go

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -367,8 +367,25 @@ func (o *serverOption) runE(cmd *cobra.Command, args []string) (err error) {
367367
mux.HandlePath(http.MethodGet, "/favicon.ico", frontEndHandlerWithLocation(o.consolePath))
368368
mux.HandlePath(http.MethodGet, "/swagger.json", frontEndHandlerWithLocation(o.consolePath))
369369
mux.HandlePath(http.MethodGet, "/data/{data}", o.dataFromExtension(remoteServer.(server.UIExtensionServer)))
370-
mux.HandlePath(http.MethodGet, "/extensionProxy/{*}", func(w http.ResponseWriter, r *http.Request, pathParams map[string]string) {
370+
mux.HandlePath(http.MethodGet, "/extensionProxy/{extension}/{path}", func(w http.ResponseWriter, r *http.Request, pathParams map[string]string) {
371371
fmt.Println(pathParams)
372+
extServer := remoteServer.(server.UIExtensionServer)
373+
fmt.Println(extServer)
374+
375+
ctx := r.Context()
376+
for k, v := range r.Header {
377+
if !strings.HasPrefix(k, "X-Extension-") {
378+
continue
379+
}
380+
ctx = context.WithValue(ctx, k, v)
381+
}
382+
383+
resp, err := extServer.GetPageOfServer(ctx, &server.SimpleName{Name: pathParams["extension"]})
384+
if err != nil {
385+
fmt.Println(err)
386+
return
387+
}
388+
fmt.Println(resp)
372389
})
373390
mux.HandlePath(http.MethodGet, "/get", o.getAtestBinary)
374391
mux.HandlePath(http.MethodPost, "/runner/{suite}/{case}", service.WebRunnerHandler)

pkg/server/remote_server.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1492,6 +1492,7 @@ func (s *server) GetMenus(ctx context.Context, _ *Empty) (result *MenuList, err
14921492
Index: menu.Index,
14931493
})
14941494
uiExtensionLoaders[menu.Index] = loader
1495+
fmt.Println("menu", menu.Index)
14951496
}
14961497
}
14971498
}
@@ -1570,6 +1571,21 @@ func (s *server) GetPageOfStatic(ctx context.Context, in *SimpleName) (result *C
15701571
return
15711572
}
15721573

1574+
func (s *server) GetPageOfServer(ctx context.Context, in *SimpleName) (result *CommonResult, err error) {
1575+
result = &CommonResult{}
1576+
if loader, ok := uiExtensionLoaders[in.Name]; ok {
1577+
if js, err := loader.GetPageOfServer(in.Name); err == nil {
1578+
result.Message = js
1579+
result.Success = true
1580+
} else {
1581+
result.Message = err.Error()
1582+
}
1583+
} else {
1584+
result.Message = fmt.Sprintf("not found loader for %s", in.Name)
1585+
}
1586+
return
1587+
}
1588+
15731589
// implement the mock server
15741590

15751591
// Start starts the mock server

pkg/testing/loader.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ type Loader interface {
3737
GetPageOfJS(string) (string, error)
3838
GetPageOfCSS(string) (string, error)
3939
GetPageOfStatic(string) (string, error)
40+
GetPageOfServer(string) (string, error)
4041
}
4142

4243
type Menu struct {

pkg/testing/loader_file.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -611,3 +611,8 @@ func (l *fileLoader) GetPageOfStatic(s string) (string, error) {
611611
// no need to implement
612612
return "", nil
613613
}
614+
615+
func (l *fileLoader) GetPageOfServer(s string) (string, error) {
616+
// no need to implement
617+
return "", nil
618+
}

pkg/testing/loader_non.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,3 +200,7 @@ func (l *nonLoader) GetPageOfCSS(s string) (string, error) {
200200
func (l *nonLoader) GetPageOfStatic(s string) (string, error) {
201201
return "", fmt.Errorf("not support")
202202
}
203+
204+
func (l *nonLoader) GetPageOfServer(s string) (string, error) {
205+
return "", fmt.Errorf("not support")
206+
}

pkg/testing/remote/grpc_store.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,16 @@ func (g *gRPCLoader) GetPageOfStatic(name string) (result string, err error) {
447447
return
448448
}
449449

450+
func (g *gRPCLoader) GetPageOfServer(name string) (result string, err error) {
451+
var data *server.CommonResult
452+
if data, err = g.client.GetPageOfServer(g.ctx, &server.SimpleName{
453+
Name: name,
454+
}); err == nil && data != nil {
455+
result = data.Message
456+
}
457+
return
458+
}
459+
450460
func (g *gRPCLoader) Parse() (server *mock.Server, err error) {
451461
return
452462
}

0 commit comments

Comments
 (0)