feat(cwmp): deleteObject message
This commit is contained in:
parent
fe85ea3645
commit
9a4381dc7c
|
|
@ -62,6 +62,7 @@ func (a *Api) StartApi() {
|
||||||
iot.HandleFunc("/cwmp/{sn}/getParameterAttributes", a.cwmpGetParameterAttributesMsg).Methods("PUT")
|
iot.HandleFunc("/cwmp/{sn}/getParameterAttributes", a.cwmpGetParameterAttributesMsg).Methods("PUT")
|
||||||
iot.HandleFunc("/cwmp/{sn}/setParameterValues", a.cwmpSetParameterValuesMsg).Methods("PUT")
|
iot.HandleFunc("/cwmp/{sn}/setParameterValues", a.cwmpSetParameterValuesMsg).Methods("PUT")
|
||||||
iot.HandleFunc("/cwmp/{sn}/addObject", a.cwmpAddObjectMsg).Methods("PUT")
|
iot.HandleFunc("/cwmp/{sn}/addObject", a.cwmpAddObjectMsg).Methods("PUT")
|
||||||
|
iot.HandleFunc("/cwmp/{sn}/deleteObject", a.cwmpDeleteObjectMsg).Methods("PUT")
|
||||||
iot.HandleFunc("", a.retrieveDevices).Methods("GET")
|
iot.HandleFunc("", a.retrieveDevices).Methods("GET")
|
||||||
iot.HandleFunc("/{id}", a.retrieveDevices).Methods("GET")
|
iot.HandleFunc("/{id}", a.retrieveDevices).Methods("GET")
|
||||||
iot.HandleFunc("/{sn}/{mtp}/get", a.deviceGetMsg).Methods("PUT")
|
iot.HandleFunc("/{sn}/{mtp}/get", a.deviceGetMsg).Methods("PUT")
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,25 @@ func (a *Api) cwmpAddObjectMsg(w http.ResponseWriter, r *http.Request) {
|
||||||
w.Write(data)
|
w.Write(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
func cwmpInteraction[T cwmp.SetParameterValuesResponse | cwmp.GetParameterAttributesResponse | cwmp.GetParameterNamesResponse | cwmp.GetParameterValuesResponse | cwmp.AddObjectResponse](
|
func (a *Api) cwmpDeleteObjectMsg(w http.ResponseWriter, r *http.Request) {
|
||||||
|
sn := getSerialNumberFromRequest(r)
|
||||||
|
|
||||||
|
payload, err := io.ReadAll(r.Body)
|
||||||
|
if err != nil {
|
||||||
|
w.WriteHeader(http.StatusBadRequest)
|
||||||
|
w.Write(utils.Marshall(err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
data, _, err := cwmpInteraction[cwmp.DeleteObjectResponse](sn, payload, w, a.nc)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
w.Write(data)
|
||||||
|
}
|
||||||
|
|
||||||
|
func cwmpInteraction[T cwmp.SetParameterValuesResponse | cwmp.DeleteObjectResponse | cwmp.GetParameterAttributesResponse | cwmp.GetParameterNamesResponse | cwmp.GetParameterValuesResponse | cwmp.AddObjectResponse](
|
||||||
sn string, payload []byte, w http.ResponseWriter, nc *nats.Conn,
|
sn string, payload []byte, w http.ResponseWriter, nc *nats.Conn,
|
||||||
) ([]byte, T, error) {
|
) ([]byte, T, error) {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -98,6 +98,15 @@ type GetParameterAttributesResponse struct {
|
||||||
ParameterList []ParameterAttributeStruct `xml:"Body>GetParameterAttributesResponse>ParameterList>ParameterAttributeStruct"`
|
ParameterList []ParameterAttributeStruct `xml:"Body>GetParameterAttributesResponse>ParameterList>ParameterAttributeStruct"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type AddObjectResponse struct {
|
||||||
|
InstanceNumber string `xml:"Body>AddObjectResponse>InstanceNumber"`
|
||||||
|
Status int `xml:"Body>AddObjectResponse>Status"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type DeleteObjectResponse struct {
|
||||||
|
Status int `xml:"Body>DeleteObjectResponse>Status"`
|
||||||
|
}
|
||||||
|
|
||||||
type CWMPInform struct {
|
type CWMPInform struct {
|
||||||
DeviceId DeviceID `xml:"Body>Inform>DeviceId"`
|
DeviceId DeviceID `xml:"Body>Inform>DeviceId"`
|
||||||
Events []EventStruct `xml:"Body>Inform>Event>EventStruct"`
|
Events []EventStruct `xml:"Body>Inform>Event>EventStruct"`
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user