github.com/clerkinc/clerk-sdk-go@v1.49.1/clerk/phone_numbers.go (about)

     1  package clerk
     2  
     3  import "fmt"
     4  
     5  type PhoneNumbersService service
     6  
     7  type PhoneNumber struct {
     8  	ID                      string               `json:"id"`
     9  	Object                  string               `json:"object"`
    10  	PhoneNumber             string               `json:"phone_number"`
    11  	ReservedForSecondFactor bool                 `json:"reserved_for_second_factor"`
    12  	DefaultSecondFactor     bool                 `json:"default_second_factor"`
    13  	Reserved                bool                 `json:"reserved"`
    14  	Verification            *Verification        `json:"verification"`
    15  	LinkedTo                []IdentificationLink `json:"linked_to"`
    16  	BackupCodes             []string             `json:"backup_codes"`
    17  }
    18  
    19  type CreatePhoneNumberParams struct {
    20  	UserID      string `json:"user_id"`
    21  	PhoneNumber string `json:"phone_number"`
    22  	Verified    *bool  `json:"verified"`
    23  	Primary     *bool  `json:"primary"`
    24  }
    25  
    26  type UpdatePhoneNumberParams struct {
    27  	Verified *bool `json:"verified"`
    28  	Primary  *bool `json:"primary"`
    29  }
    30  
    31  func (s *PhoneNumbersService) Create(params CreatePhoneNumberParams) (*PhoneNumber, error) {
    32  	req, _ := s.client.NewRequest("POST", PhoneNumbersURL, &params)
    33  
    34  	var response PhoneNumber
    35  	_, err := s.client.Do(req, &response)
    36  	if err != nil {
    37  		return nil, err
    38  	}
    39  	return &response, nil
    40  }
    41  
    42  func (s *PhoneNumbersService) Read(phoneNumberID string) (*PhoneNumber, error) {
    43  	phoneNumberURL := fmt.Sprintf("%s/%s", PhoneNumbersURL, phoneNumberID)
    44  	req, _ := s.client.NewRequest("GET", phoneNumberURL)
    45  
    46  	var phoneNumber PhoneNumber
    47  	_, err := s.client.Do(req, &phoneNumber)
    48  	if err != nil {
    49  		return nil, err
    50  	}
    51  	return &phoneNumber, nil
    52  }
    53  
    54  func (s *PhoneNumbersService) Update(phoneNumberID string, params UpdatePhoneNumberParams) (*PhoneNumber, error) {
    55  	phoneNumberURL := fmt.Sprintf("%s/%s", PhoneNumbersURL, phoneNumberID)
    56  	req, _ := s.client.NewRequest("PATCH", phoneNumberURL, &params)
    57  
    58  	var phoneNumber PhoneNumber
    59  	_, err := s.client.Do(req, &phoneNumber)
    60  	if err != nil {
    61  		return nil, err
    62  	}
    63  	return &phoneNumber, nil
    64  }
    65  
    66  func (s *PhoneNumbersService) Delete(phoneNumberID string) (*DeleteResponse, error) {
    67  	phoneNumberURL := fmt.Sprintf("%s/%s", PhoneNumbersURL, phoneNumberID)
    68  	req, _ := s.client.NewRequest("DELETE", phoneNumberURL)
    69  
    70  	var delResponse DeleteResponse
    71  	if _, err := s.client.Do(req, &delResponse); err != nil {
    72  		return nil, err
    73  	}
    74  	return &delResponse, nil
    75  }