Add organization to all authorized endpoints
We use it in filtering quite a bit.
This commit is contained in:
parent
e1bcbf79b1
commit
502a4d15df
6 changed files with 23 additions and 43 deletions
16
api/api.go
16
api/api.go
|
|
@ -24,7 +24,7 @@ import (
|
|||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
func apiAudioPost(w http.ResponseWriter, r *http.Request, u *models.User) {
|
||||
func apiAudioPost(w http.ResponseWriter, r *http.Request, org *models.Organization, u *models.User) {
|
||||
id := chi.URLParam(r, "uuid")
|
||||
noteUUID, err := uuid.Parse(id)
|
||||
if err != nil {
|
||||
|
|
@ -61,7 +61,7 @@ func apiAudioPost(w http.ResponseWriter, r *http.Request, u *models.User) {
|
|||
w.WriteHeader(http.StatusAccepted)
|
||||
}
|
||||
|
||||
func apiAudioContentPost(w http.ResponseWriter, r *http.Request, u *models.User) {
|
||||
func apiAudioContentPost(w http.ResponseWriter, r *http.Request, org *models.Organization, u *models.User) {
|
||||
u_str := chi.URLParam(r, "uuid")
|
||||
audioUUID, err := uuid.Parse(u_str)
|
||||
if err != nil {
|
||||
|
|
@ -78,7 +78,7 @@ func apiAudioContentPost(w http.ResponseWriter, r *http.Request, u *models.User)
|
|||
w.WriteHeader(http.StatusOK)
|
||||
}
|
||||
|
||||
func handleClientIos(w http.ResponseWriter, r *http.Request, u *models.User) {
|
||||
func handleClientIos(w http.ResponseWriter, r *http.Request, org *models.Organization, u *models.User) {
|
||||
var sinceStr string
|
||||
err := r.ParseForm()
|
||||
if err != nil {
|
||||
|
|
@ -121,7 +121,7 @@ func handleClientIos(w http.ResponseWriter, r *http.Request, u *models.User) {
|
|||
}
|
||||
}
|
||||
|
||||
func apiImagePost(w http.ResponseWriter, r *http.Request, u *models.User) {
|
||||
func apiImagePost(w http.ResponseWriter, r *http.Request, org *models.Organization, u *models.User) {
|
||||
id := chi.URLParam(r, "uuid")
|
||||
noteUUID, err := uuid.Parse(id)
|
||||
if err != nil {
|
||||
|
|
@ -156,7 +156,7 @@ func apiImagePost(w http.ResponseWriter, r *http.Request, u *models.User) {
|
|||
w.WriteHeader(http.StatusAccepted)
|
||||
}
|
||||
|
||||
func apiImageContentPost(w http.ResponseWriter, r *http.Request, u *models.User) {
|
||||
func apiImageContentPost(w http.ResponseWriter, r *http.Request, org *models.Organization, u *models.User) {
|
||||
u_str := chi.URLParam(r, "uuid")
|
||||
imageUUID, err := uuid.Parse(u_str)
|
||||
if err != nil {
|
||||
|
|
@ -173,7 +173,7 @@ func apiImageContentPost(w http.ResponseWriter, r *http.Request, u *models.User)
|
|||
fmt.Fprintf(w, "PNG uploaded successfully")
|
||||
}
|
||||
|
||||
func apiMosquitoSource(w http.ResponseWriter, r *http.Request, u *models.User) {
|
||||
func apiMosquitoSource(w http.ResponseWriter, r *http.Request, org *models.Organization, u *models.User) {
|
||||
bounds, err := parseBounds(r)
|
||||
if err != nil {
|
||||
render.Render(w, r, errRender(err))
|
||||
|
|
@ -198,7 +198,7 @@ func apiMosquitoSource(w http.ResponseWriter, r *http.Request, u *models.User) {
|
|||
}
|
||||
}
|
||||
|
||||
func apiTrapData(w http.ResponseWriter, r *http.Request, u *models.User) {
|
||||
func apiTrapData(w http.ResponseWriter, r *http.Request, org *models.Organization, u *models.User) {
|
||||
bounds, err := parseBounds(r)
|
||||
if err != nil {
|
||||
render.Render(w, r, errRender(err))
|
||||
|
|
@ -223,7 +223,7 @@ func apiTrapData(w http.ResponseWriter, r *http.Request, u *models.User) {
|
|||
}
|
||||
}
|
||||
|
||||
func apiServiceRequest(w http.ResponseWriter, r *http.Request, u *models.User) {
|
||||
func apiServiceRequest(w http.ResponseWriter, r *http.Request, org *models.Organization, u *models.User) {
|
||||
bounds, err := parseBounds(r)
|
||||
if err != nil {
|
||||
render.Render(w, r, errRender(err))
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ type ErrorAPI struct {
|
|||
}
|
||||
|
||||
func authenticatedHandlerJSON[T any](f handlerFunctionGet[T]) http.Handler {
|
||||
return auth.NewEnsureAuth(func(w http.ResponseWriter, r *http.Request, u *models.User) {
|
||||
return auth.NewEnsureAuth(func(w http.ResponseWriter, r *http.Request, org *models.Organization, u *models.User) {
|
||||
ctx := r.Context()
|
||||
org, err := u.Organization().One(ctx, db.PGInstance.BobDB)
|
||||
if err != nil {
|
||||
|
|
@ -82,7 +82,7 @@ func authenticatedHandlerJSON[T any](f handlerFunctionGet[T]) http.Handler {
|
|||
type handlerFunctionPost[ReqType any, ResponseType any] func(context.Context, *http.Request, *models.Organization, *models.User, ReqType) (ResponseType, *nhttp.ErrorWithStatus)
|
||||
|
||||
func authenticatedHandlerJSONPost[ReqType any, ResponseType any](f handlerFunctionPost[ReqType, ResponseType]) http.Handler {
|
||||
return auth.NewEnsureAuth(func(w http.ResponseWriter, r *http.Request, u *models.User) {
|
||||
return auth.NewEnsureAuth(func(w http.ResponseWriter, r *http.Request, org *models.Organization, u *models.User) {
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
var req ReqType
|
||||
body, err := io.ReadAll(r.Body)
|
||||
|
|
@ -96,11 +96,6 @@ func authenticatedHandlerJSONPost[ReqType any, ResponseType any](f handlerFuncti
|
|||
return
|
||||
}
|
||||
ctx := r.Context()
|
||||
org, err := u.Organization().One(ctx, db.PGInstance.BobDB)
|
||||
if err != nil {
|
||||
respondError(w, http.StatusInternalServerError, "Failed to get org: %w", err)
|
||||
return
|
||||
}
|
||||
response, e := f(ctx, r, org, u, req)
|
||||
if e != nil {
|
||||
http.Error(w, e.Error(), e.Status)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue