github.com/clerkinc/clerk-sdk-go@v1.49.1/clerk/email_addresses.go (about) 1 package clerk 2 3 import "fmt" 4 5 type EmailAddressesService service 6 7 type EmailAddress struct { 8 ID string `json:"id"` 9 Object string `json:"object"` 10 EmailAddress string `json:"email_address"` 11 Reserved bool `json:"reserved"` 12 Verification *Verification `json:"verification"` 13 LinkedTo []IdentificationLink `json:"linked_to"` 14 } 15 16 type CreateEmailAddressParams struct { 17 UserID string `json:"user_id"` 18 EmailAddress string `json:"email_address"` 19 Verified *bool `json:"verified"` 20 Primary *bool `json:"primary"` 21 } 22 23 type UpdateEmailAddressParams struct { 24 Verified *bool `json:"verified"` 25 Primary *bool `json:"primary"` 26 } 27 28 func (s *EmailAddressesService) Create(params CreateEmailAddressParams) (*EmailAddress, error) { 29 req, _ := s.client.NewRequest("POST", EmailAddressesURL, ¶ms) 30 31 var emailAddress EmailAddress 32 _, err := s.client.Do(req, &emailAddress) 33 if err != nil { 34 return nil, err 35 } 36 return &emailAddress, nil 37 } 38 39 func (s *EmailAddressesService) Read(emailAddressID string) (*EmailAddress, error) { 40 emailAddressURL := fmt.Sprintf("%s/%s", EmailAddressesURL, emailAddressID) 41 req, _ := s.client.NewRequest("GET", emailAddressURL) 42 43 var emailAddress EmailAddress 44 _, err := s.client.Do(req, &emailAddress) 45 if err != nil { 46 return nil, err 47 } 48 return &emailAddress, nil 49 } 50 51 func (s *EmailAddressesService) Update(emailAddressID string, params UpdateEmailAddressParams) (*EmailAddress, error) { 52 emailAddressURL := fmt.Sprintf("%s/%s", EmailAddressesURL, emailAddressID) 53 req, _ := s.client.NewRequest("PATCH", emailAddressURL, ¶ms) 54 55 var emailAddress EmailAddress 56 _, err := s.client.Do(req, &emailAddress) 57 if err != nil { 58 return nil, err 59 } 60 return &emailAddress, nil 61 } 62 63 func (s *EmailAddressesService) Delete(emailAddressID string) (*DeleteResponse, error) { 64 emailAddressURL := fmt.Sprintf("%s/%s", EmailAddressesURL, emailAddressID) 65 req, _ := s.client.NewRequest("DELETE", emailAddressURL) 66 67 var delResponse DeleteResponse 68 if _, err := s.client.Do(req, &delResponse); err != nil { 69 return nil, err 70 } 71 return &delResponse, nil 72 }