github.com/infraboard/keyauth@v0.8.1/apps/domain/http/domain.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/domain" 11 "github.com/infraboard/keyauth/apps/token" 12 ) 13 14 func (h *handler) ListDomains(w http.ResponseWriter, r *http.Request) { 15 ctx := context.GetContext(r) 16 tk := ctx.AuthInfo.(*token.Token) 17 18 page := request.NewPageRequestFromHTTP(r) 19 req := domain.NewQueryDomainRequest(page) 20 req.Owner = tk.Account 21 22 dommains, err := h.service.QueryDomain( 23 r.Context(), 24 req, 25 ) 26 if err != nil { 27 response.Failed(w, err) 28 return 29 } 30 response.Success(w, dommains) 31 } 32 33 func (h *handler) GetDomain(w http.ResponseWriter, r *http.Request) { 34 rctx := context.GetContext(r) 35 36 req := domain.NewDescribeDomainRequest() 37 req.Name = rctx.PS.ByName("name") 38 39 d, err := h.service.DescribeDomain( 40 r.Context(), 41 req, 42 ) 43 if err != nil { 44 response.Failed(w, err) 45 return 46 } 47 48 response.Success(w, d) 49 } 50 51 func (h *handler) CreateDomain(w http.ResponseWriter, r *http.Request) { 52 req := domain.NewCreateDomainRequest() 53 if err := request.GetDataFromRequest(r, req); err != nil { 54 response.Failed(w, err) 55 return 56 } 57 58 d, err := h.service.CreateDomain( 59 r.Context(), 60 req, 61 ) 62 if err != nil { 63 response.Failed(w, err) 64 return 65 } 66 67 response.Success(w, d) 68 } 69 70 func (h *handler) PutDomain(w http.ResponseWriter, r *http.Request) { 71 rctx := context.GetContext(r) 72 73 // 查找出原来的domain 74 req := domain.NewPutDomainRequest() 75 req.Name = rctx.PS.ByName("name") 76 77 // 解析需要更新的数据 78 if err := request.GetDataFromRequest(r, req.Profile); err != nil { 79 response.Failed(w, err) 80 return 81 } 82 83 ins, err := h.service.UpdateDomain( 84 r.Context(), 85 req, 86 ) 87 if err != nil { 88 response.Failed(w, err) 89 return 90 } 91 92 response.Success(w, ins) 93 } 94 95 func (h *handler) PatchDomain(w http.ResponseWriter, r *http.Request) { 96 rctx := context.GetContext(r) 97 98 // 查找出原来的domain 99 req := domain.NewPatchDomainRequest() 100 req.Name = rctx.PS.ByName("name") 101 102 // 解析需要更新的数据 103 if err := request.GetDataFromRequest(r, req.Profile); err != nil { 104 response.Failed(w, err) 105 return 106 } 107 108 ins, err := h.service.UpdateDomain( 109 r.Context(), 110 req, 111 ) 112 if err != nil { 113 response.Failed(w, err) 114 return 115 } 116 117 response.Success(w, ins) 118 } 119 120 func (h *handler) DeleteDomain(w http.ResponseWriter, r *http.Request) { 121 rctx := context.GetContext(r) 122 123 req := domain.NewDeleteDomainRequestByName(rctx.PS.ByName("name")) 124 125 _, err := h.service.DeleteDomain( 126 r.Context(), 127 req, 128 ) 129 if err != nil { 130 response.Failed(w, err) 131 return 132 } 133 134 response.Success(w, "delete ok") 135 } 136 137 func (h *handler) UpdateDomainSecurity(w http.ResponseWriter, r *http.Request) { 138 rctx := context.GetContext(r) 139 140 // 查找出原来的domain 141 req := domain.NewPutDomainSecurityRequest() 142 req.Name = rctx.PS.ByName("name") 143 req.SecuritySetting = domain.NewDefaultSecuritySetting() 144 145 // 解析需要更新的数据 146 if err := request.GetDataFromRequest(r, req.SecuritySetting); err != nil { 147 response.Failed(w, err) 148 return 149 } 150 151 ins, err := h.service.UpdateDomainSecurity( 152 r.Context(), 153 req, 154 ) 155 if err != nil { 156 response.Failed(w, err) 157 return 158 } 159 160 response.Success(w, ins) 161 }