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

Method FetchAuthUser

tools/auth/monday.go:46–93  ·  view source on GitHub ↗

FetchAuthUser returns an AuthUser instance based on the Monday's user api. API reference: https://developer.monday.com/api-reference/reference/me

(token *oauth2.Token)

Source from the content-addressed store, hash-verified

44//
45// API reference: https://developer.monday.com/api-reference/reference/me
46func (p *Monday) FetchAuthUser(token *oauth2.Token) (*AuthUser, error) {
47 data, err := p.FetchRawUserInfo(token)
48 if err != nil {
49 return nil, err
50 }
51
52 rawUser := map[string]any{}
53 if err := json.Unmarshal(data, &rawUser); err != nil {
54 return nil, err
55 }
56
57 extracted := struct {
58 Data struct {
59 Me struct {
60 Id string `json:"id"`
61 Enabled bool `json:"enabled"`
62 Name string `json:"name"`
63 Email string `json:"email"`
64 IsVerified bool `json:"is_verified"`
65 Avatar string `json:"photo_small"`
66 } `json:"me"`
67 } `json:"data"`
68 }{}
69 if err := json.Unmarshal(data, &extracted); err != nil {
70 return nil, err
71 }
72
73 if !extracted.Data.Me.Enabled {
74 return nil, errors.New("the monday.com user account is not enabled")
75 }
76
77 user := &AuthUser{
78 Id: extracted.Data.Me.Id,
79 Name: extracted.Data.Me.Name,
80 AvatarURL: extracted.Data.Me.Avatar,
81 RawUser: rawUser,
82 AccessToken: token.AccessToken,
83 RefreshToken: token.RefreshToken,
84 }
85
86 if extracted.Data.Me.IsVerified {
87 user.Email = extracted.Data.Me.Email
88 }
89
90 user.Expiry, _ = types.ParseDateTime(token.Expiry)
91
92 return user, nil
93}
94
95// FetchRawUserInfo implements Provider.FetchRawUserInfo interface.
96//

Callers

nothing calls this directly

Calls 2

FetchRawUserInfoMethod · 0.95
ParseDateTimeFunction · 0.92

Tested by

no test coverage detected