github.com/infraboard/keyauth@v0.8.1/apps/user/http/password.go (about)

     1  package http
     2  
     3  import (
     4  	"net/http"
     5  
     6  	"github.com/infraboard/keyauth/apps/token"
     7  	"github.com/infraboard/keyauth/apps/user"
     8  	"github.com/infraboard/mcube/http/context"
     9  	"github.com/infraboard/mcube/http/request"
    10  	"github.com/infraboard/mcube/http/response"
    11  )
    12  
    13  func (h *handler) UpdatePassword(w http.ResponseWriter, r *http.Request) {
    14  	ctx := context.GetContext(r)
    15  	tk := ctx.AuthInfo.(*token.Token)
    16  
    17  	// 解析需要更新的数据
    18  	req := user.NewUpdatePasswordRequest()
    19  	if err := request.GetDataFromRequest(r, req); err != nil {
    20  		response.Failed(w, err)
    21  		return
    22  	}
    23  	req.Account = tk.Account
    24  
    25  	pass, err := h.service.UpdateAccountPassword(r.Context(), req)
    26  	if err != nil {
    27  		response.Failed(w, err)
    28  		return
    29  	}
    30  
    31  	pass.Password = ""
    32  	response.Success(w, pass)
    33  	return
    34  }
    35  
    36  func (h *handler) GeneratePassword(w http.ResponseWriter, r *http.Request) {
    37  	// 解析需要更新的数据
    38  	req := user.NewGeneratePasswordRequest()
    39  	if err := request.GetDataFromRequest(r, req); err != nil {
    40  		response.Failed(w, err)
    41  		return
    42  	}
    43  
    44  	pass, err := h.service.GeneratePassword(
    45  		r.Context(),
    46  		req,
    47  	)
    48  	if err != nil {
    49  		response.Failed(w, err)
    50  		return
    51  	}
    52  
    53  	response.Success(w, pass)
    54  	return
    55  }