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, &params)
    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, &params)
    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  }