diff --git a/rmo/district.go b/rmo/district.go index 56cd085a..3816e3b6 100644 --- a/rmo/district.go +++ b/rmo/district.go @@ -1,8 +1,12 @@ package rmo import ( + "net/http" + "github.com/Gleipnir-Technology/nidus-sync/config" + "github.com/Gleipnir-Technology/nidus-sync/db" "github.com/Gleipnir-Technology/nidus-sync/db/models" + "github.com/go-chi/chi/v5" ) type ContentDistrict struct { @@ -11,6 +15,13 @@ type ContentDistrict struct { URLWebsite string } +func districtBySlug(r *http.Request) (*models.Organization, error) { + slug := chi.URLParam(r, "slug") + district, err := models.Organizations.Query( + models.SelectWhere.Organizations.Slug.EQ(slug), + ).One(r.Context(), db.PGInstance.BobDB) + return district, err +} func newContentDistrict(d *models.Organization) *ContentDistrict { if d == nil { return nil diff --git a/rmo/nuisance.go b/rmo/nuisance.go index 5a3003f7..ed26446f 100644 --- a/rmo/nuisance.go +++ b/rmo/nuisance.go @@ -48,6 +48,22 @@ func getNuisance(w http.ResponseWriter, r *http.Request) { }, ) } +func getNuisanceDistrict(w http.ResponseWriter, r *http.Request) { + district, err := districtBySlug(r) + if err != nil { + respondError(w, "Failed to lookup organization", err, http.StatusBadRequest) + return + } + html.RenderOrError( + w, + NuisanceT, + ContentNuisance{ + District: newContentDistrict(district), + MapboxToken: config.MapboxToken, + URL: makeContentURL(nil), + }, + ) +} func getSubmitComplete(w http.ResponseWriter, r *http.Request) { report_id := r.URL.Query().Get("report") district, err := report.DistrictForReport(r.Context(), report_id) diff --git a/rmo/root.go b/rmo/root.go index 46fc1c94..9edc85a4 100644 --- a/rmo/root.go +++ b/rmo/root.go @@ -5,10 +5,8 @@ import ( "net/http" "github.com/Gleipnir-Technology/nidus-sync/config" - "github.com/Gleipnir-Technology/nidus-sync/db" "github.com/Gleipnir-Technology/nidus-sync/db/models" "github.com/Gleipnir-Technology/nidus-sync/html" - "github.com/go-chi/chi/v5" "github.com/rs/zerolog/log" ) @@ -67,10 +65,7 @@ func getRoot(w http.ResponseWriter, r *http.Request) { ) } func getRootDistrict(w http.ResponseWriter, r *http.Request) { - slug := chi.URLParam(r, "slug") - district, err := models.Organizations.Query( - models.SelectWhere.Organizations.Slug.EQ(slug), - ).One(r.Context(), db.PGInstance.BobDB) + district, err := districtBySlug(r) if err != nil { respondError(w, "Failed to lookup organization", err, http.StatusBadRequest) return diff --git a/rmo/routes.go b/rmo/routes.go index 247a51d6..58421969 100644 --- a/rmo/routes.go +++ b/rmo/routes.go @@ -13,7 +13,7 @@ func Router() chi.Router { r.Get("/submit-complete", getSubmitComplete) r.Get("/district/{slug}", getRootDistrict) - //r.Get("/district/{slug}/nuisance", renderMock(mockNuisanceT)) + r.Get("/district/{slug}/nuisance", getNuisanceDistrict) //r.Get("/district/{slug}/nuisance-submit-complete", renderMock(mockNuisanceSubmitCompleteT)) //r.Get("/district/{slug}/status", renderMock(mockStatusT)) //r.Get("/district/{slug}/water", renderMock(mockWaterT))