diff options
Diffstat (limited to 'src/ncm/api/netcontrolintenthandler.go')
-rw-r--r-- | src/ncm/api/netcontrolintenthandler.go | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/ncm/api/netcontrolintenthandler.go b/src/ncm/api/netcontrolintenthandler.go index c59a389b..48ef1de2 100644 --- a/src/ncm/api/netcontrolintenthandler.go +++ b/src/ncm/api/netcontrolintenthandler.go @@ -196,3 +196,35 @@ func (h netcontrolintentHandler) deleteHandler(w http.ResponseWriter, r *http.Re w.WriteHeader(http.StatusNoContent) } + +// Apply handles POST operations to Apply a particular NetControlIntent to the App Context +func (h netcontrolintentHandler) applyHandler(w http.ResponseWriter, r *http.Request) { + vars := mux.Vars(r) + name := vars["name"] + project := vars["project"] + compositeApp := vars["composite-app-name"] + compositeAppVersion := vars["version"] + + var aci struct { + AppContextId string `json:"appContextId"` + } + + err := json.NewDecoder(r.Body).Decode(&aci) + + switch { + case err == io.EOF: + http.Error(w, "Empty body", http.StatusBadRequest) + return + case err != nil: + http.Error(w, err.Error(), http.StatusUnprocessableEntity) + return + } + + err = h.client.ApplyNetControlIntent(name, project, compositeApp, compositeAppVersion, aci.AppContextId) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + w.WriteHeader(http.StatusNoContent) +} |