mirror of
https://github.com/GlueOps/autoglue.git
synced 2026-02-13 12:50:05 +01:00
36 lines
965 B
Go
36 lines
965 B
Go
package api
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/glueops/autoglue/internal/handlers"
|
|
"github.com/go-chi/chi/v5"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
func mountOrgRoutes(r chi.Router, db *gorm.DB, authUser, authOrg func(http.Handler) http.Handler) {
|
|
r.Route("/orgs", func(o chi.Router) {
|
|
o.Use(authUser)
|
|
o.Get("/", handlers.ListMyOrgs(db))
|
|
o.Post("/", handlers.CreateOrg(db))
|
|
|
|
o.Group(func(og chi.Router) {
|
|
og.Use(authOrg)
|
|
|
|
og.Get("/{id}", handlers.GetOrg(db))
|
|
og.Patch("/{id}", handlers.UpdateOrg(db))
|
|
og.Delete("/{id}", handlers.DeleteOrg(db))
|
|
|
|
// members
|
|
og.Get("/{id}/members", handlers.ListMembers(db))
|
|
og.Post("/{id}/members", handlers.AddOrUpdateMember(db))
|
|
og.Delete("/{id}/members/{user_id}", handlers.RemoveMember(db))
|
|
|
|
// org-scoped key/secret pair
|
|
og.Get("/{id}/api-keys", handlers.ListOrgKeys(db))
|
|
og.Post("/{id}/api-keys", handlers.CreateOrgKey(db))
|
|
og.Delete("/{id}/api-keys/{key_id}", handlers.DeleteOrgKey(db))
|
|
})
|
|
})
|
|
}
|