MCPcopy
hub / github.com/pocketbase/pocketbase / FetchAuthUser

Method FetchAuthUser

tools/auth/box.go:44–83  ·  view source on GitHub ↗

FetchAuthUser returns an AuthUser instance based on the Box's user API. API reference: https://developer.box.com/reference/get-users-me/

(token *oauth2.Token)

Source from the content-addressed store, hash-verified

42//
43// API reference: https://developer.box.com/reference/get-users-me/
44func (p *Box) FetchAuthUser(token *oauth2.Token) (*AuthUser, error) {
45 data, err := p.FetchRawUserInfo(token)
46 if err != nil {
47 return nil, err
48 }
49
50 rawUser := map[string]any{}
51 if err := json.Unmarshal(data, &rawUser); err != nil {
52 return nil, err
53 }
54
55 extracted := struct {
56 Id string `json:"id"`
57 Name string `json:"name"`
58 Login string `json:"login"`
59 AvatarURL string `json:"avatar_url"`
60 Status string `json:"status"`
61 }{}
62 if err := json.Unmarshal(data, &extracted); err != nil {
63 return nil, err
64 }
65
66 if extracted.Status != "active" {
67 return nil, fmt.Errorf("Box user account is not active (status: %q)", extracted.Status)
68 }
69
70 user := &AuthUser{
71 Id: extracted.Id,
72 Name: extracted.Name,
73 AvatarURL: extracted.AvatarURL,
74 Email: extracted.Login, // Box requires verified email for OAuth authorization
75 RawUser: rawUser,
76 AccessToken: token.AccessToken,
77 RefreshToken: token.RefreshToken,
78 }
79
80 user.Expiry, _ = types.ParseDateTime(token.Expiry)
81
82 return user, nil
83}

Callers

nothing calls this directly

Calls 2

ParseDateTimeFunction · 0.92
FetchRawUserInfoMethod · 0.65

Tested by

no test coverage detected