MCPcopy Index your code
hub / github.com/aiprodcoder/MIXAPI / LinuxDoBind

Function LinuxDoBind

controller/linuxdo.go:29–78  ·  view source on GitHub ↗
(c *gin.Context)

Source from the content-addressed store, hash-verified

27}
28
29func LinuxDoBind(c *gin.Context) {
30 if !common.LinuxDOOAuthEnabled {
31 c.JSON(http.StatusOK, gin.H{
32 "success": false,
33 "message": "管理员未开启通过 Linux DO 登录以及注册",
34 })
35 return
36 }
37
38 code := c.Query("code")
39 linuxdoUser, err := getLinuxdoUserInfoByCode(code, c)
40 if err != nil {
41 common.ApiError(c, err)
42 return
43 }
44
45 user := model.User{
46 LinuxDOId: strconv.Itoa(linuxdoUser.Id),
47 }
48
49 if model.IsLinuxDOIdAlreadyTaken(user.LinuxDOId) {
50 c.JSON(http.StatusOK, gin.H{
51 "success": false,
52 "message": "该 Linux DO 账户已被绑定",
53 })
54 return
55 }
56
57 session := sessions.Default(c)
58 id := session.Get("id")
59 user.Id = id.(int)
60
61 err = user.FillUserById()
62 if err != nil {
63 common.ApiError(c, err)
64 return
65 }
66
67 user.LinuxDOId = strconv.Itoa(linuxdoUser.Id)
68 err = user.Update(false)
69 if err != nil {
70 common.ApiError(c, err)
71 return
72 }
73
74 c.JSON(http.StatusOK, gin.H{
75 "success": true,
76 "message": "bind",
77 })
78}
79
80func getLinuxdoUserInfoByCode(code string, c *gin.Context) (*LinuxdoUser, error) {
81 if code == "" {

Callers 1

LinuxdoOAuthFunction · 0.85

Calls 6

FillUserByIdMethod · 0.95
UpdateMethod · 0.95
ApiErrorFunction · 0.92
IsLinuxDOIdAlreadyTakenFunction · 0.92
getLinuxdoUserInfoByCodeFunction · 0.85
GetMethod · 0.80

Tested by

no test coverage detected