Swap out the rest of chi
We're now chi-free. Not bug-free.
This commit is contained in:
parent
6c311c76e3
commit
ab519020fc
24 changed files with 172 additions and 139 deletions
96
api/api.go
96
api/api.go
|
|
@ -10,15 +10,59 @@ import (
|
|||
|
||||
"github.com/Gleipnir-Technology/nidus-sync/db"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/platform"
|
||||
"github.com/go-chi/render"
|
||||
//"github.com/gorilla/mux"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
/*
|
||||
type renderer struct {
|
||||
}
|
||||
func (ren *renderer) Render(w http.ResponseWriter, r *http.Request) error {
|
||||
return nil
|
||||
}
|
||||
*/
|
||||
// In the best case scenario, the excellent github.com/pkg/errors package
|
||||
// helps reveal information on the error, setting it on Err, and in the Render()
|
||||
// method, using it to set the application-specific error code in AppCode.
|
||||
type ResponseErr struct {
|
||||
Error error `json:"-"` // low-level runtime error
|
||||
HTTPStatusCode int `json:"-"` // http response status code
|
||||
|
||||
StatusText string `json:"status"` // user-level status message
|
||||
AppCode int64 `json:"code,omitempty"` // application-specific error code
|
||||
ErrorText string `json:"error,omitempty"` // application-level error message, for debugging
|
||||
}
|
||||
|
||||
func (e *ResponseErr) Render(w http.ResponseWriter, r *http.Request) error {
|
||||
http.Error(w, e.StatusText, e.HTTPStatusCode)
|
||||
return nil
|
||||
}
|
||||
|
||||
func errRender(err error) *ResponseErr {
|
||||
log.Error().Err(err).Msg("Rendering error")
|
||||
return &ResponseErr{
|
||||
Error: err,
|
||||
HTTPStatusCode: 500,
|
||||
StatusText: "Error rendering response",
|
||||
ErrorText: err.Error(),
|
||||
}
|
||||
}
|
||||
|
||||
type Renderable interface {
|
||||
Render(http.ResponseWriter, *http.Request) error
|
||||
}
|
||||
|
||||
func renderShim(w http.ResponseWriter, r *http.Request, renderer Renderable) error {
|
||||
return renderer.Render(w, r)
|
||||
}
|
||||
func renderList(w http.ResponseWriter, r *http.Request, data []Renderable) error {
|
||||
return nil
|
||||
}
|
||||
func handleClientIos(w http.ResponseWriter, r *http.Request, u platform.User) {
|
||||
var sinceStr string
|
||||
err := r.ParseForm()
|
||||
if err != nil {
|
||||
render.Render(w, r, errRender(fmt.Errorf("Failed to parse GET form: %w", err)))
|
||||
renderShim(w, r, errRender(fmt.Errorf("Failed to parse GET form: %w", err)))
|
||||
return
|
||||
} else {
|
||||
sinceStr = r.FormValue("since")
|
||||
|
|
@ -30,14 +74,14 @@ func handleClientIos(w http.ResponseWriter, r *http.Request, u platform.User) {
|
|||
} else {
|
||||
since, err = parseTime(sinceStr)
|
||||
if err != nil {
|
||||
render.Render(w, r, errRender(fmt.Errorf("Failed to parse 'since' value: %w", err)))
|
||||
renderShim(w, r, errRender(fmt.Errorf("Failed to parse 'since' value: %w", err)))
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
csync, err := platform.ContentClientIos(r.Context(), u, since)
|
||||
if err != nil {
|
||||
render.Render(w, r, errRender(err))
|
||||
renderShim(w, r, errRender(err))
|
||||
return
|
||||
}
|
||||
|
||||
|
|
@ -51,8 +95,8 @@ func handleClientIos(w http.ResponseWriter, r *http.Request, u platform.User) {
|
|||
Fieldseeker: toResponseFieldseeker(csync.Fieldseeker),
|
||||
Since: since_used,
|
||||
}
|
||||
if err := render.Render(w, r, response); err != nil {
|
||||
render.Render(w, r, errRender(err))
|
||||
if err := renderShim(w, r, response); err != nil {
|
||||
renderShim(w, r, errRender(err))
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
@ -60,7 +104,7 @@ func handleClientIos(w http.ResponseWriter, r *http.Request, u platform.User) {
|
|||
func apiMosquitoSource(w http.ResponseWriter, r *http.Request, u platform.User) {
|
||||
bounds, err := parseBounds(r)
|
||||
if err != nil {
|
||||
render.Render(w, r, errRender(err))
|
||||
renderShim(w, r, errRender(err))
|
||||
return
|
||||
}
|
||||
|
||||
|
|
@ -69,23 +113,23 @@ func apiMosquitoSource(w http.ResponseWriter, r *http.Request, u platform.User)
|
|||
query.Limit = 100
|
||||
sources, err := platform.MosquitoSourceQuery()
|
||||
if err != nil {
|
||||
render.Render(w, r, errRender(err))
|
||||
renderShim(w, r, errRender(err))
|
||||
return
|
||||
}
|
||||
|
||||
data := []render.Renderer{}
|
||||
data := []Renderable{}
|
||||
for _, s := range sources {
|
||||
data = append(data, NewResponseMosquitoSource(s))
|
||||
}
|
||||
if err := render.RenderList(w, r, data); err != nil {
|
||||
render.Render(w, r, errRender(err))
|
||||
if err := renderList(w, r, data); err != nil {
|
||||
renderShim(w, r, errRender(err))
|
||||
}
|
||||
}
|
||||
|
||||
func apiTrapData(w http.ResponseWriter, r *http.Request, u platform.User) {
|
||||
bounds, err := parseBounds(r)
|
||||
if err != nil {
|
||||
render.Render(w, r, errRender(err))
|
||||
renderShim(w, r, errRender(err))
|
||||
return
|
||||
}
|
||||
|
||||
|
|
@ -94,23 +138,23 @@ func apiTrapData(w http.ResponseWriter, r *http.Request, u platform.User) {
|
|||
query.Limit = 100
|
||||
trap_data, err := platform.TrapDataQuery()
|
||||
if err != nil {
|
||||
render.Render(w, r, errRender(err))
|
||||
renderShim(w, r, errRender(err))
|
||||
return
|
||||
}
|
||||
|
||||
data := []render.Renderer{}
|
||||
data := []Renderable{}
|
||||
for _, td := range trap_data {
|
||||
data = append(data, NewResponseTrapDatum(td))
|
||||
}
|
||||
if err := render.RenderList(w, r, data); err != nil {
|
||||
render.Render(w, r, errRender(err))
|
||||
if err := renderList(w, r, data); err != nil {
|
||||
renderShim(w, r, errRender(err))
|
||||
}
|
||||
}
|
||||
|
||||
func apiServiceRequest(w http.ResponseWriter, r *http.Request, u platform.User) {
|
||||
bounds, err := parseBounds(r)
|
||||
if err != nil {
|
||||
render.Render(w, r, errRender(err))
|
||||
renderShim(w, r, errRender(err))
|
||||
return
|
||||
}
|
||||
query := db.NewGeoQuery()
|
||||
|
|
@ -118,16 +162,16 @@ func apiServiceRequest(w http.ResponseWriter, r *http.Request, u platform.User)
|
|||
query.Limit = 100
|
||||
requests, err := platform.ServiceRequestQuery()
|
||||
if err != nil {
|
||||
render.Render(w, r, errRender(err))
|
||||
renderShim(w, r, errRender(err))
|
||||
return
|
||||
}
|
||||
|
||||
data := []render.Renderer{}
|
||||
data := []Renderable{}
|
||||
for _, sr := range requests {
|
||||
data = append(data, NewResponseServiceRequest(sr))
|
||||
}
|
||||
if err := render.RenderList(w, r, data); err != nil {
|
||||
render.Render(w, r, errRender(err))
|
||||
if err := renderList(w, r, data); err != nil {
|
||||
renderShim(w, r, errRender(err))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -168,16 +212,6 @@ func parseBounds(r *http.Request) (*db.GeoBounds, error) {
|
|||
return &bounds, nil
|
||||
}
|
||||
|
||||
func errRender(err error) render.Renderer {
|
||||
log.Error().Err(err).Msg("Rendering error")
|
||||
return &ResponseErr{
|
||||
Error: err,
|
||||
HTTPStatusCode: 500,
|
||||
StatusText: "Error rendering response",
|
||||
ErrorText: err.Error(),
|
||||
}
|
||||
}
|
||||
|
||||
func webhookFieldseeker(w http.ResponseWriter, r *http.Request) {
|
||||
// Create or open the log file
|
||||
file, err := os.OpenFile("webhook/request.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
|
||||
|
|
|
|||
11
api/audio.go
11
api/audio.go
|
|
@ -12,14 +12,14 @@ import (
|
|||
"github.com/Gleipnir-Technology/nidus-sync/platform/file"
|
||||
"github.com/aarondl/opt/omit"
|
||||
"github.com/aarondl/opt/omitnull"
|
||||
"github.com/go-chi/chi/v5"
|
||||
"github.com/go-chi/render"
|
||||
"github.com/google/uuid"
|
||||
"github.com/gorilla/mux"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
func apiAudioPost(w http.ResponseWriter, r *http.Request, u platform.User) {
|
||||
id := chi.URLParam(r, "uuid")
|
||||
vars := mux.Vars(r)
|
||||
id := vars["uuid"]
|
||||
noteUUID, err := uuid.Parse(id)
|
||||
if err != nil {
|
||||
http.Error(w, "Failed to decode the uuid", http.StatusBadRequest)
|
||||
|
|
@ -51,14 +51,15 @@ func apiAudioPost(w http.ResponseWriter, r *http.Request, u platform.User) {
|
|||
UUID: omit.From(noteUUID),
|
||||
}
|
||||
if err := platform.NoteAudioCreate(ctx, u, setter); err != nil {
|
||||
render.Render(w, r, errRender(err))
|
||||
renderShim(w, r, errRender(err))
|
||||
return
|
||||
}
|
||||
w.WriteHeader(http.StatusAccepted)
|
||||
}
|
||||
|
||||
func apiAudioContentPost(w http.ResponseWriter, r *http.Request, user platform.User) {
|
||||
u_str := chi.URLParam(r, "uuid")
|
||||
vars := mux.Vars(r)
|
||||
u_str := vars["uuid"]
|
||||
u, err := uuid.Parse(u_str)
|
||||
if err != nil {
|
||||
http.Error(w, "Failed to parse image UUID", http.StatusBadRequest)
|
||||
|
|
|
|||
|
|
@ -13,14 +13,15 @@ import (
|
|||
"github.com/Gleipnir-Technology/bob/dialect/psql/sm"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/db"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/platform"
|
||||
"github.com/go-chi/chi/v5"
|
||||
"github.com/gorilla/mux"
|
||||
"github.com/paulmach/orb/geojson"
|
||||
"github.com/rs/zerolog/log"
|
||||
"github.com/stephenafamo/scan"
|
||||
)
|
||||
|
||||
func getComplianceRequestImagePool(w http.ResponseWriter, r *http.Request) {
|
||||
code := chi.URLParam(r, "public_id")
|
||||
vars := mux.Vars(r)
|
||||
code := vars["public_id"]
|
||||
if code == "" {
|
||||
http.Error(w, "empty public_id", http.StatusBadRequest)
|
||||
return
|
||||
|
|
|
|||
|
|
@ -9,15 +9,14 @@ import (
|
|||
"github.com/Gleipnir-Technology/nidus-sync/db/models"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/platform"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/platform/file"
|
||||
"github.com/go-chi/chi/v5"
|
||||
"github.com/go-chi/render"
|
||||
"github.com/gorilla/mux"
|
||||
)
|
||||
|
||||
func apiGetDistrict(w http.ResponseWriter, r *http.Request) {
|
||||
var latStr, lngStr string
|
||||
err := r.ParseForm()
|
||||
if err != nil {
|
||||
render.Render(w, r, errRender(fmt.Errorf("Failed to parse GET form: %w", err)))
|
||||
renderShim(w, r, errRender(fmt.Errorf("Failed to parse GET form: %w", err)))
|
||||
return
|
||||
} else {
|
||||
latStr = r.FormValue("lat")
|
||||
|
|
@ -25,17 +24,17 @@ func apiGetDistrict(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
lat, err := strconv.ParseFloat(latStr, 64)
|
||||
if err != nil {
|
||||
render.Render(w, r, errRender(fmt.Errorf("Failed to parse lat as float: %w", err)))
|
||||
renderShim(w, r, errRender(fmt.Errorf("Failed to parse lat as float: %w", err)))
|
||||
return
|
||||
}
|
||||
lng, err := strconv.ParseFloat(lngStr, 64)
|
||||
if err != nil {
|
||||
render.Render(w, r, errRender(fmt.Errorf("Failed to parse lng as float: %w", err)))
|
||||
renderShim(w, r, errRender(fmt.Errorf("Failed to parse lng as float: %w", err)))
|
||||
return
|
||||
}
|
||||
org, err := platform.DistrictForLocation(r.Context(), lng, lat)
|
||||
if err != nil {
|
||||
render.Render(w, r, errRender(fmt.Errorf("Failed to get district: %w", err)))
|
||||
renderShim(w, r, errRender(fmt.Errorf("Failed to get district: %w", err)))
|
||||
return
|
||||
}
|
||||
if org == nil {
|
||||
|
|
@ -48,13 +47,14 @@ func apiGetDistrict(w http.ResponseWriter, r *http.Request) {
|
|||
Phone: org.OfficePhone.GetOr(""),
|
||||
Website: org.Website.GetOr(""),
|
||||
}
|
||||
if err := render.Render(w, r, d); err != nil {
|
||||
render.Render(w, r, errRender(err))
|
||||
if err := renderShim(w, r, d); err != nil {
|
||||
renderShim(w, r, errRender(err))
|
||||
}
|
||||
}
|
||||
|
||||
func apiGetDistrictLogo(w http.ResponseWriter, r *http.Request) {
|
||||
slug := chi.URLParam(r, "slug")
|
||||
vars := mux.Vars(r)
|
||||
slug := vars["slug"]
|
||||
ctx := r.Context()
|
||||
rows, err := models.Organizations.Query(
|
||||
models.SelectWhere.Organizations.Slug.EQ(slug),
|
||||
|
|
|
|||
16
api/image.go
16
api/image.go
|
|
@ -11,14 +11,14 @@ import (
|
|||
"github.com/Gleipnir-Technology/nidus-sync/platform/file"
|
||||
"github.com/aarondl/opt/omit"
|
||||
"github.com/aarondl/opt/omitnull"
|
||||
"github.com/go-chi/chi/v5"
|
||||
"github.com/go-chi/render"
|
||||
"github.com/google/uuid"
|
||||
"github.com/gorilla/mux"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
func apiImagePost(w http.ResponseWriter, r *http.Request, u platform.User) {
|
||||
id := chi.URLParam(r, "uuid")
|
||||
vars := mux.Vars(r)
|
||||
id := vars["uuid"]
|
||||
noteUUID, err := uuid.Parse(id)
|
||||
if err != nil {
|
||||
http.Error(w, "Failed to decode the uuid", http.StatusBadRequest)
|
||||
|
|
@ -48,14 +48,15 @@ func apiImagePost(w http.ResponseWriter, r *http.Request, u platform.User) {
|
|||
}
|
||||
err = platform.NoteImageCreate(ctx, u, setter)
|
||||
if err != nil {
|
||||
render.Render(w, r, errRender(err))
|
||||
renderShim(w, r, errRender(err))
|
||||
return
|
||||
}
|
||||
w.WriteHeader(http.StatusAccepted)
|
||||
}
|
||||
|
||||
func apiImageContentGet(w http.ResponseWriter, r *http.Request, u platform.User) {
|
||||
u_str := chi.URLParam(r, "uuid")
|
||||
vars := mux.Vars(r)
|
||||
u_str := vars["uuid"]
|
||||
imageUUID, err := uuid.Parse(u_str)
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg("Failed to parse image UUID")
|
||||
|
|
@ -65,7 +66,8 @@ func apiImageContentGet(w http.ResponseWriter, r *http.Request, u platform.User)
|
|||
w.WriteHeader(http.StatusOK)
|
||||
}
|
||||
func apiImageContentPost(w http.ResponseWriter, r *http.Request, u platform.User) {
|
||||
u_str := chi.URLParam(r, "uuid")
|
||||
vars := mux.Vars(r)
|
||||
u_str := vars["uuid"]
|
||||
imageUUID, err := uuid.Parse(u_str)
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg("Failed to parse image UUID")
|
||||
|
|
@ -73,7 +75,7 @@ func apiImageContentPost(w http.ResponseWriter, r *http.Request, u platform.User
|
|||
}
|
||||
err = file.ImageFileContentWrite(imageUUID, r.Body)
|
||||
if err != nil {
|
||||
render.Render(w, r, errRender(err))
|
||||
renderShim(w, r, errRender(err))
|
||||
return
|
||||
}
|
||||
w.WriteHeader(http.StatusOK)
|
||||
|
|
|
|||
|
|
@ -5,14 +5,15 @@ import (
|
|||
"strconv"
|
||||
|
||||
"github.com/Gleipnir-Technology/nidus-sync/platform"
|
||||
"github.com/go-chi/chi/v5"
|
||||
"github.com/gorilla/mux"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
func getTile(w http.ResponseWriter, r *http.Request, user platform.User) {
|
||||
x_str := chi.URLParam(r, "x")
|
||||
y_str := chi.URLParam(r, "y")
|
||||
z_str := chi.URLParam(r, "z")
|
||||
vars := mux.Vars(r)
|
||||
x_str := vars["x"]
|
||||
y_str := vars["y"]
|
||||
z_str := vars["z"]
|
||||
|
||||
x, err := strconv.Atoi(x_str)
|
||||
if err != nil {
|
||||
|
|
|
|||
20
api/types.go
20
api/types.go
|
|
@ -8,7 +8,7 @@ import (
|
|||
"github.com/Gleipnir-Technology/nidus-sync/h3utils"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/platform"
|
||||
"github.com/aarondl/opt/null"
|
||||
"github.com/go-chi/render"
|
||||
//"github.com/gorilla/mux"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
|
|
@ -95,7 +95,6 @@ type ResponseFieldseeker struct {
|
|||
TrapData []ResponseTrapData `json:"traps"`
|
||||
}
|
||||
|
||||
// ResponseErr renderer type for handling all sorts of errors.
|
||||
type ResponseClientIos struct {
|
||||
Fieldseeker ResponseFieldseeker `json:"fieldseeker"`
|
||||
Since time.Time `json:"since"`
|
||||
|
|
@ -105,23 +104,6 @@ func (i ResponseClientIos) Render(w http.ResponseWriter, r *http.Request) error
|
|||
return nil
|
||||
}
|
||||
|
||||
// In the best case scenario, the excellent github.com/pkg/errors package
|
||||
// helps reveal information on the error, setting it on Err, and in the Render()
|
||||
// method, using it to set the application-specific error code in AppCode.
|
||||
type ResponseErr struct {
|
||||
Error error `json:"-"` // low-level runtime error
|
||||
HTTPStatusCode int `json:"-"` // http response status code
|
||||
|
||||
StatusText string `json:"status"` // user-level status message
|
||||
AppCode int64 `json:"code,omitempty"` // application-specific error code
|
||||
ErrorText string `json:"error,omitempty"` // application-level error message, for debugging
|
||||
}
|
||||
|
||||
func (e *ResponseErr) Render(w http.ResponseWriter, r *http.Request) error {
|
||||
render.Status(r, e.HTTPStatusCode)
|
||||
return nil
|
||||
}
|
||||
|
||||
type ResponseMosquitoInspection struct {
|
||||
ActionTaken string `json:"action_taken"`
|
||||
Comments string `json:"comments"`
|
||||
|
|
|
|||
|
|
@ -11,12 +11,13 @@ import (
|
|||
nhttp "github.com/Gleipnir-Technology/nidus-sync/http"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/platform"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/platform/file"
|
||||
"github.com/go-chi/chi/v5"
|
||||
"github.com/gorilla/mux"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
func getUploadByID(ctx context.Context, r *http.Request, u platform.User, query queryParams) (*platform.Upload, *nhttp.ErrorWithStatus) {
|
||||
file_id_str := chi.URLParam(r, "id")
|
||||
vars := mux.Vars(r)
|
||||
file_id_str := vars["id"]
|
||||
file_id_, err := strconv.ParseInt(file_id_str, 10, 32)
|
||||
if err != nil {
|
||||
return nil, nhttp.NewError("Failed to parse file_id: %w", err)
|
||||
|
|
@ -76,7 +77,8 @@ func getUploadPoolCustomCreate(ctx context.Context, r *http.Request, u platform.
|
|||
type FormUploadCommit struct{}
|
||||
|
||||
func postUploadCommit(ctx context.Context, r *http.Request, u platform.User, f FormUploadCommit) (string, *nhttp.ErrorWithStatus) {
|
||||
file_id_str := chi.URLParam(r, "id")
|
||||
vars := mux.Vars(r)
|
||||
file_id_str := vars["id"]
|
||||
file_id_, err := strconv.ParseInt(file_id_str, 10, 32)
|
||||
if err != nil {
|
||||
return "", nhttp.NewError("Failed to parse file_id: %w", err)
|
||||
|
|
@ -92,7 +94,8 @@ func postUploadCommit(ctx context.Context, r *http.Request, u platform.User, f F
|
|||
type FormUploadDiscard struct{}
|
||||
|
||||
func postUploadDiscard(ctx context.Context, r *http.Request, u platform.User, f FormUploadDiscard) (string, *nhttp.ErrorWithStatus) {
|
||||
file_id_str := chi.URLParam(r, "id")
|
||||
vars := mux.Vars(r)
|
||||
file_id_str := vars["id"]
|
||||
file_id_, err := strconv.ParseInt(file_id_str, 10, 32)
|
||||
if err != nil {
|
||||
return "", nhttp.NewError("Failed to parse file_id: %w", err)
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import (
|
|||
"github.com/Gleipnir-Technology/nidus-sync/html"
|
||||
nhttp "github.com/Gleipnir-Technology/nidus-sync/http"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/platform"
|
||||
"github.com/go-chi/chi/v5"
|
||||
"github.com/gorilla/mux"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
|
|
@ -101,7 +101,8 @@ func listUserSuggestion(ctx context.Context, r *http.Request, user platform.User
|
|||
|
||||
func userPut(ctx context.Context, r *http.Request, user platform.User, updates platform.UserChangeRequest) (string, *nhttp.ErrorWithStatus) {
|
||||
log.Info().Str("avatar", updates.Avatar).Msg("doing updates")
|
||||
user_id_str := chi.URLParam(r, "id")
|
||||
vars := mux.Vars(r)
|
||||
user_id_str := vars["id"]
|
||||
user_id, err := strconv.Atoi(user_id_str)
|
||||
if err != nil {
|
||||
return "", nhttp.NewErrorStatus(http.StatusBadRequest, "user update: %w", err)
|
||||
|
|
|
|||
10
go.mod
10
go.mod
|
|
@ -12,13 +12,12 @@ require (
|
|||
github.com/alitto/pond/v2 v2.5.0
|
||||
github.com/chromedp/cdproto v0.0.0-20250724212937-08a3db8b4327
|
||||
github.com/chromedp/chromedp v0.14.2
|
||||
github.com/disintegration/imaging v1.6.2
|
||||
github.com/getsentry/sentry-go v0.42.0
|
||||
github.com/getsentry/sentry-go/zerolog v0.42.0
|
||||
github.com/go-chi/chi/v5 v5.2.3
|
||||
github.com/go-chi/hostrouter v0.3.0
|
||||
github.com/go-chi/render v1.0.3
|
||||
github.com/google/go-querystring v1.2.0
|
||||
github.com/google/uuid v1.6.0
|
||||
github.com/gorilla/mux v1.8.1
|
||||
github.com/gorilla/schema v1.4.1
|
||||
github.com/gorilla/websocket v1.5.3
|
||||
github.com/jackc/pgx/v5 v5.7.6
|
||||
|
|
@ -32,6 +31,7 @@ require (
|
|||
github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd
|
||||
github.com/shopspring/decimal v1.4.0
|
||||
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e
|
||||
github.com/stephenafamo/bob v0.42.0
|
||||
github.com/stephenafamo/scan v0.7.0
|
||||
github.com/tidwall/geojson v1.4.5
|
||||
github.com/twilio/twilio-go v1.29.1
|
||||
|
|
@ -42,13 +42,11 @@ require (
|
|||
)
|
||||
|
||||
require (
|
||||
github.com/ajg/form v1.5.1 // indirect
|
||||
github.com/andybalholm/brotli v1.2.0 // indirect
|
||||
github.com/bahlo/generic-list-go v0.2.0 // indirect
|
||||
github.com/beevik/etree v1.1.0 // indirect
|
||||
github.com/buger/jsonparser v1.1.1 // indirect
|
||||
github.com/chromedp/sysutil v1.1.0 // indirect
|
||||
github.com/disintegration/imaging v1.6.2 // indirect
|
||||
github.com/dustin/go-humanize v1.0.1 // indirect
|
||||
github.com/go-ini/ini v1.67.0 // indirect
|
||||
github.com/go-json-experiment/json v0.0.0-20250725192818-e39067aee2d2 // indirect
|
||||
|
|
@ -57,7 +55,6 @@ require (
|
|||
github.com/gobwas/ws v1.4.0 // indirect
|
||||
github.com/golang-jwt/jwt/v5 v5.2.2 // indirect
|
||||
github.com/golang/mock v1.6.0 // indirect
|
||||
github.com/gorilla/mux v1.8.1 // indirect
|
||||
github.com/invopop/jsonschema v0.13.0 // indirect
|
||||
github.com/jackc/pgpassfile v1.0.0 // indirect
|
||||
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
|
||||
|
|
@ -78,7 +75,6 @@ require (
|
|||
github.com/qdm12/reprint v0.0.0-20200326205758-722754a53494 // indirect
|
||||
github.com/rs/xid v1.6.0 // indirect
|
||||
github.com/sethvargo/go-retry v0.3.0 // indirect
|
||||
github.com/stephenafamo/bob v0.42.0 // indirect
|
||||
github.com/tidwall/geoindex v1.4.4 // indirect
|
||||
github.com/tidwall/gjson v1.12.1 // indirect
|
||||
github.com/tidwall/match v1.1.1 // indirect
|
||||
|
|
|
|||
9
go.sum
9
go.sum
|
|
@ -12,8 +12,6 @@ github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERo
|
|||
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
|
||||
github.com/aarondl/opt v0.0.0-20250607033636-982744e1bd65 h1:lbdPe4LBNmNDzeQFwNhEc88w90841qv737MI4+aXSYU=
|
||||
github.com/aarondl/opt v0.0.0-20250607033636-982744e1bd65/go.mod h1:+xKBXrTAUOvrDXO5PRwIr4E1wciHY3Glgl+6OkCXknU=
|
||||
github.com/ajg/form v1.5.1 h1:t9c7v8JUKu/XxOGBU0yjNpaMloxGEJhUkqFRq0ibGeU=
|
||||
github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY=
|
||||
github.com/alecthomas/assert/v2 v2.10.0 h1:jjRCHsj6hBJhkmhznrCzoNpbA3zqy0fYiUcYZP/GkPY=
|
||||
github.com/alecthomas/assert/v2 v2.10.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k=
|
||||
github.com/alecthomas/repr v0.4.0 h1:GhI2A8MACjfegCPVq9f1FLvIBS+DrQ2KQBFZP1iFzXc=
|
||||
|
|
@ -75,13 +73,6 @@ github.com/getsentry/sentry-go v0.42.0 h1:eeFMACuZTbUQf90RE8dE4tXeSe4CZyfvR1MBL7
|
|||
github.com/getsentry/sentry-go v0.42.0/go.mod h1:eRXCoh3uvmjQLY6qu63BjUZnaBu5L5WhMV1RwYO8W5s=
|
||||
github.com/getsentry/sentry-go/zerolog v0.42.0 h1:FDvGyxz7IGW8bzomAJuEFiEToq89PrOLsxQ28XYLsDc=
|
||||
github.com/getsentry/sentry-go/zerolog v0.42.0/go.mod h1:cY2lSFOu3cJXhvJuUfcBeyq19QRPYt6OIAvpdwhKkfE=
|
||||
github.com/go-chi/chi/v5 v5.2.0/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8=
|
||||
github.com/go-chi/chi/v5 v5.2.3 h1:WQIt9uxdsAbgIYgid+BpYc+liqQZGMHRaUwp0JUcvdE=
|
||||
github.com/go-chi/chi/v5 v5.2.3/go.mod h1:L2yAIGWB3H+phAw1NxKwWM+7eUH/lU8pOMm5hHcoops=
|
||||
github.com/go-chi/hostrouter v0.3.0 h1:75it1eO3FvkG8te1CvU6Kvr3WzAZNEBbo8xIrxUKLOQ=
|
||||
github.com/go-chi/hostrouter v0.3.0/go.mod h1:KLB+7PH/ceOr6FCmMyWD2Dmql/clpOe+y7I7CUeTkaQ=
|
||||
github.com/go-chi/render v1.0.3 h1:AsXqd2a1/INaIfUSKq3G5uA8weYx20FOsM7uSoCyyt4=
|
||||
github.com/go-chi/render v1.0.3/go.mod h1:/gr3hVkmYR0YlEy3LxCuVRFzEu9Ruok+gFqbIofjao0=
|
||||
github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA=
|
||||
github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
|
||||
github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A=
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import (
|
|||
"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/gorilla/mux"
|
||||
)
|
||||
|
||||
type ContentDistrict struct {
|
||||
|
|
@ -23,7 +23,8 @@ type ContentDistrictList struct {
|
|||
}
|
||||
|
||||
func districtBySlug(r *http.Request) (*models.Organization, error) {
|
||||
slug := chi.URLParam(r, "slug")
|
||||
vars := mux.Vars(r)
|
||||
slug := vars["slug"]
|
||||
district, err := models.Organizations.Query(
|
||||
models.SelectWhere.Organizations.Slug.EQ(slug),
|
||||
).One(r.Context(), db.PGInstance.BobDB)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import (
|
|||
"github.com/Gleipnir-Technology/nidus-sync/html"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/platform/email"
|
||||
"github.com/aarondl/opt/omit"
|
||||
"github.com/go-chi/chi/v5"
|
||||
"github.com/gorilla/mux"
|
||||
)
|
||||
|
||||
type ContentEmail struct {
|
||||
|
|
@ -16,7 +16,8 @@ type ContentEmail struct {
|
|||
}
|
||||
|
||||
func getEmailByCode(w http.ResponseWriter, r *http.Request) {
|
||||
id := chi.URLParam(r, "code")
|
||||
vars := mux.Vars(r)
|
||||
id := vars["code"]
|
||||
//id := r.FormValue("id")
|
||||
if id == "" {
|
||||
http.Error(w, "You must specify an id", http.StatusBadRequest)
|
||||
|
|
|
|||
|
|
@ -4,13 +4,14 @@ import (
|
|||
"net/http"
|
||||
|
||||
"github.com/Gleipnir-Technology/nidus-sync/platform/file"
|
||||
"github.com/go-chi/chi/v5"
|
||||
"github.com/google/uuid"
|
||||
"github.com/gorilla/mux"
|
||||
)
|
||||
|
||||
// ServeImageByUUID reads an image with the given UUID from disk and writes it to the HTTP response
|
||||
func getImageByUUID(w http.ResponseWriter, r *http.Request) {
|
||||
u := chi.URLParam(r, "uuid")
|
||||
vars := mux.Vars(r)
|
||||
u := vars["uuid"]
|
||||
if u == "" {
|
||||
http.NotFound(w, r)
|
||||
return
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import (
|
|||
"github.com/Gleipnir-Technology/nidus-sync/db"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/html"
|
||||
nhttp "github.com/Gleipnir-Technology/nidus-sync/http"
|
||||
"github.com/go-chi/chi/v5"
|
||||
"github.com/gorilla/mux"
|
||||
"github.com/rs/zerolog/log"
|
||||
"github.com/stephenafamo/scan"
|
||||
//"github.com/Gleipnir-Technology/nidus-sync/config"
|
||||
|
|
@ -34,7 +34,8 @@ type contentMailer struct {
|
|||
}
|
||||
|
||||
func getMailer(ctx context.Context, r *http.Request) (*html.Response[contentMailer], *nhttp.ErrorWithStatus) {
|
||||
public_id := chi.URLParam(r, "public_id")
|
||||
vars := mux.Vars(r)
|
||||
public_id := vars["public_id"]
|
||||
if public_id == "" {
|
||||
return nil, nhttp.NewErrorStatus(http.StatusBadRequest, "No 'public_id' in the url params")
|
||||
}
|
||||
|
|
@ -81,7 +82,8 @@ func getMailer(ctx context.Context, r *http.Request) (*html.Response[contentMail
|
|||
|
||||
}
|
||||
func getMailerConfirm(ctx context.Context, r *http.Request) (*html.Response[contentMailer], *nhttp.ErrorWithStatus) {
|
||||
public_id := chi.URLParam(r, "public_id")
|
||||
vars := mux.Vars(r)
|
||||
public_id := vars["public_id"]
|
||||
if public_id == "" {
|
||||
return nil, nhttp.NewErrorStatus(http.StatusBadRequest, "No 'public_id' in the url params")
|
||||
}
|
||||
|
|
@ -92,7 +94,8 @@ func getMailerConfirm(ctx context.Context, r *http.Request) (*html.Response[cont
|
|||
), nil
|
||||
}
|
||||
func getMailerContribute(ctx context.Context, r *http.Request) (*html.Response[contentMailer], *nhttp.ErrorWithStatus) {
|
||||
public_id := chi.URLParam(r, "public_id")
|
||||
vars := mux.Vars(r)
|
||||
public_id := vars["public_id"]
|
||||
if public_id == "" {
|
||||
return nil, nhttp.NewErrorStatus(http.StatusBadRequest, "No 'public_id' in the url params")
|
||||
}
|
||||
|
|
@ -103,7 +106,8 @@ func getMailerContribute(ctx context.Context, r *http.Request) (*html.Response[c
|
|||
), nil
|
||||
}
|
||||
func getMailerEvidence(ctx context.Context, r *http.Request) (*html.Response[contentMailer], *nhttp.ErrorWithStatus) {
|
||||
public_id := chi.URLParam(r, "public_id")
|
||||
vars := mux.Vars(r)
|
||||
public_id := vars["public_id"]
|
||||
if public_id == "" {
|
||||
return nil, nhttp.NewErrorStatus(http.StatusBadRequest, "No 'public_id' in the url params")
|
||||
}
|
||||
|
|
@ -114,7 +118,8 @@ func getMailerEvidence(ctx context.Context, r *http.Request) (*html.Response[con
|
|||
), nil
|
||||
}
|
||||
func getMailerSchedule(ctx context.Context, r *http.Request) (*html.Response[contentMailer], *nhttp.ErrorWithStatus) {
|
||||
public_id := chi.URLParam(r, "public_id")
|
||||
vars := mux.Vars(r)
|
||||
public_id := vars["public_id"]
|
||||
if public_id == "" {
|
||||
return nil, nhttp.NewErrorStatus(http.StatusBadRequest, "No 'public_id' in the url params")
|
||||
}
|
||||
|
|
@ -125,7 +130,8 @@ func getMailerSchedule(ctx context.Context, r *http.Request) (*html.Response[con
|
|||
), nil
|
||||
}
|
||||
func getMailerUpdate(ctx context.Context, r *http.Request) (*html.Response[contentMailer], *nhttp.ErrorWithStatus) {
|
||||
public_id := chi.URLParam(r, "public_id")
|
||||
vars := mux.Vars(r)
|
||||
public_id := vars["public_id"]
|
||||
if public_id == "" {
|
||||
return nil, nhttp.NewErrorStatus(http.StatusBadRequest, "No 'public_id' in the url params")
|
||||
}
|
||||
|
|
@ -140,7 +146,8 @@ type formMailerConfirm struct{}
|
|||
|
||||
func postMailerConfirm(ctx context.Context, r *http.Request, form formMailerConfirm) (string, *nhttp.ErrorWithStatus) {
|
||||
log.Info().Msg("Fake confirm location")
|
||||
public_id := chi.URLParam(r, "public_id")
|
||||
vars := mux.Vars(r)
|
||||
public_id := vars["public_id"]
|
||||
if public_id == "" {
|
||||
return "", nhttp.NewErrorStatus(http.StatusBadRequest, "No 'public_id' in the url params")
|
||||
}
|
||||
|
|
|
|||
17
rmo/mock.go
17
rmo/mock.go
|
|
@ -5,7 +5,7 @@ import (
|
|||
|
||||
"github.com/Gleipnir-Technology/nidus-sync/config"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/html"
|
||||
"github.com/go-chi/chi/v5"
|
||||
"github.com/gorilla/mux"
|
||||
)
|
||||
|
||||
type ContentMock struct {
|
||||
|
|
@ -14,12 +14,12 @@ type ContentMock struct {
|
|||
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 addMockRoutes(r *mux.Router) {
|
||||
r.HandleFunc("/", renderMock("rmo/mock/root.html"))
|
||||
r.HandleFunc("/district/{slug}", renderMock("rmo/mock/district-root.html"))
|
||||
r.HandleFunc("/district/{slug}/nuisance-submit-complete", renderMock("rmo/mock/nuisance-submit-complete.html"))
|
||||
r.HandleFunc("/nuisance", renderMock("rmo/mock/nuisance.html"))
|
||||
r.HandleFunc("/nuisance-submit-complete", renderMock("rmo/mock/nuisance-submit-complete.html"))
|
||||
}
|
||||
|
||||
func makeContentURLMock(slug string) ContentURL {
|
||||
|
|
@ -35,7 +35,8 @@ func makeURLMock(slug, p string) string {
|
|||
}
|
||||
func renderMock(t string) func(http.ResponseWriter, *http.Request) {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
slug := chi.URLParam(r, "slug")
|
||||
vars := mux.Vars(r)
|
||||
slug := vars["slug"]
|
||||
if slug == "" {
|
||||
slug = "delta-mvcd"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,8 +14,8 @@ import (
|
|||
"github.com/Gleipnir-Technology/nidus-sync/db"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/db/enums"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/platform"
|
||||
//"github.com/gorilla/mux"
|
||||
"github.com/stephenafamo/scan"
|
||||
//"github.com/go-chi/chi/v5"
|
||||
//"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -6,12 +6,13 @@ import (
|
|||
"net/http"
|
||||
"os"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
"github.com/gorilla/mux"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
func getScssDebug(w http.ResponseWriter, r *http.Request) {
|
||||
path := chi.URLParam(r, "*")
|
||||
vars := mux.Vars(r)
|
||||
path := vars["*"]
|
||||
full_path := "scss/" + path
|
||||
//log.Debug().Str("path", path).Str("full_path", full_path).Msg("working on SCSS debug")
|
||||
file, err := os.Open(full_path)
|
||||
|
|
|
|||
|
|
@ -14,8 +14,8 @@ import (
|
|||
"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/google/uuid"
|
||||
"github.com/gorilla/mux"
|
||||
//"github.com/rs/zerolog/log"
|
||||
"github.com/stephenafamo/scan"
|
||||
"golang.org/x/text/cases"
|
||||
|
|
@ -270,7 +270,8 @@ func addContentFromWater(result *ContentStatusByID, water *models.PublicreportWa
|
|||
}
|
||||
|
||||
func getStatusByID(w http.ResponseWriter, r *http.Request) {
|
||||
report_id := chi.URLParam(r, "report_id")
|
||||
vars := mux.Vars(r)
|
||||
report_id := vars["report_id"]
|
||||
ctx := r.Context()
|
||||
|
||||
report, err := models.PublicreportReports.Query(
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import (
|
|||
"github.com/Gleipnir-Technology/nidus-sync/html"
|
||||
nhttp "github.com/Gleipnir-Technology/nidus-sync/http"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/platform"
|
||||
"github.com/go-chi/chi/v5"
|
||||
"github.com/gorilla/mux"
|
||||
"github.com/uber/h3-go/v4"
|
||||
)
|
||||
|
||||
|
|
@ -21,7 +21,8 @@ type contentCell struct {
|
|||
}
|
||||
|
||||
func getCellDetails(ctx context.Context, r *http.Request, user platform.User) (*html.Response[contentCell], *nhttp.ErrorWithStatus) {
|
||||
cell_str := chi.URLParam(r, "cell")
|
||||
vars := mux.Vars(r)
|
||||
cell_str := vars["cell"]
|
||||
if cell_str == "" {
|
||||
return nil, nhttp.NewErrorStatus(http.StatusBadRequest, "There should always be a cell")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ import (
|
|||
"github.com/Gleipnir-Technology/nidus-sync/html"
|
||||
nhttp "github.com/Gleipnir-Technology/nidus-sync/http"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/platform"
|
||||
"github.com/go-chi/chi/v5"
|
||||
"github.com/google/uuid"
|
||||
"github.com/gorilla/mux"
|
||||
)
|
||||
|
||||
type contentSource struct {
|
||||
|
|
@ -44,7 +44,8 @@ func getRoot(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
|
||||
func getSource(ctx context.Context, r *http.Request, user platform.User) (*html.Response[contentSource], *nhttp.ErrorWithStatus) {
|
||||
globalid_s := chi.URLParam(r, "globalid")
|
||||
vars := mux.Vars(r)
|
||||
globalid_s := vars["globalid"]
|
||||
if globalid_s == "" {
|
||||
return nil, nhttp.NewError("No globalid provided: %w", nil)
|
||||
}
|
||||
|
|
@ -86,7 +87,8 @@ func getTemplateTest(w http.ResponseWriter, r *http.Request) {
|
|||
html.RenderOrError(w, "sync/template-test.html", nil)
|
||||
}
|
||||
func getTrap(ctx context.Context, r *http.Request, user platform.User) (*html.Response[contentTrap], *nhttp.ErrorWithStatus) {
|
||||
globalid_s := chi.URLParam(r, "globalid")
|
||||
vars := mux.Vars(r)
|
||||
globalid_s := vars["globalid"]
|
||||
if globalid_s == "" {
|
||||
return nil, nhttp.NewError("No globalid provided: %w", nil)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ import (
|
|||
"github.com/Gleipnir-Technology/nidus-sync/html"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/platform"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/platform/pdf"
|
||||
"github.com/go-chi/chi/v5"
|
||||
"github.com/google/uuid"
|
||||
"github.com/gorilla/mux"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
|
|
@ -54,7 +54,8 @@ func getMailer2(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
}
|
||||
func getMailer3(w http.ResponseWriter, r *http.Request) {
|
||||
code := chi.URLParam(r, "code")
|
||||
vars := mux.Vars(r)
|
||||
code := vars["code"]
|
||||
if code == "" {
|
||||
http.Error(w, "empty code", http.StatusBadRequest)
|
||||
return
|
||||
|
|
@ -102,7 +103,8 @@ func getMailer2Preview(w http.ResponseWriter, r *http.Request) {
|
|||
})
|
||||
}
|
||||
func getMailer3Preview(w http.ResponseWriter, r *http.Request) {
|
||||
code := chi.URLParam(r, "code")
|
||||
vars := mux.Vars(r)
|
||||
code := vars["code"]
|
||||
if code == "" {
|
||||
http.Error(w, "empty code", http.StatusBadRequest)
|
||||
return
|
||||
|
|
|
|||
|
|
@ -6,11 +6,12 @@ import (
|
|||
"strconv"
|
||||
|
||||
"github.com/Gleipnir-Technology/nidus-sync/config"
|
||||
"github.com/go-chi/chi/v5"
|
||||
"github.com/gorilla/mux"
|
||||
)
|
||||
|
||||
func getQRCodeMailer(w http.ResponseWriter, r *http.Request) {
|
||||
code := chi.URLParam(r, "code")
|
||||
vars := mux.Vars(r)
|
||||
code := vars["code"]
|
||||
if code == "" {
|
||||
respondError(w, "There should always be a id", nil, http.StatusBadRequest)
|
||||
}
|
||||
|
|
@ -23,7 +24,8 @@ func getQRCodeMarketing(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
|
||||
func getQRCodeReport(w http.ResponseWriter, r *http.Request) {
|
||||
code := chi.URLParam(r, "code")
|
||||
vars := mux.Vars(r)
|
||||
code := vars["code"]
|
||||
if code == "" {
|
||||
respondError(w, "There should always be a code", nil, http.StatusBadRequest)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
"github.com/gorilla/mux"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
|
|
@ -184,7 +184,8 @@ func postSMS(w http.ResponseWriter, r *http.Request) {
|
|||
w.Write([]byte("ok"))
|
||||
}
|
||||
func getSMS(w http.ResponseWriter, r *http.Request) {
|
||||
org := chi.URLParam(r, "org")
|
||||
vars := mux.Vars(r)
|
||||
org := vars["org"]
|
||||
|
||||
to := r.URL.Query().Get("error")
|
||||
from := r.URL.Query().Get("error")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue