Skip to content

Commit 9d688d3

Browse files
committed
feat: add extension to getting page of static
1 parent 30d03eb commit 9d688d3

File tree

14 files changed

+473
-213
lines changed

14 files changed

+473
-213
lines changed

cmd/server.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,7 @@ func (o *serverOption) runE(cmd *cobra.Command, args []string) (err error) {
366366
mux.HandlePath(http.MethodGet, "/healthz", frontEndHandlerWithLocation(o.consolePath))
367367
mux.HandlePath(http.MethodGet, "/favicon.ico", frontEndHandlerWithLocation(o.consolePath))
368368
mux.HandlePath(http.MethodGet, "/swagger.json", frontEndHandlerWithLocation(o.consolePath))
369+
mux.HandlePath(http.MethodGet, "/data/{data}", o.dataFromExtension(remoteServer.(server.UIExtensionServer)))
369370
mux.HandlePath(http.MethodGet, "/get", o.getAtestBinary)
370371
mux.HandlePath(http.MethodPost, "/runner/{suite}/{case}", service.WebRunnerHandler)
371372
mux.HandlePath(http.MethodGet, "/api/v1/sbom", service.SBomHandler)
@@ -531,6 +532,22 @@ func debugHandler(mux *runtime.ServeMux, remoteServer server.RunnerServer) {
531532
})
532533
}
533534

535+
func (o *serverOption) dataFromExtension(extServer server.UIExtensionServer) func(w http.ResponseWriter,
536+
r *http.Request, pathParams map[string]string) {
537+
return func(w http.ResponseWriter, r *http.Request, pathParams map[string]string) {
538+
ctx := r.Context()
539+
for k, v := range r.Header {
540+
if !strings.HasPrefix(k, "X-Extension-") {
541+
continue
542+
}
543+
ctx = context.WithValue(ctx, k, v)
544+
}
545+
extServer.GetPageOfStatic(ctx, &server.SimpleName{
546+
Name: pathParams["data"],
547+
})
548+
}
549+
}
550+
534551
func (o *serverOption) getAtestBinary(w http.ResponseWriter, r *http.Request, pathParams map[string]string) {
535552
name := util.EmptyThenDefault(r.URL.Query().Get("name"), "atest")
536553

pkg/server/remote_server.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1531,6 +1531,22 @@ func (s *server) GetPageOfCSS(ctx context.Context, in *SimpleName) (result *Comm
15311531
return
15321532
}
15331533

1534+
func (s *server) GetPageOfStatic(ctx context.Context, in *SimpleName) (result *CommonResult, err error) {
1535+
result = &CommonResult{}
1536+
extName := ctx.Value("X-Extension-Name")
1537+
if loader, ok := uiExtensionLoaders[extName.(string)]; ok {
1538+
if js, err := loader.GetPageOfStatic(in.Name); err == nil {
1539+
result.Message = js
1540+
result.Success = true
1541+
} else {
1542+
result.Message = err.Error()
1543+
}
1544+
} else {
1545+
result.Message = fmt.Sprintf("not found loader for %s", in.Name)
1546+
}
1547+
return
1548+
}
1549+
15341550
// implement the mock server
15351551

15361552
// Start starts the mock server

pkg/server/server.pb.go

Lines changed: 128 additions & 120 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: 103 additions & 0 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: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,11 @@ service UIExtension {
328328
get: "/api/v1/extension/pages/{name}/css"
329329
};
330330
}
331+
rpc GetPageOfStatic(SimpleName) returns (CommonResult) {
332+
option (google.api.http) = {
333+
get: "/api/v1/extension/pages/{name}/static"
334+
};
335+
}
331336
}
332337

333338
message Menu {

pkg/server/server_grpc.pb.go

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

pkg/testing/loader.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ type Loader interface {
3636
GetMenus() ([]*Menu, error)
3737
GetPageOfJS(string) (string, error)
3838
GetPageOfCSS(string) (string, error)
39+
GetPageOfStatic(string) (string, error)
3940
}
4041

4142
type Menu struct {

pkg/testing/loader_file.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -606,3 +606,8 @@ func (l *fileLoader) GetPageOfCSS(s string) (string, error) {
606606
// no need to implement
607607
return "", nil
608608
}
609+
610+
func (l *fileLoader) GetPageOfStatic(s string) (string, error) {
611+
// no need to implement
612+
return "", nil
613+
}

pkg/testing/loader_non.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,3 +196,7 @@ func (l *nonLoader) GetPageOfJS(s string) (string, error) {
196196
func (l *nonLoader) GetPageOfCSS(s string) (string, error) {
197197
return "", fmt.Errorf("not support")
198198
}
199+
200+
func (l *nonLoader) GetPageOfStatic(s string) (string, error) {
201+
return "", fmt.Errorf("not support")
202+
}

pkg/testing/remote/grpc_store.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,16 @@ func (g *gRPCLoader) GetPageOfCSS(name string) (result string, err error) {
417417
return
418418
}
419419

420+
func (g *gRPCLoader) GetPageOfStatic(name string) (result string, err error) {
421+
var data *server.CommonResult
422+
if data, err = g.client.GetPageOfStatic(g.ctx, &server.SimpleName{
423+
Name: name,
424+
}); err == nil && data != nil {
425+
result = data.Message
426+
}
427+
return
428+
}
429+
420430
func (g *gRPCLoader) Parse() (server *mock.Server, err error) {
421431
return
422432
}

0 commit comments

Comments
 (0)