From c6cb645453e96db91ac10d9c6ff71b4305b142c0 Mon Sep 17 00:00:00 2001 From: Eli Ribble Date: Wed, 29 Apr 2026 20:24:41 +0000 Subject: [PATCH] Don't error out on missing report --- platform/publicreport.go | 3 -- platform/publicreport/report.go | 60 ++++++++++++++++----------------- 2 files changed, 30 insertions(+), 33 deletions(-) diff --git a/platform/publicreport.go b/platform/publicreport.go index 2b484324..02122d55 100644 --- a/platform/publicreport.go +++ b/platform/publicreport.go @@ -53,9 +53,6 @@ func GenerateReportID() (string, error) { return builder.String(), nil } -func PublicReportByID(ctx context.Context, report_id string, is_public bool) (*types.PublicReport, error) { - return publicreport.ByID(ctx, report_id, is_public) -} func PublicReportByIDCompliance(ctx context.Context, report_id string, is_public bool) (*types.PublicReportCompliance, error) { result, err := publicreport.ByIDCompliance(ctx, report_id, is_public) if err != nil { diff --git a/platform/publicreport/report.go b/platform/publicreport/report.go index fc11fda1..668a7e1e 100644 --- a/platform/publicreport/report.go +++ b/platform/publicreport/report.go @@ -15,7 +15,36 @@ import ( "github.com/stephenafamo/scan" ) -func ByID(ctx context.Context, public_id string, is_public bool) (*types.PublicReport, error) { +func ByIDCompliance(ctx context.Context, public_id string, is_public bool) (*types.PublicReportCompliance, error) { + report, err := byID(ctx, public_id, is_public) + if err != nil { + return nil, fmt.Errorf("base report byid: %w", err) + } + return compliance(ctx, public_id, report) +} +func ByIDNuisance(ctx context.Context, public_id string, is_public bool) (*types.PublicReportNuisance, error) { + report, err := byID(ctx, public_id, is_public) + if err != nil { + return nil, fmt.Errorf("base report byid: %w", err) + } + return nuisance(ctx, public_id, report) +} +func ByIDWater(ctx context.Context, public_id string, is_public bool) (*types.PublicReportWater, error) { + report, err := byID(ctx, public_id, is_public) + if err != nil { + return nil, fmt.Errorf("base report byid: %w", err) + } + return water(ctx, public_id, report) +} +func ReportsForOrganization(ctx context.Context, org_id int32, is_public bool) ([]*types.PublicReport, error) { + query := reportQuery() + query.Apply( + sm.Where(psql.Quote("r", "organization_id").EQ(psql.Arg(org_id))), + sm.Where(psql.Quote("r", "reviewed").IsNull()), + ) + return reportQueryToRows(ctx, query, is_public) +} +func byID(ctx context.Context, public_id string, is_public bool) (*types.PublicReport, error) { query := reportQuery() query.Apply( sm.Where(psql.Quote("r", "public_id").EQ(psql.Arg(public_id))), @@ -30,35 +59,6 @@ func ByID(ctx context.Context, public_id string, is_public bool) (*types.PublicR } return reports[0], nil } -func ByIDCompliance(ctx context.Context, public_id string, is_public bool) (*types.PublicReportCompliance, error) { - report, err := ByID(ctx, public_id, is_public) - if err != nil { - return nil, fmt.Errorf("base report byid: %w", err) - } - return compliance(ctx, public_id, report) -} -func ByIDNuisance(ctx context.Context, public_id string, is_public bool) (*types.PublicReportNuisance, error) { - report, err := ByID(ctx, public_id, is_public) - if err != nil { - return nil, fmt.Errorf("base report byid: %w", err) - } - return nuisance(ctx, public_id, report) -} -func ByIDWater(ctx context.Context, public_id string, is_public bool) (*types.PublicReportWater, error) { - report, err := ByID(ctx, public_id, is_public) - if err != nil { - return nil, fmt.Errorf("base report byid: %w", err) - } - return water(ctx, public_id, report) -} -func ReportsForOrganization(ctx context.Context, org_id int32, is_public bool) ([]*types.PublicReport, error) { - query := reportQuery() - query.Apply( - sm.Where(psql.Quote("r", "organization_id").EQ(psql.Arg(org_id))), - sm.Where(psql.Quote("r", "reviewed").IsNull()), - ) - return reportQueryToRows(ctx, query, is_public) -} func reportQueryToRows(ctx context.Context, query bob.BaseQuery[*dialect.SelectQuery], is_public bool) ([]*types.PublicReport, error) { rows, err := bob.All(ctx, db.PGInstance.BobDB, query, scan.StructMapper[types.PublicReport]())