1
0
mirror of https://github.com/rancher/norman.git synced 2025-09-12 04:29:33 +00:00

Many enhancements

This commit is contained in:
Darren Shepherd
2017-12-11 20:58:43 -07:00
parent eef2c6ee6e
commit 406c0d9999
12 changed files with 63 additions and 47 deletions

View File

@@ -102,19 +102,22 @@ func (s *Server) AddSchemas(schemas *types.Schemas) error {
return
}
for _, schema := range builtin.Schemas.Schemas() {
s.setupDefaults(schema)
s.schemas.AddSchema(schema)
s.addSchema(*schema)
}
})
for _, schema := range schemas.Schemas() {
s.setupDefaults(schema)
s.schemas.AddSchema(schema)
s.addSchema(*schema)
}
return s.schemas.Err()
}
func (s *Server) addSchema(schema types.Schema) {
s.setupDefaults(&schema)
s.schemas.AddSchema(schema)
}
func (s *Server) setupDefaults(schema *types.Schema) {
if schema.ActionHandler == nil {
schema.ActionHandler = s.Defaults.ActionHandler
@@ -184,19 +187,19 @@ func (s *Server) handle(rw http.ResponseWriter, req *http.Request) (*types.APICo
if action == nil && apiRequest.Type != "" {
var handler types.RequestHandler
switch apiRequest.Method {
case http.MethodGet:
if apiRequest.Link == "" {
switch apiRequest.Method {
case http.MethodGet:
handler = apiRequest.Schema.ListHandler
case http.MethodPost:
handler = apiRequest.Schema.CreateHandler
case http.MethodPut:
handler = apiRequest.Schema.UpdateHandler
case http.MethodDelete:
handler = apiRequest.Schema.DeleteHandler
}
} else {
handler = apiRequest.Schema.ListHandler
case http.MethodPost:
handler = apiRequest.Schema.CreateHandler
case http.MethodPut:
handler = apiRequest.Schema.UpdateHandler
case http.MethodDelete:
handler = apiRequest.Schema.DeleteHandler
}
if err != nil {
return apiRequest, err
}
if handler == nil {