|
@@ -13,7 +13,7 @@ import (
|
|
|
"github.com/rakyll/statik/fs"
|
|
"github.com/rakyll/statik/fs"
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
-func NewHandler(handlerOpts ...HandlerOption) http.Handler {
|
|
|
|
|
|
|
+func NewHandler(servicesList []string, handlerOpts ...HandlerOption) http.Handler {
|
|
|
opts := &options{
|
|
opts := &options{
|
|
|
// Compatible with default UseJSONNamesForFields is true
|
|
// Compatible with default UseJSONNamesForFields is true
|
|
|
generatorOptions: []generator.Option{generator.UseJSONNamesForFields(true)},
|
|
generatorOptions: []generator.Option{generator.UseJSONNamesForFields(true)},
|
|
@@ -27,15 +27,27 @@ func NewHandler(handlerOpts ...HandlerOption) http.Handler {
|
|
|
r := mux.NewRouter()
|
|
r := mux.NewRouter()
|
|
|
|
|
|
|
|
r.HandleFunc("/q/services", func(w http.ResponseWriter, r *http.Request) {
|
|
r.HandleFunc("/q/services", func(w http.ResponseWriter, r *http.Request) {
|
|
|
- services, err := service.ListServices(r.Context(), &metadata.ListServicesRequest{})
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- w.WriteHeader(500)
|
|
|
|
|
- w.Write([]byte(err.Error()))
|
|
|
|
|
- return
|
|
|
|
|
|
|
+ if len(servicesList) > 0 {
|
|
|
|
|
+ w.Header().Set("Content-Type", "application/json")
|
|
|
|
|
+ w.WriteHeader(200)
|
|
|
|
|
+ list := []string{
|
|
|
|
|
+ "api.kuban.Kuban",
|
|
|
|
|
+ }
|
|
|
|
|
+ reply := map[string][]string{
|
|
|
|
|
+ "services": list,
|
|
|
|
|
+ }
|
|
|
|
|
+ json.NewEncoder(w).Encode(reply)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ services, err := service.ListServices(r.Context(), &metadata.ListServicesRequest{})
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ w.WriteHeader(500)
|
|
|
|
|
+ w.Write([]byte(err.Error()))
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ w.Header().Set("Content-Type", "application/json")
|
|
|
|
|
+ w.WriteHeader(200)
|
|
|
|
|
+ json.NewEncoder(w).Encode(services)
|
|
|
}
|
|
}
|
|
|
- w.Header().Set("Content-Type", "application/json")
|
|
|
|
|
- w.WriteHeader(200)
|
|
|
|
|
- json.NewEncoder(w).Encode(services)
|
|
|
|
|
}).Methods("GET")
|
|
}).Methods("GET")
|
|
|
|
|
|
|
|
r.HandleFunc("/q/service/{name}", func(w http.ResponseWriter, r *http.Request) {
|
|
r.HandleFunc("/q/service/{name}", func(w http.ResponseWriter, r *http.Request) {
|