feat(passport): 添加用户修改密码功能并优化响应解析
- 新增 ChangePassword 方法支持用户修改密码- 添加 ChangePasswordRequest 和 ChangePasswordResponse 结构体 - 实现用户修改密码的请求创建和响应解析 - 优化 response.go 中的解析逻辑,支持 text 格式 - 更新 client_test.go 中的测试用例
This commit is contained in:
		
							parent
							
								
									c8e5c19dc7
								
							
						
					
					
						commit
						90c2b1213a
					
				@ -110,11 +110,12 @@ func Unmarshal(response AcsResponse, httpResponse *http.Response, format string)
 | 
				
			|||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if format != "xml" {
 | 
						if format != "xml" && format != "text" {
 | 
				
			||||||
		err = jsoniter.Unmarshal(response.GetHttpContentBytes(), response)
 | 
							err = jsoniter.Unmarshal(response.GetHttpContentBytes(), response)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return errors.New("json Unmarshal:" + err.Error())
 | 
								return errors.New("json Unmarshal:" + err.Error())
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return
 | 
						return
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -63,3 +63,11 @@ func (c *Client) GetUserGameSign(req *GetUserGameSignRequest) (response *GetUser
 | 
				
			|||||||
	err = c.DoAction(req, response)
 | 
						err = c.DoAction(req, response)
 | 
				
			||||||
	return
 | 
						return
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ChangePassword
 | 
				
			||||||
 | 
					// 用户修改密码
 | 
				
			||||||
 | 
					func (c *Client) ChangePassword(req *ChangePasswordRequest) (response *ChangePasswordResponse, err error) {
 | 
				
			||||||
 | 
						response = CreateChangePasswordResponse()
 | 
				
			||||||
 | 
						err = c.DoAction(req, response)
 | 
				
			||||||
 | 
						return
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -78,3 +78,19 @@ func TestGetUserGameSign(t *testing.T) {
 | 
				
			|||||||
	t.Logf("resp code:%+v", resp.Code)
 | 
						t.Logf("resp code:%+v", resp.Code)
 | 
				
			||||||
	t.Logf("resp data:%+v", resp.Data)
 | 
						t.Logf("resp data:%+v", resp.Data)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 测试用户修改密码
 | 
				
			||||||
 | 
					func TestChangePassword(t *testing.T) {
 | 
				
			||||||
 | 
						client, err := NewClient()
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							t.Error(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						req := CreateChangePasswordRequest("rz35990497", "654321")
 | 
				
			||||||
 | 
						req.AcceptFormat = "text"
 | 
				
			||||||
 | 
						resp, err := client.ChangePassword(req)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							t.Error(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						// 记录文本结果
 | 
				
			||||||
 | 
						t.Logf("resp data:%+v", resp.GetHttpContentString())
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										42
									
								
								services/passport/getpwd.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								services/passport/getpwd.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,42 @@
 | 
				
			|||||||
 | 
					package passport
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"fmt"
 | 
				
			||||||
 | 
						"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
 | 
				
			||||||
 | 
						"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type ChangePasswordRequest struct {
 | 
				
			||||||
 | 
						*requests.RpcRequest
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func CreateChangePasswordRequest(userName string, newPwd string) (req *ChangePasswordRequest) {
 | 
				
			||||||
 | 
						ts, sign := GetSign()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						req = &ChangePasswordRequest{
 | 
				
			||||||
 | 
							RpcRequest: &requests.RpcRequest{},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						req.InitWithApiInfo(HOST, VERSION, "/remote_login.php")
 | 
				
			||||||
 | 
						req.FormParams = map[string]string{
 | 
				
			||||||
 | 
							"act":      "getpwd",
 | 
				
			||||||
 | 
							"do":       "passwd",
 | 
				
			||||||
 | 
							"username": userName,
 | 
				
			||||||
 | 
							"newpwd":   newPwd,
 | 
				
			||||||
 | 
							"time":     fmt.Sprintf("%v", ts),
 | 
				
			||||||
 | 
							"sign":     sign,
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						req.Method = requests.POST
 | 
				
			||||||
 | 
						return
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func CreateChangePasswordResponse() (response *ChangePasswordResponse) {
 | 
				
			||||||
 | 
						response = &ChangePasswordResponse{
 | 
				
			||||||
 | 
							BaseResponse: &responses.BaseResponse{},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type ChangePasswordResponse struct {
 | 
				
			||||||
 | 
						*responses.BaseResponse
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user