Check for address before inserting a new one.
This commit is contained in:
parent
a189348b36
commit
3ae72c8944
2 changed files with 11 additions and 1 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue