diff --git a/backend/services/controller/internal/api/api.go b/backend/services/controller/internal/api/api.go index 22adb20..ca7bd07 100644 --- a/backend/services/controller/internal/api/api.go +++ b/backend/services/controller/internal/api/api.go @@ -57,7 +57,8 @@ func StartApi(a Api) { iot.HandleFunc("/{sn}/set", a.deviceUpdateMsg).Methods("PUT") iot.HandleFunc("/{sn}/parameters", a.deviceGetSupportedParametersMsg).Methods("PUT") iot.HandleFunc("/{sn}/instances", a.deviceGetParameterInstances).Methods("PUT") - iot.HandleFunc("/{sn}/update", a.deviceFwUpdate).Methods("PUT") + iot.HandleFunc("/{sn}/operate", a.deviceOperateMsg).Methods("PUT") + iot.HandleFunc("/{sn}/fw_update", a.deviceFwUpdate).Methods("PUT") iot.HandleFunc("/{sn}/wifi", a.deviceWifi).Methods("PUT", "GET") // Middleware for requests which requires user to be authenticated diff --git a/backend/services/controller/internal/api/device.go b/backend/services/controller/internal/api/device.go index 755c708..c715e06 100644 --- a/backend/services/controller/internal/api/device.go +++ b/backend/services/controller/internal/api/device.go @@ -178,6 +178,25 @@ func (a *Api) deviceGetMsg(w http.ResponseWriter, r *http.Request) { a.uspCall(msg, sn, w) } +func (a *Api) deviceOperateMsg(w http.ResponseWriter, r *http.Request) { + vars := mux.Vars(r) + sn := vars["sn"] + + a.deviceExists(sn, w) + + var receiver usp_msg.Operate + + err := json.NewDecoder(r.Body).Decode(&receiver) + if err != nil { + log.Println(err) + w.WriteHeader(http.StatusBadRequest) + return + } + + msg := utils.NewOperateMsg(receiver) + a.uspCall(msg, sn, w) +} + func (a *Api) deviceDeleteMsg(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) sn := vars["sn"]