moved all validation and parsing from handler to service layer
This commit is contained in:
@@ -4,7 +4,6 @@ import (
|
||||
"encoding/json"
|
||||
"log/slog"
|
||||
"nats-app/internal/iot"
|
||||
"time"
|
||||
|
||||
"github.com/nats-io/nats.go"
|
||||
)
|
||||
@@ -93,11 +92,6 @@ func (h *Handlers) SetupEndpoints() *Handlers {
|
||||
func (h *Handlers) register() {
|
||||
h.NATS.Subscribe(subjectSensorsRegister, func(msg *nats.Msg) {
|
||||
handleRequest(msg, func(req Sensor) (Sensor, error) {
|
||||
if err := req.Validate(); err != nil {
|
||||
slog.Error("error validating sensor", "error", err)
|
||||
return Sensor{}, err
|
||||
}
|
||||
|
||||
if err := h.service.RegisterSensor(req); err != nil {
|
||||
return Sensor{}, err
|
||||
}
|
||||
@@ -112,18 +106,7 @@ func (h *Handlers) register() {
|
||||
func (h *Handlers) registerData() {
|
||||
h.NATS.Subscribe(subjectSensorsData+"*", func(msg *nats.Msg) {
|
||||
handlePublish(msg, func(data SensorData) error {
|
||||
if err := data.Validate(); err != nil {
|
||||
slog.Error("error validating sensor data", "error", err)
|
||||
return err
|
||||
}
|
||||
|
||||
if err := h.service.RegisterSensorData(data); err != nil {
|
||||
slog.Error("failed to save sensor data", "error", err, "sensor_id", data.SensorID)
|
||||
return err
|
||||
}
|
||||
|
||||
slog.Debug("sensor data saved", "sensor_id", data.SensorID, "value", data.Value)
|
||||
return nil
|
||||
return h.service.RegisterSensorData(data)
|
||||
})
|
||||
})
|
||||
}
|
||||
@@ -131,12 +114,6 @@ func (h *Handlers) registerData() {
|
||||
func (h *Handlers) update() {
|
||||
h.NATS.Subscribe(subjectSensorsUpdate, func(msg *nats.Msg) {
|
||||
handleRequest(msg, func(req Sensor) (Sensor, error) {
|
||||
slog.Debug("calling sensor.update", "payload", req)
|
||||
|
||||
if err := req.Validate(); err != nil {
|
||||
return Sensor{}, err
|
||||
}
|
||||
|
||||
if err := h.service.UpdateSensor(req); err != nil {
|
||||
return Sensor{}, err
|
||||
}
|
||||
@@ -151,13 +128,7 @@ func (h *Handlers) update() {
|
||||
func (h *Handlers) get() {
|
||||
h.NATS.Subscribe(subjectSensorsGet, func(msg *nats.Msg) {
|
||||
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)
|
||||
})
|
||||
})
|
||||
}
|
||||
@@ -165,21 +136,7 @@ func (h *Handlers) get() {
|
||||
func (h *Handlers) getValues() {
|
||||
h.NATS.Subscribe(subjectSensorsValuesGet, func(msg *nats.Msg) {
|
||||
handleRequest(msg, func(req SensorDataRequest) ([]SensorData, error) {
|
||||
if err := req.Validate(); err != nil {
|
||||
return []SensorData{}, err
|
||||
}
|
||||
|
||||
from, err := time.Parse(time.RFC3339, *req.From)
|
||||
if err != nil {
|
||||
return []SensorData{}, err
|
||||
}
|
||||
|
||||
to, err := time.Parse(time.RFC3339, *req.To)
|
||||
if err != nil {
|
||||
return []SensorData{}, err
|
||||
}
|
||||
|
||||
return h.service.GetValues(req.SensorID, from, to)
|
||||
return h.service.GetValues(req)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user