refact(controller): get wifi data
This commit is contained in:
parent
9ab100de76
commit
c4e62772d7
|
|
@ -1,17 +1,13 @@
|
|||
package api
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"encoding/xml"
|
||||
"log"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"github.com/gorilla/mux"
|
||||
"github.com/leandrofars/oktopus/internal/bridge"
|
||||
"github.com/leandrofars/oktopus/internal/cwmp"
|
||||
"github.com/leandrofars/oktopus/internal/entity"
|
||||
"github.com/leandrofars/oktopus/internal/nats"
|
||||
"github.com/leandrofars/oktopus/internal/utils"
|
||||
)
|
||||
|
||||
|
|
@ -223,28 +219,11 @@ func (a *Api) deviceWifi(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
payload := cwmp.GetParameterNames("InternetGatewayDevice.LANDevice.", 1)
|
||||
|
||||
data, err := bridge.NatsCwmpInteraction(
|
||||
nats.NATS_CWMP_ADAPTER_SUBJECT_PREFIX+sn+".api",
|
||||
[]byte(payload),
|
||||
w,
|
||||
a.nc,
|
||||
)
|
||||
response, err := cwmpInteraction[cwmp.GetParameterNamesResponse](sn, payload, w, a.nc)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
var response cwmp.GetParameterNamesResponse
|
||||
err = xml.Unmarshal(data, &response)
|
||||
if err != nil {
|
||||
err = json.Unmarshal(data, &response)
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
w.Write(utils.Marshall(err))
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
parameters_to_get_values := []string{}
|
||||
wlanConfigurationInstances := 0
|
||||
|
||||
|
|
@ -253,58 +232,23 @@ func (a *Api) deviceWifi(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
payload = cwmp.GetParameterNames(x.Name+"WLANConfiguration.", 1)
|
||||
|
||||
data, err := bridge.NatsCwmpInteraction(
|
||||
nats.NATS_CWMP_ADAPTER_SUBJECT_PREFIX+sn+".api",
|
||||
[]byte(payload),
|
||||
w,
|
||||
a.nc,
|
||||
)
|
||||
response, err := cwmpInteraction[cwmp.GetParameterNamesResponse](sn, payload, w, a.nc)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
var response cwmp.GetParameterNamesResponse
|
||||
err = xml.Unmarshal(data, &response)
|
||||
if err != nil {
|
||||
err = json.Unmarshal(data, &response)
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
w.Write(utils.Marshall(err))
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// y = InternetGatewayDevice.LanDevice.*.WLANConfiguration.*
|
||||
for _, y := range response.ParameterList {
|
||||
wlans = append(wlans, WiFi{})
|
||||
|
||||
payload = cwmp.GetParameterNames(y.Name, 1)
|
||||
|
||||
data, err := bridge.NatsCwmpInteraction(
|
||||
nats.NATS_CWMP_ADAPTER_SUBJECT_PREFIX+sn+".api",
|
||||
[]byte(payload),
|
||||
w,
|
||||
a.nc,
|
||||
)
|
||||
response, err := cwmpInteraction[cwmp.GetParameterNamesResponse](sn, payload, w, a.nc)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
log.Println("y.name: ", y.Name)
|
||||
|
||||
var response cwmp.GetParameterNamesResponse
|
||||
err = xml.Unmarshal(data, &response)
|
||||
if err != nil {
|
||||
err = json.Unmarshal(data, &response)
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
w.Write(utils.Marshall(err))
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// y = InternetGatewayDevice.LanDevice.*.WLANConfiguration.*.<Parameter>
|
||||
// z = InternetGatewayDevice.LanDevice.*.WLANConfiguration.*.<Parameter>
|
||||
for _, z := range response.ParameterList {
|
||||
path := strings.Split(z.Name, ".")
|
||||
parameter := path[len(path)-1]
|
||||
|
|
@ -335,46 +279,26 @@ func (a *Api) deviceWifi(w http.ResponseWriter, r *http.Request) {
|
|||
y.Name+"Standard",
|
||||
y.Name+"PreSharedKey.1.KeyPassphrase",
|
||||
)
|
||||
//parameters_to_get_values = append(parameters_to_get_values, y.Name+"NamePreSharedKey.1.KeyPassphrase")
|
||||
|
||||
wlans[wlanConfigurationInstances].Path = y.Name
|
||||
wlanConfigurationInstances = wlanConfigurationInstances + 1
|
||||
}
|
||||
}
|
||||
log.Println("wlanConfigurationInstances: ", wlanConfigurationInstances)
|
||||
//utils.MarshallEncoder(wlans, w)
|
||||
|
||||
payload = cwmp.GetParameterMultiValues(parameters_to_get_values)
|
||||
//log.Println("payload:", payload)
|
||||
|
||||
data, err = bridge.NatsCwmpInteraction(
|
||||
nats.NATS_CWMP_ADAPTER_SUBJECT_PREFIX+sn+".api",
|
||||
[]byte(payload),
|
||||
w,
|
||||
a.nc,
|
||||
)
|
||||
parameterValuesResp, err := cwmpInteraction[cwmp.GetParameterValuesResponse](sn, payload, w, a.nc)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
var parameterValuesResp cwmp.GetParameterValuesResponse
|
||||
err = xml.Unmarshal(data, ¶meterValuesResp)
|
||||
if err != nil {
|
||||
err = json.Unmarshal(data, ¶meterValuesResp)
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
w.Write(utils.Marshall(err))
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
i := 0
|
||||
wlanIndex := 0
|
||||
|
||||
for _, a := range parameterValuesResp.ParameterList {
|
||||
path := strings.Split(a.Name, ".")
|
||||
parameter := path[len(path)-1]
|
||||
//log.Println("parameter:", parameter)
|
||||
|
||||
switch parameter {
|
||||
case "Enable":
|
||||
|
|
@ -396,13 +320,8 @@ func (a *Api) deviceWifi(w http.ResponseWriter, r *http.Request) {
|
|||
wlanIndex = wlanIndex + 1
|
||||
i = 0
|
||||
}
|
||||
|
||||
// log.Println("parameter:", a.Name)
|
||||
// log.Println("value:", a.Value)
|
||||
}
|
||||
|
||||
//log.Printf("%++v", wlans)
|
||||
|
||||
utils.MarshallEncoder(wlans, w)
|
||||
|
||||
return
|
||||
|
|
@ -449,30 +368,12 @@ func (a *Api) deviceWifi(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
|
||||
payload := cwmp.SetParameterMultiValues(fmtBody)
|
||||
log.Println(payload)
|
||||
|
||||
data, err := bridge.NatsCwmpInteraction(
|
||||
nats.NATS_CWMP_ADAPTER_SUBJECT_PREFIX+sn+".api",
|
||||
[]byte(payload),
|
||||
w,
|
||||
a.nc,
|
||||
)
|
||||
setParameterValuesResp, err := cwmpInteraction[cwmp.SetParameterValuesResponse](sn, payload, w, a.nc)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
var setParameterValuesResp cwmp.SetParameterValuesResponse
|
||||
err = xml.Unmarshal(data, &setParameterValuesResp)
|
||||
if err != nil {
|
||||
err = json.Unmarshal(data, &setParameterValuesResp)
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
w.Write(utils.Marshall(err))
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
if setParameterValuesResp.Status == cwmp.ALL_OK {
|
||||
log.Printf("All parameters sent to the cpe %s were applied", device.SN)
|
||||
w.Write(utils.Marshall(cwmp.ALL_OK))
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user