add read sensor
This commit is contained in:
parent
eee829a665
commit
78723d3fcd
@ -37,6 +37,9 @@ func NewHandlers(service *Service, iot *iot.IoTDevice) *Handlers {
|
|||||||
slog.Info("started simulator for sensor", "sensor_id", sensor.SensorID)
|
slog.Info("started simulator for sensor", "sensor_id", sensor.SensorID)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sensors, _ := service.repo.ReadAllSensors()
|
||||||
|
slog.Info("sensors", "sens", sensors)
|
||||||
|
|
||||||
return &Handlers{
|
return &Handlers{
|
||||||
service: service,
|
service: service,
|
||||||
IoTDevice: iot,
|
IoTDevice: iot,
|
||||||
@ -128,6 +131,8 @@ func (h *Handlers) registerData() {
|
|||||||
func (h *Handlers) update() {
|
func (h *Handlers) update() {
|
||||||
h.NATS.Subscribe(subjectSensorsUpdate, func(msg *nats.Msg) {
|
h.NATS.Subscribe(subjectSensorsUpdate, func(msg *nats.Msg) {
|
||||||
handleRequest(msg, func(req Sensor) (Sensor, error) {
|
handleRequest(msg, func(req Sensor) (Sensor, error) {
|
||||||
|
slog.Debug("calling sensor.update", "payload", req)
|
||||||
|
|
||||||
if err := req.Validate(); err != nil {
|
if err := req.Validate(); err != nil {
|
||||||
return Sensor{}, err
|
return Sensor{}, err
|
||||||
}
|
}
|
||||||
@ -144,6 +149,12 @@ func (h *Handlers) update() {
|
|||||||
func (h *Handlers) get() {
|
func (h *Handlers) get() {
|
||||||
h.NATS.Subscribe(subjectSensorsGet, func(msg *nats.Msg) {
|
h.NATS.Subscribe(subjectSensorsGet, func(msg *nats.Msg) {
|
||||||
handleRequest(msg, func(req SensorRequest) (Sensor, error) {
|
handleRequest(msg, func(req SensorRequest) (Sensor, error) {
|
||||||
|
slog.Debug("calling sensor.get", "payload", req)
|
||||||
|
|
||||||
|
if err := req.Validate(); err != nil {
|
||||||
|
return Sensor{}, err
|
||||||
|
}
|
||||||
|
|
||||||
return h.service.GetSensor(req.SensorID)
|
return h.service.GetSensor(req.SensorID)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -151,19 +162,19 @@ func (h *Handlers) get() {
|
|||||||
|
|
||||||
func (h *Handlers) getValues() {
|
func (h *Handlers) getValues() {
|
||||||
h.NATS.Subscribe(subjectSensorsValuesGet, func(msg *nats.Msg) {
|
h.NATS.Subscribe(subjectSensorsValuesGet, func(msg *nats.Msg) {
|
||||||
handleRequest(msg, func(req SensorDataRequest) (Sensor, error) {
|
handleRequest(msg, func(req SensorDataRequest) ([]SensorData, error) {
|
||||||
if err := req.Validate(); err != nil {
|
if err := req.Validate(); err != nil {
|
||||||
return Sensor{}, err
|
return []SensorData{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
from, err := time.Parse(time.RFC3339, *req.From)
|
from, err := time.Parse(time.RFC3339, *req.From)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return Sensor{}, err
|
return []SensorData{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
to, err := time.Parse(time.RFC3339, *req.To)
|
to, err := time.Parse(time.RFC3339, *req.To)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return Sensor{}, err
|
return []SensorData{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return h.service.GetValues(req.SensorID, from, to)
|
return h.service.GetValues(req.SensorID, from, to)
|
||||||
|
|||||||
@ -143,7 +143,15 @@ func (i *inMemory) UpdateSensor(s Sensor) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (i *inMemory) ReadSensor(sensorID string) (Sensor, error) {
|
func (i *inMemory) ReadSensor(sensorID string) (Sensor, error) {
|
||||||
panic("unimplemented")
|
i.mu.Lock()
|
||||||
|
defer i.mu.Unlock()
|
||||||
|
|
||||||
|
sensor, exists := i.sensors[sensorID]
|
||||||
|
if !exists {
|
||||||
|
return Sensor{}, ErrSensorNotFound
|
||||||
|
}
|
||||||
|
|
||||||
|
return *sensor, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (i *inMemory) ReadSensorValues(sensorID string, from time.Time, to time.Time) ([]SensorData, error) {
|
func (i *inMemory) ReadSensorValues(sensorID string, from time.Time, to time.Time) ([]SensorData, error) {
|
||||||
@ -234,10 +242,21 @@ func (d *DecoratorRepo) ReadSensorValues(sensorID string, from, to time.Time) ([
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (d *DecoratorRepo) ReadAllSensors() ([]Sensor, error) {
|
func (d *DecoratorRepo) ReadAllSensors() ([]Sensor, error) {
|
||||||
|
var sensors []Sensor
|
||||||
|
|
||||||
sensors, err := d.memory.ReadAllSensors()
|
sensors, err := d.memory.ReadAllSensors()
|
||||||
if err == nil && len(sensors) > 0 {
|
if err == nil && len(sensors) > 0 {
|
||||||
return sensors, nil
|
return sensors, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return d.db.ReadAllSensors()
|
sensors, err = d.db.ReadAllSensors()
|
||||||
|
if err != nil {
|
||||||
|
return []Sensor{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, s := range sensors {
|
||||||
|
_ = d.memory.CreateSensor(s)
|
||||||
|
}
|
||||||
|
|
||||||
|
return sensors, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user