github.com/infraboard/keyauth@v0.8.1/apps/policy/http/policy.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/policy" 11 "github.com/infraboard/keyauth/apps/token" 12 ) 13 14 func (h *handler) List(w http.ResponseWriter, r *http.Request) { 15 ctx := context.GetContext(r) 16 tk := ctx.AuthInfo.(*token.Token) 17 18 req := policy.NewQueryPolicyRequestFromHTTP(r) 19 req.Domain = tk.Domain 20 21 apps, err := h.service.QueryPolicy( 22 r.Context(), 23 req, 24 ) 25 if err != nil { 26 response.Failed(w, err) 27 return 28 } 29 30 response.Success(w, apps) 31 } 32 33 // CreateApplication 创建主账号 34 func (h *handler) Create(w http.ResponseWriter, r *http.Request) { 35 // 用户添加的策略都是自定义策略 36 req := policy.NewCreatePolicyRequest() 37 if err := request.GetDataFromRequest(r, req); err != nil { 38 response.Failed(w, err) 39 return 40 } 41 req.Type = policy.PolicyType_CUSTOM 42 43 d, err := h.service.CreatePolicy( 44 r.Context(), 45 req, 46 ) 47 if err != nil { 48 response.Failed(w, err) 49 return 50 } 51 52 response.Success(w, d) 53 } 54 55 func (h *handler) Get(w http.ResponseWriter, r *http.Request) { 56 rctx := context.GetContext(r) 57 58 req := policy.NewDescriptPolicyRequest() 59 req.Id = rctx.PS.ByName("id") 60 61 d, err := h.service.DescribePolicy( 62 r.Context(), 63 req, 64 ) 65 if err != nil { 66 response.Failed(w, err) 67 return 68 } 69 70 response.Success(w, d) 71 } 72 73 func (h *handler) Delete(w http.ResponseWriter, r *http.Request) { 74 ctx := context.GetContext(r) 75 tk := ctx.AuthInfo.(*token.Token) 76 77 req := policy.NewDeletePolicyRequestWithID(ctx.PS.ByName("id")) 78 req.Domain = tk.Domain 79 80 _, err := h.service.DeletePolicy( 81 r.Context(), 82 req, 83 ) 84 if err != nil { 85 response.Failed(w, err) 86 return 87 } 88 89 response.Success(w, "delete ok") 90 }