53 lines
830 B
Go
53 lines
830 B
Go
package sensors
|
|
|
|
import (
|
|
"log/slog"
|
|
"time"
|
|
)
|
|
|
|
type Service struct {
|
|
repo Repository
|
|
}
|
|
|
|
func NewService(repo Repository) *Service {
|
|
return &Service{
|
|
repo: repo,
|
|
}
|
|
}
|
|
|
|
func (s *Service) RegisterSensor(sensor Sensor) error {
|
|
|
|
err := s.repo.CreateSensor(sensor)
|
|
if err != nil {
|
|
slog.Error("error registering sensor", "error", err)
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (s *Service) UpdateSensor(sensor Sensor) error {
|
|
|
|
s.repo.UpdateSensor(sensor)
|
|
|
|
return nil
|
|
}
|
|
|
|
func (s *Service) GetSensor(sensorID string) (Sensor, error) {
|
|
|
|
s.repo.ReadSensor(sensorID)
|
|
|
|
return Sensor{}, nil
|
|
}
|
|
|
|
func (s *Service) GetValues(sensorID string, from, to time.Time) (Sensor, error) {
|
|
|
|
s.repo.ReadSensorValues(sensorID, from, to)
|
|
|
|
return Sensor{}, nil
|
|
}
|
|
|
|
func (s *Service) ListSensors() ([]Sensor, error) {
|
|
return s.repo.ReadAllSensors()
|
|
}
|