nidus-sync/rmo/mock.go

57 lines
1.5 KiB
Go
Raw Normal View History

package rmo
import (
"net/http"
"github.com/Gleipnir-Technology/nidus-sync/config"
"github.com/Gleipnir-Technology/nidus-sync/html"
"github.com/go-chi/chi/v5"
)
type ContentMock struct {
District ContentDistrict
ReportID string
URL ContentURL
}
func addMockRoutes(r chi.Router) {
r.Get("/", renderMock("rmo/mock/root.html"))
r.Get("/district/{slug}", renderMock("rmo/mock/district-root.html"))
r.Get("/district/{slug}/nuisance-submit-complete", renderMock("rmo/mock/nuisance-submit-complete.html"))
r.Get("/nuisance", renderMock("rmo/mock/nuisance.html"))
r.Get("/nuisance-submit-complete", renderMock("rmo/mock/nuisance-submit-complete.html"))
}
func makeContentURLMock(slug string) ContentURL {
2026-01-24 19:32:19 +00:00
return ContentURL{
Nuisance: makeURLMock(slug, "nuisance"),
SubmitComplete: makeURLMock(slug, "nuisance-submit-complete"),
Tegola: config.MakeURLTegola("/"),
Water: makeURLMock(slug, "water"),
2026-01-24 19:32:19 +00:00
}
}
2026-01-24 21:29:24 +00:00
func makeURLMock(slug, p string) string {
return config.MakeURLReport("/mock/district/%s/%s", slug, p)
2026-01-24 19:32:19 +00:00
}
func renderMock(t string) func(http.ResponseWriter, *http.Request) {
return func(w http.ResponseWriter, r *http.Request) {
slug := chi.URLParam(r, "slug")
if slug == "" {
slug = "delta-mvcd"
}
html.RenderOrError(
w,
t,
ContentMock{
District: ContentDistrict{
Name: "Delta MVCD",
URLLogo: config.MakeURLNidus("/api/district/%s/logo", slug),
URLWebsite: "http://www.deltavcd.com/",
},
ReportID: "abcd-1234-5678",
URL: makeContentURLMock(slug),
},
)
}
}