Check for address before inserting a new one.

This commit is contained in:
Eli Ribble 2026-04-14 01:20:52 +00:00
parent a189348b36
commit 3ae72c8944
No known key found for this signature in database
2 changed files with 11 additions and 1 deletions

View file

@ -42,7 +42,7 @@ func AddRoutes(r *mux.Router) {
review_task := resource.ReviewTask(r)
r.Handle("/review-task", authenticatedHandlerJSON(review_task.List)).Methods("GET")
compliance := resource.Compliance(router)
r.HandleFunc("/rmo/compliance", handlerFormPost(compliance.Create)).Methods("POST")
r.HandleFunc("/rmo/compliance", handlerJSONPost(compliance.Create)).Methods("POST")
nuisance := resource.Nuisance(router)
r.HandleFunc("/rmo/nuisance", handlerFormPost(nuisance.Create)).Methods("POST")
water := resource.Water(router)

View file

@ -60,6 +60,15 @@ func ensureAddressFromFeature(ctx context.Context, txn bob.Executor, feature sta
if err != nil {
return 0, fmt.Errorf("failed to convert lat %f lng %f to h3 cell", lat, lng)
}
a, err := models.Addresses.Query(
models.SelectWhere.Addresses.Gid.EQ(feature.Properties.GID),
).One(ctx, txn)
if err != nil && err.Error() != "sql: no rows in result set" {
return 0, fmt.Errorf("query address: %w", err)
}
if err == nil {
return a.ID, nil
}
query := addressQuery()
query.Apply(
im.Values(
@ -76,6 +85,7 @@ func ensureAddressFromFeature(ctx context.Context, txn bob.Executor, feature sta
psql.Arg(feature.Street()),
psql.Raw("''"),
),
im.OnConflict("gid").DoNothing(),
)
row, err := bob.One(ctx, txn, query, scan.StructMapper[_rowWithID]())
log.Info().Int32("id", row.ID).Msg("inserted address")