feat(controller): connected devices
This commit is contained in:
parent
b413d45ee7
commit
2864f8754d
|
|
@ -78,6 +78,7 @@ func (a *Api) StartApi() {
|
||||||
iot.HandleFunc("/{sn}/{mtp}/fw_update", a.deviceFwUpdate).Methods("PUT") //TODO: put it to work and generalize for usp and cwmp
|
iot.HandleFunc("/{sn}/{mtp}/fw_update", a.deviceFwUpdate).Methods("PUT") //TODO: put it to work and generalize for usp and cwmp
|
||||||
if a.enterpise {
|
if a.enterpise {
|
||||||
iot.HandleFunc("/{sn}/sitesurvey", a.deviceSiteSurvey).Methods("GET")
|
iot.HandleFunc("/{sn}/sitesurvey", a.deviceSiteSurvey).Methods("GET")
|
||||||
|
iot.HandleFunc("/{sn}/connecteddevices", a.deviceConnectedDevices).Methods("GET")
|
||||||
}
|
}
|
||||||
iot.HandleFunc("/{sn}/wifi", a.deviceWifi).Methods("PUT", "GET")
|
iot.HandleFunc("/{sn}/wifi", a.deviceWifi).Methods("PUT", "GET")
|
||||||
dash := r.PathPrefix("/api/info").Subrouter()
|
dash := r.PathPrefix("/api/info").Subrouter()
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,10 @@ package api
|
||||||
import (
|
import (
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
|
"github.com/gorilla/mux"
|
||||||
"github.com/leandrofars/oktopus/internal/bridge"
|
"github.com/leandrofars/oktopus/internal/bridge"
|
||||||
"github.com/leandrofars/oktopus/internal/entity"
|
"github.com/leandrofars/oktopus/internal/entity"
|
||||||
|
"github.com/leandrofars/oktopus/internal/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (a *Api) getEnterpriseResource(
|
func (a *Api) getEnterpriseResource(
|
||||||
|
|
@ -24,3 +26,57 @@ func (a *Api) getEnterpriseResource(
|
||||||
err = bridge.NatsEnterpriseInteraction("enterprise.v1."+protocol+"."+datamodel+"."+model+"."+sn+"."+resource+"."+action, body, w, a.nc)
|
err = bridge.NatsEnterpriseInteraction("enterprise.v1."+protocol+"."+datamodel+"."+model+"."+sn+"."+resource+"."+action, body, w, a.nc)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (a *Api) deviceSiteSurvey(w http.ResponseWriter, r *http.Request) {
|
||||||
|
vars := mux.Vars(r)
|
||||||
|
sn := vars["sn"]
|
||||||
|
|
||||||
|
device, err := getDeviceInfo(w, sn, a.nc)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.Method == http.MethodGet {
|
||||||
|
|
||||||
|
if device.Cwmp == entity.Online {
|
||||||
|
a.getEnterpriseResource("sitesurvey", "get", device, sn, w, []byte{}, "cwmp", "098")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if device.Mqtt == entity.Online || device.Stomp == entity.Online || device.Websockets == entity.Online {
|
||||||
|
w.WriteHeader(http.StatusNotImplemented)
|
||||||
|
w.Write(utils.Marshall("This feature is only working with CWMP devices"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
w.WriteHeader(http.StatusBadRequest)
|
||||||
|
w.Write(utils.Marshall("Device is Offline"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *Api) deviceConnectedDevices(w http.ResponseWriter, r *http.Request) {
|
||||||
|
vars := mux.Vars(r)
|
||||||
|
sn := vars["sn"]
|
||||||
|
|
||||||
|
device, err := getDeviceInfo(w, sn, a.nc)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.Method == http.MethodGet {
|
||||||
|
|
||||||
|
if device.Cwmp == entity.Online {
|
||||||
|
a.getEnterpriseResource("connecteddevices", "get", device, sn, w, []byte{}, "cwmp", "098")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if device.Mqtt == entity.Online || device.Stomp == entity.Online || device.Websockets == entity.Online {
|
||||||
|
w.WriteHeader(http.StatusNotImplemented)
|
||||||
|
w.Write(utils.Marshall("This feature is only working with CWMP devices"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
w.WriteHeader(http.StatusBadRequest)
|
||||||
|
w.Write(utils.Marshall("Device is Offline"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
package api
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net/http"
|
|
||||||
|
|
||||||
"github.com/gorilla/mux"
|
|
||||||
"github.com/leandrofars/oktopus/internal/entity"
|
|
||||||
"github.com/leandrofars/oktopus/internal/utils"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (a *Api) deviceSiteSurvey(w http.ResponseWriter, r *http.Request) {
|
|
||||||
vars := mux.Vars(r)
|
|
||||||
sn := vars["sn"]
|
|
||||||
|
|
||||||
device, err := getDeviceInfo(w, sn, a.nc)
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if r.Method == http.MethodGet {
|
|
||||||
|
|
||||||
if device.Cwmp == entity.Online {
|
|
||||||
a.getEnterpriseResource("sitesurvey", "get", device, sn, w, []byte{}, "cwmp", "098")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if device.Mqtt == entity.Online || device.Stomp == entity.Online || device.Websockets == entity.Online {
|
|
||||||
w.WriteHeader(http.StatusNotImplemented)
|
|
||||||
w.Write(utils.Marshall("This feature is only working with CWMP devices"))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
w.WriteHeader(http.StatusBadRequest)
|
|
||||||
w.Write(utils.Marshall("Device is Offline"))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue
Block a user