List measurements

Also, fixed typo in router.
This commit is contained in:
Matthew Dillon 2014-12-02 14:26:51 -09:00
parent 87ac729c98
commit d462935682
9 changed files with 153 additions and 1 deletions

View file

@ -34,3 +34,15 @@ func (s *measurementsStore) Create(measurement *models.Measurement) (bool, error
}
return true, nil
}
func (s *measurementsStore) List(opt *models.MeasurementListOptions) ([]*models.Measurement, error) {
if opt == nil {
opt = &models.MeasurementListOptions{}
}
var measurements []*models.Measurement
err := s.dbh.Select(&measurements, `SELECT * FROM measurements LIMIT $1 OFFSET $2;`, opt.PerPageOrDefault(), opt.Offset())
if err != nil {
return nil, err
}
return measurements, nil
}

View file

@ -75,3 +75,26 @@ func TestMeasurementsStore_Create_db(t *testing.T) {
t.Error("want nonzero measurement.Id after submitting")
}
}
func TestMeasurementsStore_List_db(t *testing.T) {
tx, _ := DB.Begin()
defer tx.Rollback()
want_measurement := insertMeasurement(t, tx)
want := []*models.Measurement{want_measurement}
d := NewDatastore(tx)
measurements, err := d.Measurements.List(&models.MeasurementListOptions{ListOptions: models.ListOptions{Page: 1, PerPage: 10}})
if err != nil {
t.Fatal(err)
}
for i := range want {
normalizeTime(&want[i].CreatedAt, &want[i].UpdatedAt, &want[i].DeletedAt)
normalizeTime(&measurements[i].CreatedAt, &measurements[i].UpdatedAt, &measurements[i].DeletedAt)
}
if !reflect.DeepEqual(measurements, want) {
t.Errorf("got measurements %+v, want %+v", measurements, want)
}
}