1
2
3
4
5
6 package github
7
8 import "context"
9
10
11 type UserEmail struct {
12 Email *string `json:"email,omitempty"`
13 Primary *bool `json:"primary,omitempty"`
14 Verified *bool `json:"verified,omitempty"`
15 Visibility *string `json:"visibility,omitempty"`
16 }
17
18
19
20
21 func (s *UsersService) ListEmails(ctx context.Context, opts *ListOptions) ([]*UserEmail, *Response, error) {
22 u := "user/emails"
23 u, err := addOptions(u, opts)
24 if err != nil {
25 return nil, nil, err
26 }
27
28 req, err := s.client.NewRequest("GET", u, nil)
29 if err != nil {
30 return nil, nil, err
31 }
32
33 var emails []*UserEmail
34 resp, err := s.client.Do(ctx, req, &emails)
35 if err != nil {
36 return nil, resp, err
37 }
38
39 return emails, resp, nil
40 }
41
42
43
44
45 func (s *UsersService) AddEmails(ctx context.Context, emails []string) ([]*UserEmail, *Response, error) {
46 u := "user/emails"
47 req, err := s.client.NewRequest("POST", u, emails)
48 if err != nil {
49 return nil, nil, err
50 }
51
52 var e []*UserEmail
53 resp, err := s.client.Do(ctx, req, &e)
54 if err != nil {
55 return nil, resp, err
56 }
57
58 return e, resp, nil
59 }
60
61
62
63
64 func (s *UsersService) DeleteEmails(ctx context.Context, emails []string) (*Response, error) {
65 u := "user/emails"
66 req, err := s.client.NewRequest("DELETE", u, emails)
67 if err != nil {
68 return nil, err
69 }
70
71 return s.client.Do(ctx, req, nil)
72 }
73
74
75
76
77
78 func (s *UsersService) SetEmailVisibility(ctx context.Context, visibility string) ([]*UserEmail, *Response, error) {
79 u := "user/email/visibility"
80
81 updateVisiblilityReq := &UserEmail{
82 Visibility: &visibility,
83 }
84
85 req, err := s.client.NewRequest("PATCH", u, updateVisiblilityReq)
86 if err != nil {
87 return nil, nil, err
88 }
89
90 var e []*UserEmail
91 resp, err := s.client.Do(ctx, req, &e)
92 if err != nil {
93 return nil, resp, err
94 }
95
96 return e, resp, nil
97 }
98
View as plain text