github.com/infraboard/keyauth@v0.8.1/apps/namespace/http/namespace.go (about) 1 package http 2 3 import ( 4 "net/http" 5 6 "github.com/infraboard/mcube/http/context" 7 "github.com/infraboard/mcube/http/request" 8 "github.com/infraboard/mcube/http/response" 9 10 "github.com/infraboard/keyauth/apps/namespace" 11 "github.com/infraboard/keyauth/apps/token" 12 ) 13 14 func (h *handler) List(w http.ResponseWriter, r *http.Request) { 15 req := namespace.NewQueryNamespaceRequestFromHTTP(r) 16 17 apps, err := h.service.QueryNamespace( 18 r.Context(), 19 req, 20 ) 21 if err != nil { 22 response.Failed(w, err) 23 return 24 } 25 26 response.Success(w, apps) 27 } 28 29 func (h *handler) ListSelfNamespace(w http.ResponseWriter, r *http.Request) { 30 ctx := context.GetContext(r) 31 tk := ctx.AuthInfo.(*token.Token) 32 33 req := namespace.NewQueryNamespaceRequestFromHTTP(r) 34 req.UpdateOwner(tk) 35 36 apps, err := h.service.QueryNamespace( 37 r.Context(), 38 req, 39 ) 40 if err != nil { 41 response.Failed(w, err) 42 return 43 } 44 45 response.Success(w, apps) 46 } 47 48 // CreateApplication 创建主账号 49 func (h *handler) Create(w http.ResponseWriter, r *http.Request) { 50 ctx := context.GetContext(r) 51 tk := ctx.AuthInfo.(*token.Token) 52 53 req := namespace.NewCreateNamespaceRequest() 54 if err := request.GetDataFromRequest(r, req); err != nil { 55 response.Failed(w, err) 56 return 57 } 58 req.UpdateOwner(tk) 59 60 d, err := h.service.CreateNamespace( 61 r.Context(), 62 req, 63 ) 64 if err != nil { 65 response.Failed(w, err) 66 return 67 } 68 69 response.Success(w, d) 70 } 71 72 func (h *handler) Get(w http.ResponseWriter, r *http.Request) { 73 rctx := context.GetContext(r) 74 75 qs := r.URL.Query() 76 req := namespace.NewDescriptNamespaceRequest() 77 req.Id = rctx.PS.ByName("id") 78 req.WithDepartment = qs.Get("with_department") == "true" 79 80 d, err := h.service.DescribeNamespace( 81 r.Context(), 82 req, 83 ) 84 if err != nil { 85 response.Failed(w, err) 86 return 87 } 88 89 response.Success(w, d) 90 } 91 92 func (h *handler) Delete(w http.ResponseWriter, r *http.Request) { 93 rctx := context.GetContext(r) 94 req := namespace.NewDeleteNamespaceRequestWithID(rctx.PS.ByName("id")) 95 96 _, err := h.service.DeleteNamespace( 97 r.Context(), 98 req, 99 ) 100 if err != nil { 101 response.Failed(w, err) 102 return 103 } 104 105 response.Success(w, "delete ok") 106 }