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  }