-
Notifications
You must be signed in to change notification settings - Fork 2
/
userinfo.go
55 lines (50 loc) · 1.61 KB
/
userinfo.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package go_eudic
import (
"net/http"
)
var (
getUserInfoURI = "/route/recite/getuserinfo"
)
type UserInfoService struct {
client *EudicClient
}
func (service *UserInfoService) GetUserInfo() (*UserInfo, *string, error) {
requestBody := RequestTokenBody{
Token: service.client.Token,
UserId: service.client.UserId,
Cookie: "",
EudicTimeZone: 8,
Lang: "en",
}
bodyString, err := StructToString(requestBody)
if err != nil {
return nil, nil, err
}
request, err := service.client.NewRequest(http.MethodPost, getUserInfoURI, bodyString)
userInfo := new(UserInfo)
infoResponse, err := service.client.Do(request, userInfo)
if err != nil {
return nil, nil, err
}
return userInfo, infoResponse.BodyStrPtr, nil
}
type UserInfo struct {
CreationDate string `json:"creation_date"`
Expirein int64 `json:"expirein"`
HasOldPassword bool `json:"has_old_password"`
LastPasswordChangedDate interface{} `json:"last_password_changed_date"`
OpenidDesc interface{} `json:"openid_desc"`
OpenidType interface{} `json:"openid_type"`
Profile struct {
Email string `json:"email"`
Gender string `json:"gender"`
Nickname string `json:"nickname"`
Password interface{} `json:"password"`
Vocabularies struct{} `json:"vocabularies"`
} `json:"profile"`
RedirectURL interface{} `json:"redirect_url"`
Roles interface{} `json:"roles"`
Token string `json:"token"`
Userid string `json:"userid"`
Username string `json:"username"`
}