diff --git a/internal/domains/sensors/repository.go b/internal/domains/sensors/repository.go index e4274f2..f754818 100644 --- a/internal/domains/sensors/repository.go +++ b/internal/domains/sensors/repository.go @@ -6,6 +6,7 @@ import ( "sync" "time" + "github.com/jackc/pgx/v5/pgtype" "github.com/jackc/pgx/v5/pgxpool" ) @@ -42,15 +43,31 @@ func (p *pgxRepo) CreateSensorData(s SensorData) error { return err } +const updateSensorQuery = `update sensors set sensor_type = $1, sampling_interval = $2, threshold_above = $3, threshold_below = $4 where sensor_id = $5` + func (p *pgxRepo) UpdateSensor(s Sensor) error { - panic("unimplemented") + _, err := p.Exec(context.Background(), updateSensorQuery, string(s.SensorType), s.SamplingInterval, s.ThresholdAbove, s.ThresholdBelow, s.SensorID) + return err } +const readSensorBySensorID = `` + func (p *pgxRepo) ReadSensor(sensorID string) (Sensor, error) { panic("unimplemented") } -func (p *pgxRepo) ReadSensorValues(sensorID string, from time.Time, to time.Time) ([]SensorData, error) { +const readSensorValuesBySensorID = `` + +func (p *pgxRepo) ReadSensorValues(sensorID string, from, to time.Time) ([]SensorData, error) { + fromPgType := pgtype.Timestamp{ + Time: from, + Valid: true, + } + toPgType := pgtype.Timestamp{ + Time: to, + Valid: true, + } + panic("unimplemented") } @@ -139,7 +156,20 @@ func (i *inMemory) CreateSensorData(data SensorData) error { } func (i *inMemory) UpdateSensor(s Sensor) error { - panic("unimplemented") + i.mu.Lock() + defer i.mu.Unlock() + + sensor, exists := i.sensors[s.SensorID] + if !exists { + return ErrSensorNotFound + } + + sensor.SensorType = s.SensorType + sensor.SamplingInterval = s.SamplingInterval + sensor.ThresholdAbove = s.ThresholdAbove + sensor.ThresholdBelow = s.ThresholdBelow + + return nil } func (i *inMemory) ReadSensor(sensorID string) (Sensor, error) {