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  }