From 6dac03a4896e78f530f75f1e8f9d9ac566bdde56 Mon Sep 17 00:00:00 2001 From: Natthapol SERMSARAN Date: Tue, 1 Apr 2025 15:16:18 +0700 Subject: [PATCH] feat: implement harvest units repository --- .../internal/repository/postgres_harvest.go | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 backend/internal/repository/postgres_harvest.go diff --git a/backend/internal/repository/postgres_harvest.go b/backend/internal/repository/postgres_harvest.go new file mode 100644 index 0000000..3bfc40a --- /dev/null +++ b/backend/internal/repository/postgres_harvest.go @@ -0,0 +1,34 @@ +package repository + +import ( + "context" + + "github.com/forfarm/backend/internal/domain" +) + +type postgresHarvestRepository struct { + conn Connection +} + +func NewPostgresHarvest(conn Connection) domain.HarvestRepository { + return &postgresHarvestRepository{conn: conn} +} + +func (p *postgresHarvestRepository) GetUnits(ctx context.Context) ([]domain.HarvestUnit, error) { + query := `SELECT id, name FROM harvest_units ORDER BY id` + rows, err := p.conn.Query(ctx, query) + if err != nil { + return nil, err + } + defer rows.Close() + + var units []domain.HarvestUnit + for rows.Next() { + var u domain.HarvestUnit + if err := rows.Scan(&u.ID, &u.Name); err != nil { + return nil, err + } + units = append(units, u) + } + return units, nil +}